Разработка INTRANET приложений

Активные серверные страницы 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-странице. Для определения тела применяется тег с закрывающей парой , помещаемые после тегов головы:


    Броузеры и серверы 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 состоит из шести шагов, которые показаны ниже на схеме.

    Добавление новых строк в таблицу

    Процедуру создания первой строки нужно повторить для создания следующих строк таблицы:
    OneTwoThree
    RedGreenBlue
    199019952000


    Достоинства и недостатки спецификации 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, являющийся методом доступа апплета к сервисам базы данных.
    Доступ к БД через интерфейс JDBC
    Рис. 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).
    Ввод данных ... многострочный текст
    Выбор из меню (списка)
    Рис. 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.

    Графический тег

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

    Здесь SRC означает источник (Source), а имя файла представляет собой имя выводимого графического файла. Предположим, к примеру, что у Вас есть изображение picture.gif. Для добавления его на страницу HTML применяется такая строка:


    Графика в текстовых броузерах

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

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


    Графика

    Как было сказано ранее, самым распространенным графическим форматом в Web является GIF-формат. Для того, чтобы вставить изображение в Web-страницу, необходимо либо нарисовать его, либо взять уже готовое. В любой программе рисования несложно нарисовать простое изображение и сохранить его в формате GIF. Если программа не поддерживает этот формат, то необходимо преобразовать файл. Существует множество программ, предназначенных для преобразования одного графического формата в другой. Позаимствовать же картинки можно из многих программных пакетов, например MicrosoftOffice, и большинства программ рисования, в которых поставляются библиотеки художественных клипов (клипартов - cliparts). Клипарт представляет собой произведение профессионального качества, которое уже готово для вставки в Web-страницу. Также возможно заимствование изображений со страниц Web. Когда броузер выводит страницу Web с изображением, соответствующий графический файл временно хранится в памяти компьютера. В большинстве броузеров есть команда, позволяющая сохранить файл на локальном диске. Существует множество других вариантов получения графических файлов.
    Изображения очень полезны и придают Web-странице профессиональный вид. Приведем наиболее распространенные случаи применения изображений:
  • логотип компании на деловой странице;
  • графика для рекламного объявления;
  • различные рисунки;
  • диаграммы и графики;
  • интересные шрифты;
  • подпись автора страницы;
  • применение графической строки в качестве горизонтальной разделительной линии;
  • применение графических маркеров для создания красивых маркированных списков.

  • Теперь рассмотрим, как вставить изображение в страницу Web. Кодом HTML, который заставляет броузер выводить изображение, является метка со следующим общим форматом:

    Здесь SRC означает источник (SouRCe), а имя_файла представляет собой имя выводимого графического файла. Например, для вывода изображения logo.gif на страницу Web применяется такая строка:


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



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



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

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



    Например, в качестве ссылки может выступать домашняя страница на том же диске:

    Clickonthishouse

    Группы тегов 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

    Чтение страниц Web
    Стандартные возможностиInternetExplorer 3.0 Navigator 3.0
    Поддержка Windows 95дада
    Другие платформыMac, NTMac, 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-кодов.
    Интерпретируемые загружаемые Intranet-приложения
    Рис. 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-сервер выступает в качестве сервера приложений.
    Intranet-приложения с доступом к БД
    Рис. 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-страницах можно использовать не только для просмотра, но и в качестве гипертекстовых связей, как и обычный текст.
    Обозначение изображения в качестве гипертекстовой связи не отличается от текста. Для этого применяется тот же тег , но между и вставляется тег :

    При этом броузер выводит вокруг изображения рамку, чтобы идентифицировать ее как связь. Чтобы подавить вывод рамки можно добавить BORDER=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 и средства программирования мобильных приложений;
  • языки сценариев и средства программирования для разработки интерактивных страниц.


  • Языки разработки интерактивных страниц гипертекста и гипермедиа

    Для оживления статического гипертекста и придания страницам интерактивных свойств применяются языки сценариев, такие как JavaScript, VBScript. Тексты сценариев встраиваются непосредственно в страницы гипертекста и интерпретируются броузером.
    Особую нишу занимает объектно-ориентированный язык Java для написания мобильных Internet/Intranet-приложений. Страница содержит только ссылки на Java-модули, они независимо загружаются и выполняются броузером на клиентской стороне.

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

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

    Электронные архивы и Internet

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

    Карты изображений

    Известно, что изображения могут выступать в качестве гипертекстовых ссылок. Каждое изображение может представлять собой одну гипертекстовую ссылку. При щелчке на изображении броузер запрашивает гипертекстовую страницу, на которую указывает ссылка, связанная с данными изображением. Если необходимо организовать ссылки на разные документы, то это делается при помощи нескольких изображений, каждое из которых предлагает свой выбор. При использовании карт изображений переход по ссылке зависит от того, на какую часть изображения пользователь указывает при щелчке. Таким образом, одно изображение оказывается вектором с указанием на несколько возможных путей. Применение карт изображений предполагает, что броузер Web каким-то образом взаимодействует с процессором на сервере Web: он должен передавать координаты местоположения курсора при щелчке. Карта изображения состоит из двух файлов: графического файла *.gif, который содержит собственно изображение, и обычного текстового файла *.map в кодировке ASCII, содержащего карту, т.е. перечисление координат областей изображения и вызываемых при выборе данной области URL (гипертекстовых ссылок). Если пользователь щелкает кнопкой мыши, когда курсор располагается на графике, то броузер посылает запрос серверу Web. Упоминаемый в запросе URL - это имя файла с картой (*.map) для использования выполняющейся на сервере Web программы обработки карты изображения. Координаты задаются в пикселях (элементах картинки), причем верхний левый угол изображения имеет координаты (0,0). Кроме того, броузер присоединяет к URL координаты курсора в момент щелчка. Чтобы определить попадание координат в одну из заданных областей, программа обработки карты изображения (программа CGI на сервере Web) берет указанные координаты и обращается к файлу с картой. В случае попадания программа смотрит (также в файле с картой) URL соответствующего документа, извлекает его и передает броузеру.
    На рисунке 3.4 приведен пример карты изображения, как она видится в окне броузера, сохраненной в GIF-формате в файле sample.gif.

    Карты изображений

    Рис. 3.4. Пример карты изображения

    Приведенный рисунок разбит на несколько областей - например, CIRCLE и RECT. Белый фон также является областью. В броузере Web пользователь может переместить курсор в одну из областей и щелкнуть кнопкой мыши. Так как это карта изображения, щелчок на круге приведет к переходу по ссылке к HTML-документу circle.htm. Если, вместо этого, пользователь щелкает на многоугольнике , то он переходит в документ polygon.htm и т.д. Пример составлен таким образом, что если пользователь щелкает на графике вне выделенных областей, то он получает документ по умолчанию, который называется misc.htm. Заметим, что выбирать имена документов в соответствии с формой области вовсе необязательно. Теперь рассмотрим как же вставить карту изображения в Web страницу. Это делается следующей HTML-строкой:



    Важнейшее слово здесь - ISMAP, которое сообщает броузеру Web, что это карта изображения. Первая часть строки, , обозначает имя файла с картой (sample.map); к данному файлу Web-сервер будет обращаться для выбора гипертекстовой ссылки, зависящей от того, в каком месте изображения пользователь щелкнул кнопкой мыши. Вторая часть строки, , сообщает броузеру имя графического файла (sample.gif), который он должен вывести на экран. Как всегда, ссылка может указывать на файл на совершенно другом Web-сервере, но при этом необходимо указать полный адрес URL, включая имя сервера и полный путь. Теперь рассмотрим, что содержит файл с картой для данного примера. Ниже приведено его содержание:

    default /samples/misc.htm circle (110,107) (204,107) /samples/circle.htm oval (15,215) (197,274) /samples/oval.htm poly (248,23)(462,54)(334,78) (342,184)(510,184) (502,244) (226,278) /samples/polygon.htm rect (356,110) (516,173) /samples/rect.htm


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

    Обычно многие броузеры имеют поле, в котором при указании курсором на гиперссылку можно увидеть URL извлекаемого документа при щелчке на данной ссылке. Это справедливо и для карт изображений. Разница в том, что в случае карт изображений виден расширенный URL не только с именем файла, но и со знаком вопроса и следующей за ним парой чисел, разделенных запятой (например, http:\\SAMPLES/IMAGES/sample.map?278,49). Эти два числа соответствуют текущим координатам курсора, причем они меняются при перемещении мыши. Перемещая курсор, можно определить границы всей охватываемой картой изображения поверхности. (Определить, на какие области разделено все изображение, нельзя - эта информация находится в файле с картой на Web-сервере. Однако графика дает подсказку сама по себе.) При щелчке где-либо в пределах карты изображений, вся строка - в том числе имя файла, знак вопроса и координаты курсора - посылается в качестве запроса для получения документа. Файлы с картами изображений хранятся в особом каталоге на Web-сервере. При поступлении запроса сервер определяет по имени каталога, что это запрос к карте изображений, и передает URL-кодированные данные программе обработки изображений (CGI-программе). Программа анализирует данные на предмет определения запрашиваемого файла с картой и координат курсора в момент щелчка кнопкой мыши. После этого она берет файл с картой и сравнивает координаты курсора с картой изображения для определения области, в которой курсор находился при щелчке, и соответствующего URL. Затем программа сообщает Web-серверу, какой документ он должен извлечь, а Web-сервер посылает его броузеру.

    Создав изображение, необходимо составить его карту. Рассмотрим основные этапы создания карты изображений:


  • Создание изображения при помощи программы рисования и задание размера изображения с учетом того, как оно должно выглядеть в броузере. При создании и редактировании изображений рекомендуется устанавливать разрешение экрана равным 640х480 точек на дюйм.
  • Написание кода HTML для документа, в который планируется поместить карту изображения.
  • Подготовка файла с картой. Точные координаты еще неизвестны, но этого пока и не нужно - для начала можно ввести любые.
  • Запись HTML-документа, графики и файла с картой в соответствующие каталоги на Web-сервере.
  • Загрузка документа в броузер Web. Когда пользователь помещает курсор на карте изображения, броузер показывает координаты курсора. Необходимо просто перемещать курсор и запоминать координаты (x,y) для тех областей, которые пользователь хочет определить. Кроме того, необходимо решить, какая форма (круг, прямоугольник и т.д.) наиболее подходит для каждой области. Нужно записать координаты, загрузить файл с картой в какой-нибудь текстовый редактор и отредактировать его в соответствии с выписанными координатами.
  • Тестирование отредактированного файла с картой из Web-броузера в целях проверки правильности вызова документов при щелчке на той или иной области изображений.


  • Данный пример подходит к требованиям InternetInformaitionServer компании Microsoft. Не всякий сервер поддерживает карты изображений, так что это необходимо проверить в документации Web-сервера. Разные Web-серверы используют разные каталоги по умолчанию для хранения таких файлов, как карты изображений.

    Приведенное выше описание карты изображений соответствует формату группы CERN, другой распространенный формат - от центра NCSA.

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

    Для задания карты изображений используется контейнер MAP и тег AREA. Контейнер MAP содержит описание активных областей и ссылок. Имя контейнера служит для указания его в атрибуте USEMAP тега включения изображения IMG. Тег AREA определяет форму области (атрибут SHAPE), координаты характерных ее точек (COORDS) и гиперссылки (HREF).

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



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

    Кириллизация при подготовке и конвертировании гипертекста

    При подготовке документов используется кодировка, основная для редактора, а размножение текстов в разных кодировках выполняется с помощью специальных программ перекодировки. Можно воспользоваться способностью редактора загружать и сохранять текст в различных форматах, например, для Windows и MS-DOS. Также возможно применить драйвер Generic/Textonly в Windows95 для "печати файла" в файл, предварительно настроив таблицу перекодировки.
    При конвертировании русскоязычных документов с помощью WordAssistant возникают проблемы с преобразованием фонтов SmallCaps и AllCaps. Все русские буквы конвертируются в названия спецсимволов, начинающиеся с &. Иногда для прочтения таких текстов требуется выполнить программу перекодировки из спецсимволов в нужный код. В приведенном примере можно просто заменить все неподходящие фонты на другие перед конвертированием.

    Классификация средств подготовки гипертекста

    Инструменты разметки гипертекста на языке HTML, позволяющие создавать Web-странички, называются HTML-редакторами. Так как исходный код HTML - это текст в стандарте ASCII, то для создания файлов HTML годен практически любой текстовый редактор. Кроме того, поскольку HTML является интерпретируемым языком сценариев, то нет необходимости обрабатывать исходный код каким-нибудь компилятором. Для написания кода HTML можно использовать как какой-нибудь простой редактор, например Notepad, поставляемый вместе с Windows, так и любой специализированный. Некоторые средства позволяют даже генерировать код HTML без его фактического написания.
    HTML-редакторы делятся на две крупные категории: графические и программные редакторы. Внешне редакторы обоих типов выглядят очень похоже: и те, и другие напоминают современные графические текстовые процессоры. Различия заключаются в методах визуального представления элементов, составляющих Web-страницу. Графические редакторы представляют страницу такой, какой она будет в окне броузера. Программа (код HTML) встроена в страницу, но скрыта от автора, который не работает с ней напрямую.
    В свою очередь программные редакторы выводят на экран в качестве основного представления страницы исходный текст на языке HTML, предоставляя при этом в распоряжение автора мощные средства генерации кода, избавляющие от необходимости писать его вручную.
    Наряду с начальным написанием HTML-документов, существует возможность создания документов Web из уже существующих документов. Примером может служить созданный компанией Microsoft набор программных средств - InternetAssistantsforOffice, с помощью которого можно преобразовать файлы, созданные продуктами из пакета MicrosoftOffice (Word, Excel, PowerPoint, Access или Schedule+) в страницы Web. Другим примером является драйвер печати MicrosoftHTMLDriver, который позволяет печатать в формате HTML. Такие программные средства называются конверторами файлов в формат HTML. Также существует большое количество других программных средств для преобразования форматов файлов.
    Страницы Web могут содержать не только текстовую, но и графическую информацию. Существует множество графических форматов, но формат, который занял исключительное положение в Web, называется GIF (GraphicInterchangeFormat - формат для обмена графикой). Все графические броузеры поддерживают формат GIF и без проблем выводят внутри страницы Web изображения, представленные в этом формате. Сейчас в Web становится все более популярным стандарт JPEG (JointPhotographicExpertsGroup - объединенная экспертная группа по фотографии). Главное достоинство JPEG-файлов состоит в том, что они короче GIF-файлов и на загрузку их требуется меньше времени. К сожалению, встроенные изображения в формате JPEG поддерживают только некоторые броузеры, например, Netscape и Mosaic, поэтому пока рекомендуется применять только изображения в формате GIF. На основе графических файлов можно с помощью специального программного обеспечения создавать анимационные ролики и видео ролики. Также возможно использование звукового сопровождения при просмотре Web-страничек.

    Коллекция Properties

    Объекты ADO имеют два типа свойств: встроенные и динамические. Встроенные свойства - это свойства, реализованные в ADO и доступные для любого нового объекта. Кроме того, встроенные свойства не являются объектами Property в коллекции Properties, поэтому пользователь может изменять их значения, но не может изменять их характеристики или удалять их. Многие провайдеры OLEDB предоставляют дополнительные свойства объектов. Такие дополнительные свойства называются динамическими и являются объектами Property в коллекции Properties. Объекты Property имеют четыре встроенных свойства:
  • свойство Name - строка, уникально идентифицирующая динамическое свойство;
  • свойство Type- целое число, определяющее тип данных динамического свойства;
  • свойство Value - переменная, содержащая значение динамического свойства;
  • свойство Attribute - значение типа Long, определяющее характеристики динамического свойства.

  • Каждый объект Property соответствует какой-либо характеристике объекта ADO. Для обращения к объекту Property из коллекции по имени используется следующий способ:
    object.Properties("name")
    Для обращения, например, к свойствуValue объекта Property используется такое же выражение. По контексту обращения определяется: обращаетесь ли Вы к самому объекту Property или к свойству Value объекта Property.

    Компиляция и отладка

    Компилятор языка Java пакета VisualJ++ обладает высокими скоростными данными: по числу компилируемых строк в минуту он более, чем в два раза быстрее - компилятора BorlandDelphi2.0.
    При этом генерируемый им код полностью отвечает требованиям к Java-продуктам компании Sun - разработчика языка Java. Примерная скорость, которую развивал компилятор VisualJ++ на тестах, - до 1 миллиона строк в минуту. А если вы пожелаете, то ваше Java-приложение может включать элементы ActiveX - еще одной технологии Microsoft, реализованной для Internet. Данные компилятор получает при чтении библиотек типов TLB. А чтобы подтвердить компилятору свои желания, надо включить необходимые COM-классы выражением import языка Java.
    Отладчик в VisualJ++ обладает рядом преимуществ по сравнению с конкурентами. Достаточно сказать, что он не требует настройки протокола TCP/IP, как это происходит в случае с отладчиками из пакетов SymantecCafe или JDK. Более того, отладчик VisualJ++ практически совпадает с аналогичным средством из VisualC++ или FortranPowerStation. Однако, он предоставляет больше возможностей, так как в проекте можно задать и внешний отладчик, отличный от имеющегося в среде DeveloperStudio. Но и это не все: когда вы запускаете вашу Java-программу на исполнение, то кроме отладчика запускается броузер WWW, и конечно же, это не что иное, как MicrosoftInternetExplorer 3.0. Разумеется, вы можете использовать и NetscapeNavigator или, скажем, Mosaic. Поддерживается и одновременная отладка нескольких апплетов.
    Окна просмотра переменных дают возможность пользователям указать необходимые переменные, перетащив их из исходного текста на любую из четырех панелей окна Watch. Несколько панелей - это очень удобно, поскольку можно сгруппировать переменные и объекты для просмотра по разделам или контексту отладки.
    Структурированность информации и показ ее в виде дерева позволяют легко разделять переменные и объекты разных файлов.
    Для того, чтобы создавать многопоточные приложения, требуется не только желание, но и соответствующее средство для отслеживания работы каждого потока. VisualJ++ предоставляет такой инструмент, вмонтированный в среду отладчика: ThreadManager не только показывает потоки, запущенные программой пользователя, но отображает и системные витки-"демоны", выполняющие сервисные функции. Программист может вручную остановить выполнение любого потока, запустить остановленный поток или перенести фокус выполнения с одного потока на другой.

    Компонент DataBaseAccess

    Компонент DataBaseAccess предназначен для обеспечения доступа к информации, хранимой в базах данных, и использует ActiveXDataObjects (ADO). Данный раздел посвящен технологии ADO и возможностям ее использования в рамках активных серверных страниц.
    Технология ADO позволяет писать клиентские приложения для доступа и манипулирования данными, хранящимися в БД. Основные преимущества ADO: простота использования, высокая скорость, требуемый малый объем верхней памяти и дискового пространства. Здесь мы рассмотрим одну из реализаций ADO - ADODB, оптимизированную для работы с MicrosoftOLEDB, включая MicrosoftODBC для OLEDB.
    Объекты Connection, Recordset и Command - основные элементы ADO для взаимодействия с данными. Каждый из перечисленных объектов имеет коллекцию Properties. Структурная модель объектов ADO приведена ниже на рисунке. Рассмотрим по порядку все три объекта.

    Компонентная объектная модель COM

    Компонентная объектная модель (COM) - это спецификация, описывающая, как создаются объекты, как они взаимодействуют, чтобы выполнить ту или иную функцию в системе. В соответствии с COM каждый объект имеет в своем составе интерфейсы. Интерфейс - это набор методов, т.е. функций, объединенных между собой для достижения какой-либо цели. К примеру, интерфейс IClassFactory служит для создания новых объектов COM и управления ими. Для этого в составе интерфейса IClassFactory имеются два метода: CreateInstance, создающий новый объект заданного класса, и LockServer, предотвращающий выгрузку программы-генератора объектов (сервера) из памяти. Обычно любой COM-объект содержит более одного интерфейса. Если взять, скажем, все тот же сервер для создания объектов, то в нем, кроме интерфейса IClassFactory, содержатся еще несколько интерфейсов, из которых самый важный - IUnknown. Как гласит спецификация компонентной объектной модели, любой объект должен содержать в себе интерфейс IUnknown. Его назначение - поиск других интерфейсов, включенных в объект (метод QueryInterface), и отслеживание счетчика блокировок (методы AddRef и Release). При создании нового объекта ему передается интерфейс IUnknown. Попутно вызывается метод AddRef, увеличивающий счетчик блокировок на единицу. Теперь, чтобы получить какой-нибудь другой интерфейс объекта, можно вызвать QueryInterface, который либо вернет вам требуемый интерфейс, либо код ошибки, говорящей о том, что такого интерфейса в составе объекта нет. Именно поэтому интерфейс IUnknown должен быть в каждом объекте: без него вы просто не сможете получить других требуемых для работы интерфейсов.
    Внимательные читатели, владеющие каким-либо объектно-ориентированным языком программирования, обратят внимание на тот факт, что интерфейсы очень похожи на классы. И это правда, за исключением того, что в Си++ интерфейс описывается как структура с соответствующими методами. А вообще-то объекты COM можно создавать на различных языках программирования, главное, чтобы они соответствовали требованиям, описанным в спецификации COM. Хороший пример - пакет BorlandDelphi. Несмотря на то, что в его основе лежит язык ObjectPascal, с его помощью легко создавать COM-объекты.

    Компоненты ActiveX

    Платформа ActiveX - собирательный термин технологий Microsoft, которые позволяют разработчикам создавать интерактивные приложения для Internet. Эта платформа базируется на COM (ComponentObjectModel), она включает в себя стандартные технологии, в том числе, технологии Microsoft (например, OLEAutomation). В общем случае ActiveX - это набор API, реализованный как для клиента, так и для сервера.
    Клиентская часть состоит из следующих компонентов:
  • программные компоненты ActiveX (OLEcontrols) - передаются в составе документа HTML и обеспечивают взаимодействие с пользователем;
  • виртуальная машина Java - позволяет работать программным компонентам (апплетам) Java и взаимодействовать с компонентами ActiveX;
  • активные документы ActiveX - позволяют просматривать обычные документы (например, таблицы Excel или документы Word), используя механизм OLEAutomation;
  • ActiveScripting - обеспечивает взаимодействие нескольких программных компонент ActiveX или Java (например, синхронизацию звукового и видеоряда).

  • Серверная часть включает в себя:
  • интерфейс программирования ISAPI (InternetServerAPI) для взаимодействия сервера Webc другими приложениями;
  • DCOM (DistributedComponentObjectyModel) - позволяет напрямую взаимодействовать объектам на клиенте и сервере, реализована в WindowsNT 4.0.

  • Технология ActiveX реализуема на разных платформах; она может использоваться на компьютерах Macintosh, в различных реализациях операционных систем UNIX, на персональных компьютерах с ОС Windows 3.11, Windows 95, WindowsNT.
    Приложения, поддерживающие эту технологию, могут быть написаны на VisualBasic, Delphi, Java, VisualC++.
    Примеры ActiveX-компонент приведены в таблице 2.3. Галерея компонент ActiveXGallery включает:

    Label- отображение текста под углом;
    PopupMenu- выпадающее меню;
    Chart- деловая графика;
    ViewTracker- обновление страницы по мере прокручивания содержимого;
    StockTicker- обновление страницы через определенные промежутки времени;
    Timer- синхронизация операций
    Preloader- предварительная загрузка страницы.

    Таблица 2.3. Примеры ActiveX-компонент (http://www.microsoft.com/ie/download/activex/)

    Компонент Назначение
    ActiveMovieвоспроизведение видео- и аудиороликов (AVI, QuickTime, MPEG, WAV, AU, AIFF, MIDI)
    PowerPointAnimationPlayerforActiveXанимационные эффекты для Web-страниц
    VRMLActiveXподдержка трехмерных сцен и виртуальных пространств
    HTMLLayoutControlкомпоновка сложных страниц с размещением на них компонентов ActiveX
    ActiveXRealAudioвоспроизведение аудио RealAudio
    ActiveXMarqueeпрокручивание страницы
    ActiveXGalleryгалерея компонент ActiveX


    Конверторы файлов в гипертекст

    Параллельно с первичным написанием HTML-документов, существует возможность создания документов Web из уже существующих документов. Для этой цели существуют, так называемые, преобразователи (конверторы) форматов файлов, которые позволяют преобразовывать файлы популярных прикладных программ в файлы HTML, готовые к использованию в Web. Рассмотрим некоторые из популярных на сегодняшний день конверторов.
    Группа программ InternetAssistants используют совместно с пакетом MicrosoftOffice. Программы из состава InternetAssistants предоставляют быстрый и простой способ преобразования уже существующих документов в HTML версии 2.0, но не предназначены для создания сложных страниц и не поддерживают новые теги HTML 3.0.
    Версия InternetAssistant для Word позволяет сохранить любой документ Word как документ HTML. Правда, результаты выглядят не всегда хорошо, но если множество документов необходимо преобразовать в HTML, то эта программа - хороший выбор. Программа позволяет использовать такие расширения, как таблицы, размер шрифтов и центрирование, а также создавать гиперсвязи. Все, что нужно сделать для преобразования документа, - это открыть его, затем выбрать из меню Fileпункт SaveAs и в качестве типа документа задать HTML.
    Версия InternetAssistant для Excel позволяет сохранить электронную таблицу в виде таблицы HTML. Если электронных таблиц много, то данная программа поможет быстро опубликовать их в Web. Чтобы воспользоваться InternetAssistant для Excel, надо выделить ячейки электронной таблицы, которые необходимо преобразовать, и затем выбрать InternetAssistantWizard из меню Tools.
    Посредством InternetAssistant для PowerPoint можно преобразовать слайды PowerPoint в страницы HTML, просто выбрав ExportAsHTML в PowerPoint. Созданные графика и форматы будут сохранены, а ссылки - автоматически установлены на соответствующие слайды или страницы Web.
    Фирма InfoAccess создала программу HTMLTransit, которая преобразует документы из форматов основных текстовых процессоров (включая даже Word 1 forWindows, Word 3 forDOS, WordPerfect 5 и AmiPro 1.1) в HTML, позволяя при этом управлять всеми аспектами оформления страниц, какие только можно вообразить, и получать из различно оформленных исходных документов единообразные Web-страницы. Однако, инструмент сложен в освоении и использовании даже для людей, имеющих навыки работы с HTML.
    Пакет CorelWeb.Data фирмы CorelCorp. специализирован на преобразовании баз данных в документы HTML и обеспечивает возможность доступа к информации в базах данных Oracle, Access, FoxPro, Lotus 1-2-3, Paradox и dBASE. Пакет Web.Data позволяет реализовать несложный метод подготовки шаблонов. Он предоставляет возможность выбрать поля и записи, подлежащие экспорту, сортирует данные и устанавливает формат поля.
    Пакет WebPublisher фирмы SkiSoft преобразует файлы RTF в HTML, а также конвертирует документы Excel и PowerPoint. Он позволяет определять шаблоны и использовать их при подготовке последующих документов, что придает страницам Web стандартный внешний вид и обеспечивает единообразную реакцию на ввод пользователя. Кроме того, он способен организовать удобную пакетную обработку файлов, создать кнопки для перехода между страницами, автоматически строить связи на основе существующих индексов и преобразовывать встроенную графику в формат GIF.

    LotusNotes и сервер Domino

    Наблюдатели предсказывали, что успех системы WorldWideWeb означает гибель LotusNotes. Получилось же так, что эти две среды удачно дополняют друг друга. Notes открывает перед пользователями возможности, которых нет в Web: работу с документами, тиражирование и защиту. Многие компании начали интегрировать свои базы данных Notes в Web с помощью входящего в Notes 4.0 средства InterNotesWebPublisher, которое переводит документы Notes в формат HTML, используемый в системе Web. Lotus выпустила InterNotesWebPublisher, чтобы обеспечить пользователям Notes более тесную интеграцию с Web. Эту версию можно бесплатно считать по Internet с Web-узла http://www.lotus.com. С ее помощью разработчики создают Web-документы и управляют ими из среды Notes. Предполагается, что Lotus будет включать функции поддержки HTML и HTTP в NotesServer. Некоторые пользователи применяют Notes в сочетании с Web. Они полагают, что Notes - это та среда, в которой можно распространять важную информацию с высокой степенью защиты. И если мало кто отваживается посылать ответственные документы по Web, то многие делают это в Notes. С точки зрения пользователя Notes, Web-сервер - это обычное место хранения документов, а Web-броузер - просто клиентская платформа. Любое приложение Notes можно легко перенести в Web. Ряд предприятий используют Notes и Web для электронной торговли. Покупатели выбирают товары по Web-странице и передают заказ через Internet непосредственно в базу данных Notes.
    Корпорация LotusDevelopment объявила о планах дальнейшей интеграции своих продуктов с сетью Internet. Развитием недавно анонсированного набора серверов Web-приложений DominoI должно стать семейство продуктов DominoII. В него войдут ПО интерактивного Web-сервера, основанное исключительно на принятых в Internet стандартах, в том числе TCP/IP, HTTP, SMTP, POP3, IMAP4, LDAP, SSL, X.509, HTML, и ряд других продуктов, опирающихся на программные технологии Notes, таких как специализированные Web-серверы, клиентские приложения и инструментальные средства. Все протоколы, используемые в программах DominoII, будут и далее поддерживаться ПО Notes.
    Первым таким продуктом станет объектное хранилище для HTML-страниц, MIME и S/MIME-сообщений электронной почты, изображений в форматах JPEG и GIF, программных компонентов на языках Java и LotusScript, а также всевозможных форм, представлений данных, папок и иных прикладных объектов.
    Интерфейсы прикладного программирования нового семейства строятся на основе открытого стандарта CORBA. Данное ПО призвано соединить простоту и доступность системы WWW с такими достоинствами фирменной среды LotusNotes, как защищенность, мощные средства разработки приложений, уникальный механизм тиражирования, развитые системы почтового обмена и поддержки проведения дискуссий. Специально для разработки приложений для DominoII и Internet предназначено средство InteractiveApplicationDesigner. Lotus планирует к выпуску клиентское ПО MobileWebInformationManager, построенное тоже на основе принятых в Internet стандартов. С его помощью пользователи Web получат доступ к таким возможностям Notes, как поддержка мобильных пользователей и почтовая служба, а также к средствам управления персональной информацией. Предусмотрены механизмы интеграции с другими приложениями для настольных ПК и компонентами ActiveX.
    Чтобы не возлагать на пользователей груз разработки Web-приложений для DominoII, фирма Lotus намерена предлагать готовые решения, которые будут выпускаться под общим названием Net.Apps. Технология Domino встроена в новую версию клиентского и серверного ПО Notes.
    В новой базовой версии продукта LotusNotes значительно усовершенствованы серверная часть, стандартное клиентское ПО и Web-сервер Domino. Отныне все серверное ПО называется Domino, и только клиентская часть пакета - Notes. В Domino добавлены функции стандартного календарного планирования, а также значительно расширены возможности работы с сообщениями за счет включения двух новых агентов MTA (messagetransportagents) - cc:Mail и SMTP с поддержкой MIME для связи с Internet. Кроме двух способов доступа к Internet из базы данных почтовых сообщений среды Notes, в Domino реализован еще один: в результате поддержки сервером клиентов протокола POP3 (PostOfficeProtocol) появилась возможность использовать клиентские программы электронной почты, совместимые с POP3, и броузеры типа Navigator компании NetscapeCommunications в целях приема и отправления почты с помощью Notes. Domino является частью полного пакета Notes и инсталлируется вместе с другими входящими в него программами. Его можно также загрузить с Web-страницы Lotus, где пользователь найдет и последние дополнения к продукту.
    Он может использоваться и как автономный Web-сервер с широкими возможностями. Domino теперь позволяет непосредственно работать с HTML-страницами и даже выполнять сценарии CGI. Клиентская часть обеспечивает полнотекстовый поиск информации в базах данных; эту функцию можно также вызывать из Domino. Кроме того, Domino и Notes поддерживают протокол SecureSocketsLayer (SSL), гарантирующий защищенную передачу данных станции-клиенту. В первоначальном варианте Domino был реализован доступ к БД Notes посредством Web-броузера. Форматирование Web-страниц выполнялось автоматически, и разработчик только просматривал их в окне броузера. Приложение Net.Action, первое из серии продуктов Net.Apps компании Lotus, позволяет создавать Web-страницы на основе заранее построенных форм и шаблонов, к тому же оно упрощает управление Web-узлом.
    В Domino расширена поддержка транспортных протоколов Internet и интрасетей. Клиент Notes может использовать proxy-серверы Socks и HTTP с помощью функции просмотра (Webbrowsing) из клиентского Web-броузера. С другой стороны, поддержка proxy-сервера в дистанционно вызываемых процедурах (RPC) позволяет клиенту обращаться к серверу Domino через Internet по защищенному "туннельному" соединению SSL. Изменения коснулись и самого броузера, который является частью Navigator. Теперь появилась возможность поэтапного вывода страницы, реализованная в большинстве современных броузеров. Помимо общей поддержки БД, в Navigator предусмотрена организация персональных баз данных Web-страниц. Благодаря этому, пользователи могут вести списки наиболее часто посещаемых страниц, которые периодически будут обновляться. Функция look-ahead позволяет при просмотре Web-страниц автоматически считывать все страницы, на которые имеются ссылки. Загруженные таким образом страницы можно просмотреть после выхода из Internet.
    В ПО WebNavigator усовершенствованы функции просмотра - поддерживается формат HTML 3.2, например полупрозрачные изображения GIF и Java-приложения. В окончательную версию Domino включены средства работы с подключаемыми модулями (plug-in) Netscape. Данная версия может функционировать на станциях-клиентах под управлением Windows 95 и WindowsNT. Помимо этого броузера, допускается использование аналогичных приложений других фирм с их автоматическим запуском при указании адреса URL. Для клиента Notes можно задать автоматическое отображение документов Notes, включая и указатели URL.
    Значительно усовершенствована и серверная часть системы. Для повышения отказоустойчивости и равномерного распределения нагрузок серверы Domino могут объединяться в кластеры. Управление бюджетами пользователей из WindowsNTServer интегрировано в Notes, что позволяет синхронизировать пользовательские бюджеты в Notes и WindowsNT. Реализована и единая процедура регистрации в Notes и WindowsNT, благодаря чему пользователи NT могут после загрузки ОС сразу приступить к работе с Notes.
    Расширились функции управления, в частности, теперь при аннулировании бюджета пользователя можно задать стирание файлов сообщений. Появились дополнительные функции администрирования баз данных, которые могут распространяться на несколько БД и серверов. В журналах регистрации событий WindowsNT могут отображаться и события среды Notes. Администраторы Notes получили возможность вести поиск по адресным книгам из нескольких доменов, что важно при работе с основными службами каталогов. Для повышения надежности системы защиты администраторы Domino могут задавать принудительное закрытие бюджетов пользователей после наступления определенной даты.
    Аналогичная операция распространяется и на сроки действия паролей. Предусмотрено ведение списка приоритетных паролей для предотвращения их повторного использования. Чтобы не допустить выполнения того или иного файла либо сценария, пользователь должен занести его имя в список ExecutionControlLists (ECL).
    В Domino не забыты и разработчики. В язык сценариев LotusScript включена поддержка календарного планирования и функций @functions среды Domino. Дополнены также библиотеки сценариев и управляющих элементов ActiveX, например LotusComponents. В среде IntegratedDevelopmentEnvironment появилась возможность выделения элементов кода разными цветами. Domino начинает действовать. Для разработчиков Web-страниц предназначен новый модуль Domino.Action. Выполненный в распределенной архитектуре клиент/сервер, Domino.Action содержит богатый набор шаблонов Web-страниц, которые легко редактируются с помощью интуитивно понятного пользовательского интерфейса. Данный модуль позволяет администратору автоматизировать процесс создания и обслуживания Web-сервера пользователями из определенной рабочей группы. Компоненты сервера Domino.Action поддерживают последние стандарты тегов HTML, включая видео- и аудиоэлементы мультимедиа.
    Domino открывает широкие перспективы использования ПО Notes в Internet и интрасетях. Этот продукт обеспечивает доступ к Notes с компьютеров, на которых не установлена клиентская часть пакета, и в то же время значительно расширяет возможности клиентов Notes.

    LotusSmartSuite

    Интегрированный комплект SmartSuite 97, ориентированный на платформы Windows 95 и WindowsNT, включает следующие приложения Lotus: электронную таблицу 1-2-3 97, текстовый редактор WordPro 97, программу подготовки презентаций FreelanceGraphics 97, базу данных Approach 97, персональный информационный менеджер Organizer 97, средство для работы с данными мультимедиа ScreenCam 97 и службу управления SmartCenter 97. Дополнительные функции поддержки Internet позволяют пользователям искать, публиковать и совместно использовать информацию в Internet и интрасетях, не выходя из традиционных настольных программ. Для этого в SmartSuite 97 предусмотрены следующие средства для работы с Internet:
  • PublishtotheInternet/Intranets - средство для распространения документов, электронных таблиц, презентаций, баз данных или календарей по системе Web или интрасетям, поддерживающее различные форматы файлов, включая HTML, .GIF и .JPG.
  • WebSmartMasters - программные шаблоны в составе редактора WordPro 97, позволяющие быстро создавать графические и текстовые Web-страницы. Кроме того, можно строить HTML-таблицы с помощью системы подготовки электронных таблиц 1-2-3 97 и распространять их по Internet или экспортировать отчеты и формы базы данных Approach 97 в HTML-документы.
  • SmartCenter 97 InternetDrawers - служба, с помощью которой можно, не прерывая работы с настольным приложением, получить из Internet нужную информацию. С помощью адресной книги, предусмотренной в SmartCenter 97, можно легко найти нужный адрес, чтобы послать факс, сообщение электронной почты или письмо.
  • Internet/IntranetTextSearch - средство поиска информации в Internet, позволяющее, выделив в любом документе SmartSuite ключевое слово, обратиться к поисковой службе Yahoo.
  • LiveLinks - функция, которая дает возможность встраивания в документ, электронную таблицу или презентацию адреса URL или другой гипертекстовый указатель на узел системы Web или интрасети.

  • Lotus включила в SmartSuite 97 расширенный набор средств поддержки коллективной работы в интрасетях и Internet, с помощью которых пользователи смогут обмениваться информацией, совместно осуществлять календарное планирование, сообща работать с документами и презентациями. Например, функция OpenandSavetotheInternet позволяет легко обмениваться файлами с любым FTP- или Web- сервером, а BrowserAccess дает возможность пользователям, не имеющим SmartSuite, получать доступ к файлам, созданным приложениями этого пакета, с помощью стандартных Web-броузеров. Мастер-функция DB2 WebAssistant, автоматически преобразует приложение базы данных DB2 в Web-приложение, обеспечивающее доступ к БД из Web-броузера. Утилиты TeamReview, автоматизирующая распределение и просмотр файлов сотрудниками, и TeamConsolidate, интегрирующая изменения, внесенные отдельными участниками рабочей группы, очень удобны в работе. TeamMail позволяет одновременно передавать всем членам коллектива данные и сообщения, а также маршрутизировать их последовательно с помощью LotusNotes или любого почтового пакета, совместимого со стандартами VIM, CMC или MAPI. Более того, утилита VersionManager, входящая в состав 1-2-3, облегчает управление различными версиями электронных таблиц. В программы WordPro 97 и FreelanceGraphics 97 входят средства поддержки языка Java, с помощью которых можно встраивать активные объекты Java (applet) в документы или презентации. Тем, кто предпочитает выполнять текущую работу с помощью Web-броузеров, предназначены готовые бизнес-приложения LotusComponentsfortheInternet, упрощающие создание интерактивных прикладных систем, ориентированных на работу с Internet и интрасетями. Lotus выпустила набор LotusComponents 1.0 forNotes, который позволяет дополнить системы на базе Notes новыми возможностями, и аналогичные программы для работы с Internet. Элементы этого набора представляют собой программируемые активные объекты (компоненты), которые могут встраиваться в Web-приложения или использоваться автономно. Наряду с этим Lotus уделяет серьезное внимание технологии Java. В настоящее время компания разрабатывает комплект бизнес-приложений на базе технологии JavaBeans фирмы Sun. JavaBeans - это набор интерфейсов прикладного программирования (API), позволяющих создавать на языке Java программные компоненты и интегрировать их с приложениями, поддерживающими различные форматы и объектные технологии. Таким образом, новый комплект Java-приложений Lotus даст возможность строить не зависящие от платформ прикладные системы, которые будут взаимодействовать с Web-броузерами, серверами Notes, приложениями SmartSuite или сетевыми ПК.
    Такое разнообразие продуктов для работы с Internet указывает на то, что Lotus последовательно выполняет свое намерение предоставить пользователям широкие возможности использования преимуществ Всемирной сети и даже открывает возможности, которых нет в Web: работу с документами, тиражирование и защиту. Многие начали интегрировать свои базы данных Notes в Web с помощью входящего в Notes 4.0 средства InterNotesWebPublisher, которое переводит документы Notes в формат HTML, используемый в системе Web. С ее помощью разработчики создают Web-документы и управляют ими из среды Notes. Lotus планирует включить функции поддержки HTML и HTTP в NotesServer. Некоторые пользователи применяют Notes в сочетании с Web, полагая, что Notes - это та среда, в которой можно распространять важную информацию с высокой степенью защиты. С точки зрения пользователя Notes, Web-сервер - это обычное место хранения документов, а Web-броузер - просто клиентская платформа. Любое приложение Notes можно легко перенести в Web.

    Манипулирование данными.

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

    Маркированные списки

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

    Массивы

    Первый тип новых объектов, которые появились в JavaScript 1.1,- массивы. Тип "Array" введен в JavaScript 1.1 для возможности манипулирования самыми разными объектами, которые отображаются Navigator-ом. Это - список всех гипертекстовых ссылок данной страницы Website, список всех картинок на данной странице, список всех апплетов данной страницы, список всех элементов формы и т.п. Пользователь может создать и свой собственный массив, используя конструктор Array (). Делается это следующим образом:
    new_array = newArray () new_array5 = newArray (5) colors = newArray ("red","white","blue")
    Размерность массива может динамически изменяться. Можно сначала определить массив, а потом присвоить одному из его элементов значение. Как только это значение будет присвоено, изменится и размерность массива:
    colors = newArray () colors[5] = "red"
    В данном случае массив будет состоять из 6 элементов, т.к. первым элементом массива считается элемент с индексом 0.
    Для массивов определены три метода: join, reverse, sort. Join объединяет элементы массива в строку символов, в качестве аргумента в этом методе задается разделитель:
    colors = newArray ("red","white","blue") string = acolors.join (" + ")
    В результате присваивания значения строке символов string мы получим следующую строку:
    string = "red + white + blue"
    Другой метод, reverse, изменяет порядок элементов массива на обратный, а метод sort отсортировывает их в порядке возрастания.
    У массивов есть два свойства: length и prototype. Length определяет число элементов массива. Если нужно выполнить некоторую рутинную операцию над всеми элементами массива, то можно воспользоваться циклом типа:
    color = newArray ("red","white","blue") n = 0 while (n != colors.length) {.... операторы тела цикла ...}
    Свойство prototype позволяет добавить свойства к объектам массива. Однако наиболее часто в программах на JavaScript используются встроенные массивы, главным образом графические образы (Images) и гипертекстовые ссылки (Links).

    рассматривается как стратегический ход

    Выпуск Exchange 5. 0 рассматривается как стратегический ход Microsoft, направленный на расширение своего присутствия на рынке Internet. Главное - это приверженность открытым стандартам.

    Сначала предполагается выпустить в продажу Exchange 5.0 с поддержкой тех же протоколов (HTTP, POP3, MIME и NNTP), а в дальнейшем - с дополнительными компонентами, обеспечивающими поддержку S/MIME, IMAP4 и LDAP. Последний протокол особенно важен с точки зрения совместимости с модернизированной службой каталогов и новыми распределенными службами WindowsNT 5.0.

    Большинство возможностей ExchangeServer будет доступно для использования как из клиентского компонента Exchange, так и из различных программ для работы с электронной почтой, поддерживающих протокол POP3, и Web-броузеров. Однако оптимальным клиентом для ExchangeServer окажется, видимо, программа Outlook.

    Общедоступные папки на сервере ExchangeServer во многом подобны группам новостей Internet, но обеспечивать их функционирование проще; более того, можно организовать взаимодействие между этими папками и настоящими группами новостей. Служба InternetNewsService сервера ExchangeServer использует для такого обмена протокол NetworkNewsTransferProtocol (NNTP).

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

    Администраторам серверов ExchangeServer, несомненно, понравятся утилиты-мастера InternetMail и InternetNewsWizard, предназначенные для автоматизации конфигурирования и администрирования подсистем на базе POP3 и групп новостей Internet. Можно составить общее расписание сеансов связи с поставщиком услуг Internet как для доступа к новой корреспонденции электронной почты, так и для обмена информацией с новостными группами.

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

    Клиентские приложения Exchange прежних версий и программы для работы с электронной почтой, использующие протокол MAPI, по-прежнему могут применяться для доступа к ExchangeServer 4.5, однако в полной мере всеми его возможностями удастся воспользоваться лишь обладателям новой системы управления информацией Outlook корпорации Microsoft. В частности, только Outlook и новый клиентский компонент Exchange позволяют использовать в личной переписке встроенную систему шифрования с открытым ключом.

    Весьма развита поддержка программирования на VBScript как в ExchangeServer, так и в Outlook. Кроме того, предусмотрено включение в формы Exchange элементов управления ActiveX.

    Надо отметить серьезное отношение к вопросам взаимодействия с другими почтовыми системами и перехода с них на Exchange. В частности, предусмотрены новые средства, которые помогут перейти на MicrosoftExchange пользователям ОС Unix и таких программ, как CollabraShare и GroupWise. Система дополнена новым модулем для связи с системой электронной почты cc:Mail, который обеспечивает, в частности, синхронизацию каталогов. Имеются и другие аналогичные утилиты, например для систем на базе протокола SMTP. Они обеспечивают передачу почтовой корреспонденции между Exchange и соответствующей платформой в обоих направлениях.

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

    Подсистема поддержки Web может работать на ПК под управлением Windows 95, оснащенном броузерами InternetExplorer корпорации Microsoft и Navigator фирмы NetscapeCommunications. Для обмена почтой с ExchangeServer используется поддержка протокола POP3 в NetscapeNavigator и клиент электронной почты EudoraLite компании Qualcomm.

    MicrosoftFrontPage

    MicrosoftFrontPage позволяет создавать HTML-страницы быстро и легко, хотя невозможно получить прямой доступ к исходному тексту.
    MicrosoftFrontPage - новаторский, многофункциональный инструмент WYSIWYG, который представляет завершенную авторскую среду, позволяющую быстро и легко создавать, размещать и управлять сложными информационными узлами Web. Это программа отвечает требованиям последних стандартов Web и содержит шаблоны и "мастера", которые помогают авторам начать работу. Создание интерактивного содержания оказывается несложным благодаря перетаскиваемым компонентам WebBot программы FrontPage, позволяющим наделять страницы такими функциями, как возможность устраивать многопотоковые дискуссии, не прибегая к сложному программированию через интерфейс CGI. Персональный Web-сервер дает возможность разработать и на месте протестировать Web-узел, скопировать целиком всю информацию узла на сервер и просматривать и обновлять узел с помощью графических средств по мере необходимости.
    MicrosoftFrontPage - 32-разрядная программа для WindowsNT и Windows 95, которая позволяет встраивать формы, таблицы, навигационные карты, кадры и процессоры поиска в страницы Web, а также легко создавать обычные связи, изображения и текст. Компонента PersonalWebServer позволяет автономной машине выполнять роль http-сервера. PersonalWebServer предоставляет FrontPage возможность навигации по созданным информационным узлам точно так же, как броузер позволяет перемещаться среди удаленных серверов.
    Средства редактирования, имеющиеся в программе MicrosoftFrontPage, представлены двумя взаимосвязанными компонентами: Explorer, который служит для создания и управления полными узлами Web, и Editor - для построения страниц и связей. Explorer показывает организацию узла в двух подокнах: одно - для иерархической структуры, другое - для связей, где отображаются связи отдельных страниц в виде радиальных лучей, расходящихся из центра.
    "Паутина" в Explorer создается при помощи одного из входящих в состав пакета "мастеров", который выполняет всю основную работу по созданию корпоративных узлов Web или специализированного узла Web для дискуссионных групп. Множество отдельных шаблонов служат для организации персональных узлов и узлов поддержки потребителя. Узел настраивается на конкретные задачи с помощью автоматизированных агентов ("bots"), которые обновляют связи и заносят адреса корпоративных экспертов Web-мастеров в поле "обратной связи" mailto и другие аналогичные поля. "Паутины" защищаются паролем, легко копируются и перемещаются группами на удаленные компьютеры, на которых установлена программа FrontPage.
    Программа редактирования Web-страниц Editor работает в режиме полного соответствия (WYSIWYG) и не позволяет вносить изменения в создаваемый ею HTML-код, хотя вспомогательные средства дают возможность вручную вводить отдельные управляющие коды. Для создания и форматирования текста используются инструментальные панели, меню и оперативные комбинации клавиш, как в MicrosoftWord. Программа FrontPage импортирует файлы в форматах ASCII, HTML и RTF, но не может преобразовывать файлы текстовых процессоров (даже процессора Word). Практически любой файл, содержащий растровое изображение, автоматически преобразуется в формат GIF или JPEG, в зависимости от глубины цвета оригинала. В пакете предусмотрена обширная система помощи для программ редактирования, но лишь лаконичная подсказка для PersonalServer.
    Таблицы создаются также легко, как в текстовом процессоре и FrontPage может построить форму вокруг любого вставленного поля. Когда к страницам добавляются изображения, связи, таблицы или формы, FrontPage вставляет подходящие элементы по умолчанию. Впоследствии эксперты могут видоизменить выбираемые по умолчанию элементы, используя новейшие расширения Netscape и предложенные теги HTML.
    FrontPage может выполнять CGI-сценарии, но в них нет нужды, поскольку встроенная функция обработки форм сохраняет результаты в разнообразных форматах, пригодных для передачи в базу данных, просмотра с помощью броузера и т.д. Для создания навигационных карт на клиентской стороне нужно просто нарисовать рамку на графическом изображении, и на экране появится диалоговое окно для определения связи.
    FrontPage - самый полный и новаторский редактор информационных узлов Web и к тому же один из самых простых в эксплуатации. Он идеально подходит для создания большого Web-узла с единообразной организацией при минимуме усилий.

    MicrosoftInternetInformationServer

    Продукт MicrosoftInternetInformationServer (IIS) отличается превосходной процедурой установки и тесной интеграцией с WindowsNT - а его цена просто недостижима для конкурентов. IIS можно бесплатно получить с Web-сервера фирмы Microsoft, хотя для того, чтобы воспользоваться пакетом, вам придется приобрести WindowsNTServer. В отличие от фирмы Netscape, предлагающей серверы для самых разнообразных платформ, IIS функционирует только в среде WindowsNTServer. Однако IIS показывает в целом очень хорошие результаты на тестах производительности, незначительно опережая обе версии серверов для WindowsNT фирмы Netscape.
    В IIS предусмотрены средства управления на базе Web-броузера и программа MicrosoftFrontPage - набор авторских инструментальных средств Web и средств управления информационными узлами.
    Сервер IIS очень тесно интегрирован с WindowsNTServer. Процедура инсталляции с помощью "мастеров" протекает безболезненно, занимая всего несколько минут. IIS создает на сервере WindowsNT обобщенную регистрационную запись (формуляр) пользователя, дающую право читать (но не записывать) файлы в каталоге IIS сервера. Если вы собираетесь организовать общедоступный Web-сервер, то надо просто поместить файлы с содержательным материалом в соответствующий каталог.
    В дополнение к HTTP-серверу пакет IIS содержит серверы Gopher и FTP. "Мастер" инсталляции по умолчанию устанавливает все три сервера, которые функционируют в качестве служб WindowsNT. ServiceManager, диспетчер служб Internet, входящий в комплект IIS - простая программа типа "Панели управления", позволяет запускать, останавливать работу и настраивать конфигурацию каждой из трех служб. Вы можете установить его на любом подключенном к локальной сети ПК с WindowsNT и использовать для управления любым из этих серверов.
    InternetServiceManager дает возможность контролировать доступ, указывать на конкретные каталоги сервера и задавать параметры для регистрации. В IIS предусмотрен журнал регистрации пользователей, который можно сохранить как текстовый файл или записать напрямую в базу данных ODBC, однако сервер не формирует усложненные статистические отчеты, подобные выводимым программой NetscapeEnterpriseServer.
    В IIS предусмотрены хорошие средства безопасности, тесно интегрированные с WindowsNT. Существует возможность настроить IIS таким образом, чтобы программа требовала ввести имя пользователя и пароль для доступа к Web-серверу либо к любой странице или каталогу на сервере. Также можно разрешать или запрещать доступ пользователям с IP-адресами, лежащими в определенном диапазоне, или пользователям с конкретными IP-адресами. IIS использует пользовательскую базу данных WindowsNT, а это означает, что управлять списком пользователей Web-сервера можно с помощью инструментов, имеющихся на сервереNT. Необходимость в ведении отдельной базы данных пользователей Web-сервера при этом отпадает.
    Для пользователей с более строгими требованиями к безопасности в IIS предусмотрены средства защищенных коммуникаций SSL 2.0. Можно хранить зашифрованные и незашифрованные страницы вперемешку на одном сервере. Для упрощения процесса получения сертификата аутентификации фирма Microsoft предлагает программу генерации SSL-ключа.
    С помощью диспетчера InternetServiceManager можно назначить конкретным каталогам NT-сервера различные IP-адреса. Эта функция позволяет организовать несколько виртуальных серверов на одном физическом. Пользователи воспринимают виртуальные узлы Web так, как будто они расположены на разных компьютерах, и каждый Web-сервер может иметь уникальное имя узла и(или) домена. Такая возможность, имеющаяся и у некоторых других серверов, рассматриваемых в данном обзоре, должна понравиться поставщикам услуг Internet и пригодится любой другой организации, которой требуется разместить несколько серверов на одной машине.
    Сервер IIS совместим не только со сценариями CGI и Perl для разработки простых прикладных программ, но и с интерфейсом InternetServerAPI (ISAPI), мощным API, разработанным фирмами Microsoft и ProcessSoftware и позволяющим программистам создавать сложные прикладные программы Web.
    Microsoft предоставляет также InternetDatabaseConnector (IDC), программу на базе ISAPI, обеспечивающую доступ к MicrosoftAccess, MicrosoftSQLServer, Oracle, Sybase, Informix и другим ODBC-совместимым базам данных. IIS не предусмотрены какие бы то ни было инструменты для управления содержательными материалами, но сервер хорошо работает с программой MicrosoftFrontPage.

    MicrosoftSQLServerWebAssistant

    В состав MicrosoftSQLServer 6.5 входит SQLWebAssistant - довольно простая в использовании утилита, не требующая знания HTML и серьезной практики работы с SQL. WebAssistant имеет интерфейс мастера (wizard), т.е. состоит из ряда последовательных форм с вопросами, отвечая на которые администратор может сэкономить время по выполнению рутинного HTML-кодирования и получить готовую (в HTML-кодах) страницу, содержащую результаты опубликования произвольного запроса к базе. Полученная страница не является активной в строгом смысле этого слова, так как публикуется при помощи push-метода, т.е. обновление происходит по инициативе сервера, и не допускает обновления со стороны клиента. Однако сервер может производить обновление (перегенерацию) страницы на триггерной основе или на основе расписаний задач под управлением SQLExecutive. Мастер работает только с базами данных MSSQLServer и использует три хранимых процедуры sp_makewebtask, sp_runwebtask и sp_dropwebtask. При необходимости они могут использоваться самостоятельно в кодах T-SQL.

    Модификация данных

    Для изменения содержимого базы данных SQL предусматривает три операции INSERT (вставка строк в таблицы), DELETE (удаление строк из таблицы) и UPDATE (обновление значений в существующих строках таблиц).
    Операция вставки INSERT может быть единичной либо групповой. Для единичной вставки необходимо явным образом определить значения колонок новой строки. Если указан неполный перечень колонок таблицы. то оставшиеся колонки получают неопределенное значение (NULL).
    Операция групповой вставки предполагает добавление строк в таблицу из некоторой другой таблицы, указанной явно или с помощью SELECT-предложения.
    Операция удаления DELETE является групповой, т.е. применяется ко всем строкам таблицы, удовлетворяющим требуемому условию. В отличие от запись-ориентированных языков манипулирования данными, SQL не использует понятия текущей строки в таблице, предполагая. что любая строка может быть однозначно идентифицирована в таблице с помощью значения первичного ключа. Если условие отсутствует, то удаляются все строки таблицы. Условие может использовать функцию проверки вхождения значения в некоторую другую таблицу, заданную с помощью SELECT-конструкции.
    Операция обновления значений в строках таблицы UPDATE также является групповой. Условие определяет, к каким строкам требуется применить операцию обновления. В условии, аналогично DELETE, можно использовать SELECT-конструкции.
    В SQL большое внимание уделяется обеспечению целостности данных при выполнении операций обновления данных. Предусмотрена возможность учета специальных ограничений целостности. Любые операции, нарушающие такие ограничения, отклоняются.
    Наиболее часто используемым примером ограничения целостности является ограничение на диапазон допустимых значений в таблицах. Очень часто значения в таблице являются корректными только в том случае, когда они присутствуют в одной или нескольких других таблицах, логически связанных между собой.
    При выполнении удаления или обновления строк для обеспечения целостности данных иногда необходимо выполнять определенные сопутствующие операции в других логически связанных таблицах. Например, удаление строк в одной таблице может сопровождаться удалением связанных строк в одной или нескольких других таблицах. Может также возникнуть необходимость заменить определенные значения связанных строк другой таблицы на неопределенные. При этом такие действия могут выполняться рекурсивно для достаточно сложных многотабличных структур.
    Такого рода ограничения целостности определяются при создании отдельных таблиц и определении структуры базы данных.
    Группу операций модификации данных, имеющих логически законченный смысл, после полного выполнения которых база данных останется корректной, называют транзакцией. В SQL предусмотрены средства управления транзакциями, позволяющие отслеживать выполнение транзакций, обрабатывать возникающие ошибки и координировать обработку базы данных несколькими приложениями или пользователями в параллельном режиме.
    Утверждение COMMIT означает удачное окончание текущей транзакции и начало новой. Утверждение ROLLBACK указывает на необходимость выполнения обратного отката, т.е. автоматического восстановления состояния базы данных на момент начала транзакции.
    В большинстве случаев координация работы в многопользовательском режиме выполняется с помощью механизма блокировок монопольного захвата некоторой части базы данных. Выполнять блокировки можно автоматически, блокируя данные некоторой транзакцией, как только к ним происходит обращение, и освобождать их при обработке COMMIT и ROLLBACK.
    В SQL можно блокировать таблицы в монопольном режиме (чтение и запись со стороны других транзакций откладываются до момента окончания транзакции) или в режиме разделения (откладываются только обновления со стороны других транзакций).

    Модули расширения Plug-In

    Броузер NetscapeNavigator допускает работу с модулями расширения (Plug-In). Для приведения того или иного модуля Plug-In в действие броузер контролирует поступающую из сети информацию и устанавливает тип данных, которые содержатся в этом модуле. Примерами таких данных могут служить файл Acrobat, видеофильм VDOLive или звуковой файл из RealAudio. Затем броузер создает "экземпляр" объекта модуля Plug-In для работы с конкретным типом данных.
    Комплект средств разработки программ позволяет разрабатывать модули Plug-In трех видов: встроенные в состав локальных HTML-страниц, полноэкранные и скрытые модули. Некоторые примеры модулей расширения приведены в таблице 2.2.
    Таблица 2.2. Примеры модулей расширения
    ПродуктИзготовительАдресНазначение
    WebFXPaperSoftwarehttp://www.paperincОбъемные изображения
    QuickTimeApplehttp://www.apple.com.comКинофильмы QuickTime
    AmberAdobehttp://www.adobe.comФайлы Acrobat
    VRScoutChaco Communicationhttp://www.chaco.com/products/#vrscoutОбъемные изображения
    RealAudioProgressive Networkhttp://www.realaudio.comаудио в реальном времени
    ShockwareMacromediahttp://www.macromedia.comмультимедиа-презентации
    EnvoyPlug-InTumbleweedSoftwarehttp://www.twcorp.com/plugin.htmдокументы Envoy


    MSInternetExplorer

    InternetExplorer 3.0 - проводник Internet, поддерживающий расширения HTML, включая таблицы и фреймы, он позволяет прослушивать аудиосопровождение страниц, выполнять программы Java с использованием JIT (JustInTimecompile). Он полностью поддерживает OLE, с его помощью можно просматривать документы, созданные офисными приложениями, выполнять программы ActiveX. Используя InternetExplorer, можно работать с интерактивными страницами, в составе которых имеются сценарии на VBScript или JavaScript. InternetExplorer поддерживает такие стандарты шифрования, как SSl 2.0 и SSL 3.0, PCT 1.0, помимо этого реализована возможность пересылки данных с цифровой подписью.
    В комплект программ InternetStarterKit, основой которого является InternetExplorer, входит клиент электронной почты, поддерживающий стандартные протоколы InternetPOP и SMTP. Почтовый сервер при использовании клиента InternetMail обслуживается поставщиком услуг Internet, и пользователи не имеют проблем с конфигурацией и поддержкой своего собственного почтового сервера.
    Вместе с InternetStarterKit пользователи глобальных сетей получают в свое использование также и возможность чтения новостей с помощью программы InternetNews. Пользователи, имеющие прямой (online) доступ в Internet, могут иметь доступ ко всем конференциям Internet и к любой статье в каждой конференции.

    MSVisualJ++

    При создании Jakarta (кодовое название проекта VisualJ++) был учтен опыт других создателей Java-инструментов - фирм Symantec, Borland и Sun.

    Направления развития броузеров Netscape и Microsoft

    Очередные версии NetscapeNavigator и MicrosoftInternetExplorer наполняют понятие броузера новым содержанием. Microsoft интегрирует InternetExplorer в среду Windows, а Netscape делает Navigator одним из компонентов нового программного пакета для коллективной работы.
    В подготовленный компанией Netscape коммуникационный пакет CommunicatorStandardEditionSuite входят Navigator 4.0, почтовая программа Messenger, работающая в локальных сетях и Internet, средство создания частных и общественных дискуссионных форумов Collabra, простой редактор HTML-документов Composer и переработанная версия NetscapeCoolTalk - программы для ведения конференций и телефонных переговоров в Сети. Расширенная версия пакета - CommunicatorProfessionalEdition - будет включать также средство ведения групповых рабочих планов и набор инструментов для сетевого администратора.
    В Navigator 4.0 введено много усовершенствований. Новая версия позволяет распределять закладки по разным папкам (в Navigator 3.0 требуется сохранить URL, а затем вернуться и переместить его в заданную папку). Интерфейс в целом стал лучше настраиваемым, чем раньше. Пользователь может теперь держать на экране только те кнопки и значки, которыми постоянно пользуется, и не выводить остальные. Панель задач (Taskbar), размещаемая вверху или внизу экрана, позволяет, щелкнув кнопкой мыши, переходить из Navigator в другие программы пакета Communicator. Появилась также новая автоматизированная программа установки, призванная облегчить конфигурирование дополнительных модулей.
    В версии 4.0 InternetExplorer стал значительно мощнее, и теперь Microsoft предназначает ему роль одного из основных механизмов, определяющих развитие операционной системы Windows.
    Броузер становится компонентом Рабочего стола: он обеспечивает не только перемещение по Web, но и работу с файлами (копирование, удаление, просмотр и т. п.) и документами. Экран разбит на две части: левая панель показывает локальную машину и Internet в представлении Проводника Windows 95, а правая, называемая View (просмотр), - либо Web-страницу, либо документ Word или Excel, либо стандартный вид папки со значками файлов. Панель задач динамически изменяется в зависимости от содержания панели View: во время редактирования документов, например, она становится инструментальной панелью Word, а при перемещении по "Паутине" - инструментальной панелью InternetExplorer.

    Наследование кода скриптов различными страницами

    У контейнера SCRIPT появился атрибут SRC. Это дает возможность авторам строить своеобразную библиотеку функций, к которым можно обращаться из любой страницы, в которой будет ссылка на такую библиотеку. При этом вовсе не обязательно размещать саму библиотеку на том же сервере, где размещены и гипертекстовые страницы Website. Можно использовать и чужие функции на JavaScript.
    В атрибуте SRC используется обычный URL. Внутри файла скриптов теги SCRIPT не используются. Это обычный файл с использованием определений функций и переменных.
    Другой новой возможностью работы с функциями стало введение нового объекта Function. Объект Function порождается конструктором Function:
    new_Function = newFunction (arg1,arg2,...,argn, function_body)
    Главное отличие от обычного декларирования функции заключается в том, что в данном случае порождена переменная new_Function, с которой можно работать, как с любым другим объектом. При обычном определении функции, такой переменной не порождается.
    Как любой объект, Function имеет свои свойства, но не имеет методов. В качестве свойств функции выступают аргументы и возможность назначения новых свойств через prototype.
    При обращении к объектам страницы-родителя можно использовать свойство opener окон и фреймов, что позволяет компенсировать отсутствие наследования и глобальных переменных в JavaScript.

    Навигация и гипертекстовые ссылки

    Структура WWW-сети задается гипертекстовыми ссылками. Гипертекстовая ссылка - это адрес другого HTML-документа или информационного ресурса Internet который тематически, логически или каким-либо другим способом связан с документом, в котором эта ссылка определена.
    Для записи гипертекстовых ссылок в WWW-сети была разработана специальная форма UniverseResourceLocator (URL).
    Эта форма представляет собой запись следующего вида:
    access://host.somewhere.dom:port/apath/other/doc#anchorname
    где
    access - спецификация протокола, например, http, gopher, file, mailto, news и др.;

    host.somewhere.dom - имя хоста;

    :port - номер порта (необязательно);

    /apath/other/doc - полный путь к объекту на указанном хосте;

    #anchorname - наименование гипертекстовой связи (необязательно).
    Для задания связи HTML-документа с различными сетевыми ресурсами и документами используется тег и его закрывающая пара . У данного тега есть несколько атрибутов, основным из которых является атрибут HREF , указывающий местонахождение сетевого ресурса и специфицирующий коммуникационный протокол (значение этого атрибута фактически представляет собой URL).
    Примеры гипертекстовых ссылок:
    Clickhere Clickhere
    При этом фраза Clickhere будет особым образом выделена броузером при просмотре HTML-страницы (будет подчеркнута и выделена другим цветом). Обратите внимание на правила записи пути к файлу (все слэши прямые, а не обратные, и диск от директории отделен не двоеточием, а символом ).

    Недостатки

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

    Непосредственный доступ к Java

    JavaScript имеет доступ к полям и методам в Java-классе в том же синтаксисе, как и в Java-программе. Общий синтаксис такого обращения:
    [Packages.]packageName.className.methodName
    Например, можно вызвать System.out.println, чтобы напечатать сообщение на Java-консоль.
    varSystem = java.lang.System System.err.println("GreetingsfromJavaScript")
    Можно даже использовать Java-конструкторы: varmydate = newjava.util.Date() System.out.println(myDate)

    NetscapeEnterpriseServer, NetscapeFastTrackServer

    Пакеты NetscapeEnterpriseServer и NetscapeFastTrackServer фирмы NetscapeCommunications призваны заменить собой ставшие популярными на рынке продукты CommunicationsServer и CommerceServer этой же фирмы. Программа FastTrack, позволит быстро организовать и запустить в работу собственный Web-узел. Пользоваться пакетом MicrosoftInternetInformation несколько легче, но усовершенствованные средства контроля доступа, совместимость с требованиями спецификации SSL 3.0 и высокое быстродействие при умеренной цене, делают FastTrack выгодным приобретением - даже с учетом того, что пакет MicrosoftIIS поставляется бесплатно и станет частью WindowsNTServer 4.0.
    NetscapeEnterpriseServer построен на надежном фундаменте FastTrack. Программа EnterpriseServer располагает некоторыми дополнительными функциональными средствами, предназначенными для крупных предприятий, в которых несколько человек или структурных подразделений совместно несут ответственность за создание Web-страниц и управление ими. К их числу относятся:
  • контрольные функции;
  • аутентификация клиентов;
  • встроенный процессор поиска фирмы Verity;
  • совместимость с протоколом SNMP;
  • управление содержательным материалом Web-узлов через программу LiveWire фирмы Netscape;
  • система регистрации и контроля использования документов и управление версиями.

  • Оба пакета рассчитаны на применение в среде WindowsNT и множества различных вариантов UNIX, в том числе HP-UX, IBMAIX, SGIIrix и SunSolaris. Все серверы Netscape поставляются в комплекте с программой NetscapeNavigatorGold 2.0 и дают возможность использовать метод put из HTTP 1.1, позволяющий авторам HTML просматривать существующие страницы, вносить в них изменения и сохранять страницы на сервере.
    В обоих продуктах предусмотрены возможности использования языков Java и JavaScript, а также интерфейса NetscapeServerAPI (NSAPI), позволяющего разработчикам создавать специализированные программы, пересылающие в ответ на HTTP-запросы динамически изменяющуюся информацию.
    Показатели быстродействия Web-серверов в среде WindowsNT превосходные и мало отличаются друг от друга.
    Производительность, которая была получена для пакетов в среде Solaris при малом числе клиентов, не была столь же впечатляющей. Но UNIX-серверы, работающие на тестовой машине SunNetra, продемонстрировали значительно лучшие возможности масштабирования, чем их аналоги для платформы Intel. Производительность Netscape-серверов Solaris стабильно повышалась по мере увеличения числа клиентов до 44, тогда как результаты Netscape-серверов на базе Intel начали падать после достижения максимума при 6 и 12 клиентах.
    Инсталляция обоих пакетов была несложной. Для установки сервера на базе WindowsNT нужно было щелкнуть на единственном исполнимом файле, который запустит простую программу инсталляции; задав несколько основных вопросов, она автоматически установила наш Web-сервер. В случае с продуктами Solaris понадобилось распаковать единственный архивированный файл, в котором хранилась программа установки нескольких других файлов.
    После того как пакет установлен, процесс настройки конфигурации Web-сервера одинаков на всех платформах: конфигурирование как FastTrack, так и EnterpriseServer происходит из Web-броузера NetscapeNavigator с помощью программы-администратора NetscapeServerManager (NSM). Благодаря этому вам не приходится иметь дело с деталями настройки конфигурации конкретной операционной системы, и вы получаете возможность дистанционного управления всеми своими Web-серверами: достаточно знать URL и пароль Web-сервера, которым вы собираетесь управлять.
    Например, формировать учетные записи для пользователей и групп пользователей легко, но для ограничения доступа к каталогам потребуется прибегнуть к сложной и продолжительной процедуре. Кроме того, ни в одном из пакетов Netscape не предусмотрено обращение к информации WindowsNT или Solaris о пользователях и группах, поэтому, если вы применяете любой из этих серверов для внутренних нужд, вам придется вести раздельные списки пользователей и паролей.
    В остальном программа NetscapeServerManager дает вам исчерпывающий контроль над конфигурацией Web-сервера. NSM позволяет устанавливать виртуальные серверы, которые допускают размещение локальных страниц на одном сервере в отдельных доменах. Программа NSM - единственная, дающая возможность создать общий нижний колонтитул для всех принадлежащих вам страниц Web. Можно настроить свой Web-сервер для управления несколькими процессами и потоками входящих запросов. У вас есть возможность заблокировать или разрешить доступ к серверу и отдельным страницам на основании их IP-адресов или имени узлового компьютера, а также предоставить пользователям права доступа к индивидуальным каталогам только для чтения или для чтения/записи.
    Имеющиеся в FastTrack средства регистрации следует признать достаточными. Сервер формирует стандартные журналы доступа и журналы регистрации ошибок в виде отдельных файлов. Можно просматривать содержимое этих журналов из программы-администратора, используя Navigator, что особенно удобно. Однако в отличие от таких пакетов, как WebSite, FastTrack не позволяет регистрировать события типа исполнения программ CGI, прием полей заголовков HTTP и сетевые операции ввода-вывода. Но в пакете EnterpriseServer предусмотрено ведение журнала событий CGI и иные действия при помощи методов расширенного настраиваемого протоколирования.
    Помимо стандартных сценариев CGI (и WinCGI в среде Windows NT) FastTrack и EnterpriseServer позволяют программистам, работающим на С, непосредственно использовать интерфейс NetscapeServerAPI. Вдобавок оба продукта обеспечивают исполнение Java-программ и поставляются вместе с NetscapeNavigatorGold, WYSIWYG-редактором HTML-страниц, объединенным со стандартным броузером Navigator.
    В состав пакета EnterpriseServer входит программа NetscapeLiveWire (поставляется с пакетом FastTrack), служащая для расширения возможностей Web-сервера. С помощью FastTrack и LiveWire разработчики могут создавать компилируемые прикладные программы, используя JavaScript. LiveWire содержит превосходные средства управления информационным узлом (отсутствующие в FastTrack), например способна выявлять разорванные связи с внешними узлами Web.
    EnterpriseServer входит в состав пакета SuiteSpot (Netscape) наряду с серверами Mail, News, Proxy и Catalog. В SuiteSpot содержится также модуль для разработчиков LiveWirePro (LiveWire поставляется вместе с сервером InformixOnlineWorkgroupServer).
    EnterpriseServer явно выделяется на фоне остальных программ. В тех организациях, где подготовкой информационного наполнения занимаются несколько подразделений, сотрудники могут воспользоваться процессором MKSIntegrityEngine - составной частью EnterpriseServer - для контроля прохождения HTML-документов. "Прописав" документ у себя, пользователь не позволяет остальным видоизменить его прежде, чем документ не "выписан". Кроме того, MKS позволяет сохранять на сервере все предыдущие версии документа. Авторы информационного наполнения могут просмотреть список версий, в котором указаны имена создавших их лиц, и даже отредактировать ранние версии документа для их дальнейшего использования. Поисковый процессор Verity дает пользователям возможность проводить полнотекстовый поиск в узле Web, используя простые логические операторы. Он допускает работу как с HTML, так и с простыми текстовыми документами. Можно воспользоваться процессором поиска "как есть", подготовить специализированный модуль CGI или HTML, создав свой собственный интерфейс с процессором поиска, или встроить процессор в какую-либо страницу HTML. Функция AutoCatalog ведет учет всей имеющейся на сервере информации, предоставляя пользователям возможности отыскивать документы по названию, автору, времени последнего изменения и частоте обращений.
    Благодаря возможности сертификации клиента и средствам поиска и управления документами, пакет EnterpriseServer представляет собой мощное решение для Internet и интрасетей масштаба предприятия. FastTrack - отлично подходит для быстрой организации узлов Web среднего и малого размеров.

    NetscapeNavigator

    Navigator 3.0 представляет собой продолжение успешного развития технологии фирмы Netscape, фактически устанавливающей стандарты в этой области. Политика Netscape в области создания клиентских приложений включает в себя три основных компонента: программные модули (Plug-In), представляющие собой небольшие расширения Navigator, загружаемые Java-приложения и язык JavаScript. В отличие от ActiveX эти компоненты работают на любой платформе (Unix/ XWindow, Macintosh и MSWindows).
    Navigator и InternetExplorer во многом схожи. Оба предлагают набор базовых возможностей, удовлетворяющий стандарту HTML 3.0, благодаря чему можно воспользоваться любым из них, чтобы увидеть основной текст Web, заголовки, изображения, списки, таблицы и "горячие" ссылки. Для работы с широким диапазоном типов файлов, используемых на многих узлах, оба броузера для отображения или воспроизведения данных применяют вспомогательные приложения. Оба имеют привлекательный, простой интерфейс, позволяющий легко вернуться к пройденным ранее узлам Web.

    В отличие от обычной редакции

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

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

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

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

    Когда открываются файлы, в которых есть формы и другие элементы, напрямую не рассчитанные на обработку данным редактором, то ответственные за создание этих элементов управляющие коды HTML отображаются в виде "гардинных" пиктограмм (garmenttabs). Двойной щелчок на пиктограмме тега открывает окно, в котором можно редактировать необработанный исходный текст HTML; можно вставить исходный текст в любое место файла, открыв это же самое окно из меню. Единственная функция кнопки "верификация" данного меню - проверить, чтобы каждый управляющий код был заключен в угловые скобки. Редактор не будет блокировать коды в угловых скобках, даже если он не распознает их; он просто выведет неизвестный код на экран с пиктограммой "одеяние" (clothingtag). Редактор генерирует лишь минимальный исходный текст HTML, необходимый для отображения файла в броузере.

    NavigatorGold создает таблицы, но не работает с формами и кадрами. В пакете нет "мастеров" для создания страниц или шаблонов, но Web-узел фирмы Netscape располагает оперативными "мастерами" и образцовыми шаблонами, которые можно использовать для создания страниц, а впоследствии усовершенствовать их с помощью NavigatorGold или любого другого HTML-редактора. Когда создание страниц будет завершено, NavigatorGold загрузит их через FTP или http на удаленный сервер.

    NetWareWebServer

    Пакет NetWareWebServer фирмы Novell может стать естественным выбором для пользователей, имеющих сети с установленной в них ОС NetWare и желающих построить надежный сервер интрасети масштаба предприятия. Он показывает превосходную производительность на тестах, слегка опережая самые быстродействующие продукты для WindowsNTServer. Однако NetWareWebServer имеет ограниченные возможности контроля доступа, не рассчитан на работу с SSL, виртуальными серверами и использование виртуальных путей и не располагает средствами управления информационным узлом, хотя компания Novell и утверждает, что все эти функции будут реализованы в следующей версии. Пробную версию текущего продукта можно загрузить из сети бесплатно.
    NetWareWebServer представляет собой набор модулей NLM, работающих на сервере NetWare 4.x. В состав пакета входит исполнимая версия NetWare 4.1. Чтобы запустить WebServer, необходимо также инсталлировать модуль TCP/IP, входящий в рабочую конфигурацию NetWare.
    Функции администрирования очень просты. Для управления сервером применяется утилита WebManager, которую программа NetWareWebServer заносит в каталог Public на сервере, чтобы ее можно было вызывать с любого Windows-компьютера в сети. Прикладной модуль NLM позволяет вести журнал текущего контроля и протоколировать отчеты, но они не отличаются подробностью.
    Для обеспечения безопасности сервера используется адресная база данных NetWare (NetWareDirectoryServices, NDS). С помощью WebManager вы можете предоставлять пользователям или их группам права доступа к каталогам, но не к отдельным файлам; вы также можете разрешать или запрещать доступ по IP-адресу или имени домена (но не имени узла). WebManager, однако, не позволяет исключать конкретных пользователей или адреса. Например, если вы хотите предоставить права всем пользователям сети, за исключением одного временного, то вам придется занести в список также всех пользователей, которым доступ разрешен.
    Во всем, что не касается администрирования, NetWareWebServer наделен вполне добротными возможностями. В дополнение к стандартным средствам работы со сценариями CGI и Perl предусмотрен интерпретатор Бейсика NetBasic, который исполняет встроенные в текст HTML прикладные сценарии и совместим с фирменным локальным интерфейсом LCGI (LocalCommonGatewayInterface) компании Novell. В отличие от стандартного интерфейса CGI, работающего через гнезда TCP/IP, LCGI действует через модуль STREAMS.NLM. С помощью LCGI можно составлять прикладные программы, которые взаимодействуют с другими NLM на сервере, такими, как базы данных. В пакет NetWareWebServer входит NDS-броузер, который позволяет любому клиенту исследовать NDS-объекты и методы, и который написан с использованием LCGI.
    К сожалению, NetWareWebServer не предусматривает прямого соединения с отличными от NetWare, базами данных. Пользователь должен либо подготовить свою программу LCGI, либо ждать выхода следующей версии NetWareWebServer, в которой по обещаниям Novell будут иметься некоторые средства для подключения к базам данных. Руководство программиста, поставляемое фирмой Novell вместе с продуктом, дает хорошее представление об LCGI, а также о других средствах разработки, использование которых предусматривает NetWareWebServer. В руководстве приводятся многочисленные примеры программ и сценариев, созданных с помощью CGI, Perl, NetBasic и LCGI.

    Нумерованные списки

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

    Объект Command

    Объект Command можно создавать независимо от ранее созданных объектов Connection, определив его свойство ActiveConnection в строке команды. Когда ADO создает объект Connection, он не устанавливает соответствие между этим объектом и переменными объекта. Кроме того, когда ставится в соответствие составной объект Command соединению, необходимо отдельно создать и открыть объект Connection; это назначит свойство для переменной объекта. Если не установить свойство ActiveConnectionобъекта Command в переменную объекта, то ADO создаст новый объект Connection для каждого объекта Command, даже при использовании той же строчки. Объекты Command используются для получения записей и создания объектов Recordset, для выполнения больших операций или для изменения структуры БД. Используя коллекции, методы и свойства объекта Command можно производить следующие действия:
  • указывать на установленное соединение и объект Command с помощью свойства ActiveConnection;
  • определять тип команды (например, SQL-предложение), используя свойство CommandText;
  • устанавливать время задержки выполнения команды, используя свойство CommandTimeout;
  • с помощью свойства CommandType определять тип команды, описанной в свойстве CommandText для определения приоритета выполнения;
  • с помощью свойства Preparedопределять, установлен ли приоритет выполнения команд;
  • с помощью коллекции Parametersуправлять аргументами, передаваемыми провайдеру и получаемыми от него;
  • выполнять команды и возвращать объект Recordset, используя метод Execute.

  • Объект Command содержит коллекцию Parameters. Используя метод Refresh коллекции Parameters можно получить информацию о параметрах хранящихся процедур или для параметризации запроса, определенным в объекте Command. Если не определен объект Parameter и обращение идет к коллекции Parameters перед вызовом метода Refresh, то ADO автоматически вызывает этот метод и заполняет коллекцию Parameters. Зная имена свойств параметров хранимой процедуры или параметризированного запроса, который нужно вызвать, можно создать объекты Parameter с соответствующими свойствами и, используя метод Append, добавить их в коллекцию Parameters. Это позволит устанавливать и возвращать значения параметров без вызова метода Refreshдля коллекции Parameters для получения от провайдера информации о параметрах. Для удаления объектов Parameter из коллекции Parameters используется метод Delete.
    Используя различные коллекции, методы и свойства объектов Parameter можно выполнять следующее:
  • устанавливать или возвращать имя параметра, используя свойство Name;
  • устанавливать или возвращать значение параметра, используя свойство Value;
  • устанавливать или возвращать характеристики параметров, используя свойства Attributes и Direction, Precision, NumericScale, Size и Type;
  • используя метод AppendChunk можно посылать параметру длинные двоичные или текстовые данные.

  • Для обращения к объекту Parameter по его порядковому номеру или имени можно использовать следующие варианты:
    command.Parameters(0) command.Parameters("name") command(0) command("name") command![name]

    Объект Connection

    Объект Connection представляет соединение с источником данных OLEDB. Объекты Connection можно создавать независимо от ранее созданных объектов. Объект Connection представляет собой выделенный сеанс связи с источником данных. В случае архитектуры клиент/сервер этот объект может выступать эквивалентом соединения с сервером. Используя коллекции, методы и свойства объекта Connection, можно выполнять следующее:
  • конфигурировать соединение перед его установкой с помощью свойств ConnectionString, ConnectionTimeout и Mode;

  • Объект Connection
  • с помощью свойства DefaultDatabaseуказывать базу данных, которая будет использоваться по умолчанию;
  • устанавливать уровень изоляции для транзакций с помощью свойства IsolationLevel;
  • выбирать OLEDB-провайдера, используя свойство Provider;
  • устанавливать, а затем разрывать физическое соединение с источником данных, используя методы Openи Close;
  • выполнять команды для установленного соединения, используя метод Execute, и управлять их выполнением с помощью свойства CommandTimeout;
  • управлять транзакциями, включая вложенные транзакции, если провайдер поддерживает их, с использованием методов BeginTrans, CommitTrans и RollbackTrans и свойства Attributes;
  • обрабатывать ошибки, возвращаемые источником данных, используя коллекцию Errors;
  • с помощью свойства Version определять версию ADO.

  • Коллекция Errors содержит в себе все объекты Error, которые относятся к одиночным операциям. Любая операция ADO может генерировать одну или несколько ошибок. При появлении ошибки один или несколько объектов Error могут быть помещены в коллекцию Errors. Когда другая операция генерирует ошибку, то коллекция Errors очищается, и в нее могут быть помещены новые объекты Error. Для принудительной очистки коллекции Errors используется метод Clear. Некоторые свойства и методы возвращают предупреждения, которые не прерывают выполнение программы. Для получения детального описания каждой ошибки можно воспользоваться следующими свойствами:
  • Description- содержит описание возникновения ошибки;
  • Number - содержит номер ошибки (число типа Long);
  • Source - идентифицирует объект, породивший ошибку; это особенно полезно, когда имеется несколько объектов Error в коллекции Errors;
  • HelpFile и HelpContext - указывают на файл и раздел помощи MicrosoftWindows описания ошибки, соответственно;
  • SQLState и NativeError- принимают информацию от источника данных ODBC.

  • В таблице приведены три примера используемых ошибок:
    Имя константыНомер ошибкиОписание
    AdErrInvalidArgument3001Неправильный аргумент
    AdErrNoCurrentRecord3021Нет текущей записи для операции
    AdErrIllegalOperation3219Неправильная операция


    Объект Recordset

    Объект Recordset представляет полный набор записей таблицы данных или результат выполненной команды. В любое время объект Recordset ссылается только на одну запись из текущего набора. Объекты Recordset можно создавать независимо от ранее созданных объектов Connection путем указания метода Open в строке команды. Когда ADO создает объект Connection, он не устанавливает соответствие между этим объектом и переменными объекта. Кроме того, при открытии составного объектаRecordset нужно отдельно создать и открыть объект Connection; это назначит свойство для переменной объекта. Если не используется переменная объекта, когда открывается объект Recordset, то ADO создает новый объект Connection для каждого нового объекта Recordset, даже если пропущена эта операция. Объекты Recordset используют для управления данными на уровне записей. При использовании ADO, почти всегда управление данными происходит с помощью объектов Recordset. Все объекты Recordset строятся с использованием записей (строк) и полей (столбцов). Возможно использование четырех различных типов курсора при открытии объекта Recordset:
  • Dynamiccursor- позволяет просматривать добавления, изменения и удаления, сделанные другими пользователями; позволяет любые виды перемещений внутри Recordset, которые не используют закладок; разрешает использовать закладки, если провайдер их поддерживает;
  • Keysetcursor - ведет себя как и Dynamiccursor, за исключением того, что предотвращает просмотр записей, добавленных другими пользователями, и защищает от доступа к записям, удаленным другими пользователями из набора Recordset; всегда поддерживает закладки и любые типы перемещений внутри Recordset; данные, измененные другими пользователями, будут видны;
  • Staticcursor - обеспечивает статическую копию набора записей, используемую для поиска данных или генерации отчета; добавления, изменения и удаления других пользователей здесь не видны;
  • Forward-onlycursor - ведет себя идентично Staticcursor за исключением того, что позволяет просматривать записи только в одном направлении - вперед. Это улучшает выполнение в случае когда нужно "пробежаться" по всем записям только один раз.


  • Установить необходимый тип курсора можно с помощью свойства CursorType объекта Recordset или указать одноименный аргумент при вызове метода Open. Если пользователь не определил тип курсора, то ADO по умолчанию открывает курсор типа Forward-onlycursor. Пользователь может создавать столько объектов Recordset, сколько ему нужно. Различные объекты Recordset могут обращаться к одним и тем же таблицам и записям, не конфликтуя при этом. При создании объекта Recordset текущая запись отмечается как первая запись, а свойства BOF и EOF устанавливаются False. Если не существует ни одной записи, то свойство RecordCount устанавливается в 0, а свойства BOF и EOF устанавливаются True. Наряду с методом Moveможно использовать методы MoveFirst, MoveLast, MoveNext и MovePrevious, а также свойства AbsolutePosition, AbsolutePage и Filter для переопределения текущей записи. При использовании курсора типа Forward-onlycursor можно пользоваться только методом MoveNext. При использовании метода Move для обращения к каждой записи, нужно использовать свойства BOFи EOF для определения достижения начала или конца объекта Recordset. Объект Recordset поддерживает два способа обновления данных: прямое и пакетное. При прямом обновлении все изменения в данных записываются в основной источник данных сразу же после вызова метода Update. В случае пакетного обновления, провайдер сначала кэширует все произведенные изменения, а затем одним вызовом метода UpdateBatch пересылает их в базу данных. После вызова метода UpdateBatch для проверки возможного конфликта данных используется свойство Status. Заметим, что пакетный метод обновления можно использовать только при двух типах курсора: Keysetcursor и Staticcursor.

    Коллекция Fields содержит все объекты Field объекта Recordset. Каждый объект Field соответствует столбцу во множестве Recordset. Используя свойство Value объекта Field, можно устанавливать или возвращать данные для текущей записи. Используя коллекции, методы и свойства объекта Field, можно выполнять следующие действия:


  • возвращать имя поля с помощью свойства Name;
  • просматривать или изменять данные во множестве Recordset с помощью свойства Value;
  • возвращать основные характеристики поля, используя свойства Type, Precision и NumericScale;
  • возвращать объявленный размер поля с помощью свойства DefinedSize;
  • возвращать действительный размер данных во взятом поле с помощью свойства ActualSize;
  • используя свойство Attribute, определить типы функций, которые можно выполнить с данным полем;
  • с помощью методов AppendChunk и GetChunk, управлять значениями полей, содержащих длинную двоичную или текстовую информацию;
  • используя свойства OriginalValue и UnderlyingValue, разрешать разногласия в значениях полей при пакетном обновлении данных.


  • Для обращения к объекту Field в коллекции по порядковому номеру или имени используются следующие способы:

    recordset.Fields(0) recordset.Fields("name") recordset(0) recordset("name") recordset![name]

    Объекты и их иерархия, методы и свойства

    Язык сценариев VBScript является объектным языком. Объекты характеризуются свойствами и методами. Свойства представляют собой именованные поля объектов. А методы являются процедурами и функциями, связанными с данным объектом и обрабатывающими его свойства. Не имеется прямой поддержки наследования, однако объекты могут быть вложенными в другие объекты, образуя объектную иерархию. Объекты VBScript бывают нескольких видов:
  • объекты броузера;
  • объекты документа, определенные пользователем на HTML;
  • объекты, созданные пользователем в сценарии.

  • Объекты броузера - стандартные (встроенные) объекты VBScript - начинаются с объекта window, в который вложены объектыnavigator, location, history и document. Объект window дает возможность манипулировать окнами броузера. Объект navigator позволяет получить информацию об используемом броузере. Через свойства и методы location программист получает доступ к указателю URL текущего файла и его отдельным элементам. Методы объекта history позволяют перемещаться по пройденным URL вперед, назад и на любой произвольный указатель в массиве истории. Объект documentопределяет свойства HTML-документа, например, title - заголовок документа, методы динамического создания документа, например, writeln(), а также отражает вложенность форм и их элементов.
    Своеобразие доступа к свойствам (полям) и методам элементов формы определяется объектным характером языка VBScript, в нем существует четкая иерархия объектов документа:
    DOCUMENT ФОРМА ЭЛЕМЕНТ СВОЙСТВО или МЕТОД()
    Доступ к свойствам и методам элементов формы производится путем перечисления имен всех объектов, составляющих форму. Например, обращение к значению текстового поля L в форме frm будет выглядеть: document.frm.L.value.
    Кроме стандартных объектов и объектов документов, пользователь может создать в сценарии с помощью оператора CreateObject свои объекты и использовать их как любые другие.

    Обеспечение целостности данных.

    С использованием SQL можно определить достаточно сложные ограничения целостности, удовлетворение которым будет проверяться при всех модификациях базы данных.
    SQL в стандарте ANSI/ISO является реляционно-полным языком, и СУБД, поддерживающие его, удовлетворяют всем правилам Кодда.

    Обработка исключений и легковесные процессы (потоки)

    Одним из важнейших элементов программирования является обработка особых ситуаций. Такие ситуации порождаются, например, делением на ноль, выходом за границы отведенной памяти или попытками записи в защищенные блоки памяти. Если в обычных языках программирования разработчик может обрабатывать эти нештатные ситуации (обычно называемые прерываниями), а может и не обрабатывать, то в Java он обязан это делать или явно указать на обработку прерываний. Все такие необычные действия в Java называются исключениями (exception).
    Перехват исключений в Java оформляется блоком "try-catch". Смысл у него очень простой: сначала делается попытка выполнить фрагмент кода, и если генерируется исключение, то оно обрабатывается фрагментом catch:
    try { // codeblock } catch (exception) { //exceptionexecutioncode } catch (exception) { //exceptionexecutioncode throw (exception); } finally { }
    Из примера видно, что кроме try и catch при обработке прерываний могут применяться еще операторы throw и finally. Первый используется для порождения исключения, а второй для передачи обработки исключения обработчику умолчания.
    Все исключения делятся на два класса Exception и Error. В корне иерархии исключений находится класс Throwable. Класс Exception содержит описания исключений, которые должны перехватываться программным кодом разработчика, если их обработка не предусмотрена в программе, то компилятор выдаст сообщение об ошибке. Например, все работы с сетью должны содержать конструкции try и catch:
    importjava.net.*; importjava.io.*; importjava.applet.*; importjava.awt.*; publicclassurl_1 extendsApplet { Socketurl; InputStreamis; OutputStreamos; DataOutputStreamdos; intc; StringBuffersb = newStringBuffer (); bytebyte_b[] = newbyte[1024]; intc_l; longdate;
    publicvoidinit () { try { url = newSocket ("localhost",80); is = url.getInputStream (); os = url.getOutputStream (); dos = newDataOutputStream (os); dos.writeBytes ("GET /java/test.htmHTTP/1.0\r\n\r\n"); while ( (c=is.read ())!=-1) { sb.append ( (char) c); } os.close (); is.close (); url.close (); } catch (IOExceptionee) { System.out.println ("Problemwithreading."); } add ("Center",newTextArea (sb.toString ())); } publicvoidpaint (Graphicsg) { g.drawString (sb.toString (),10,40); } }

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

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

    typemethod_name (args_list) throwsexception_list { ... }

    Если в предыдущем примере убрать блок try-catch, и использовать throws, то компилятор должен допустить данный исходный текст. Если не будет указано ни первое, ни второе, то код не будет оттранслирован.

    Если прерывание (исключение) необходимо проигнорировать, то в этом случае в связке с try нужно использовать finally:

    try { // code } catch { // code } finally { // code }

    Блок finally будет выполняться до того, как исключение будет перехвачено блоком catch. Если catch нет вовсе, то сначала будет выполнен блок finally, а только потом управление будет передано обработчику исключений.

    Исключения - это такие же классы, как и все остальные. Разработчик может расширить число этих классов. Однако, расширять можно только класс Exception. Для возбуждения исключения, порожденного пользователем применяется оператор throw. В приведенном примере возбуждение исключения происходит при достижении счетчиком значения 10.

    classNewExeptionextendsException { privateintparm; NewException (intparm) { parm = a; } publicStringtoString () { return "valuetoolong:"+parm+"."; } } classCycle { staticvoidculc (intx) throwsNewException { inti; for (i=0;i

    В этом примере представлено Java-приложение (application), которое выполняется локально, а не передается по сети. Главный (main) метод класса Cycle пытается выполнить метод culc, который в свою очередь порождает исключение, если параметр цикла превысит значение 10. Обратите внимание, что culc игнорирует исключение NewException, поэтому оно попадает на обработку в блок try-catch метода main.

    Любое Java-приложение (application) должно иметь метод main, с которого собственно и начинается процесс выполнения Java-программы. Для апплетов действует совершенно другой порядок выполнения кода.

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

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

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

    importjava.applet.*; importjava.awt.*; publicclasshelloextendsAppletimplementsRunnable { intx = 0;inty = 0;intstart_x = 0;intstart_y = 0; Threadnew_thread = null; Stringmessage = "Hellobody!!!"; publicvoidinit () { y = size ().height;x = size ().width;start_x = x;start_y = y; } publicvoidstart () { new_thread = newThread (this); new_thread.start (); } publicvoidrun () { while (true) { repaint (); x -= 10; if (x<0) { x=start_x;} try { Thread.sleep (100);} catch (InterruptedExceptione) { } } } publicvoidpaint (Graphicsg) { Fontnew_font = newFont ("TimesRoman",1,48); g.setFont (new_font); g.drawString ("Hello, Java.",x,y/2); } }


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

    Класс hello - это наша программа. Она расширяет класс applet и использует интерфейс Runnable. Этот интерфейс необходим для того, чтобы породить подпроцесс (поток). Он специфицирует метод run (), который мы определяем в своей программе (классе hello).

    Для того, чтобы переменные были доступны всем методам класса, мы их вынесли в начало. Метод init () выполняется первым после загрузки апплета. В нем производится присвоение начальных значений. Затем, после init (), выполняется метод start (). В этом методе мы порождаем новый поток. Собственно больше ничего и не делаем. Метод run () содержит код этого потока. Отображение информации осуществляется методом paint (). Реально этот метод вызывается системой только в том случае, если с экраном что-либо произошло: наехало другое окно или мы изменили размеры окна броузера. В нашем случае мы принудительно заставляем выполниться paint (), вызывая метод repaint () в методе run ().

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

    Обработка событий

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

    Здесь TAG - это некоторый тег HTML, а eventHandler - имя обработчика событий. Как правило, обработчик событий имеет имя, совпадающее с именем события, с приставкой "on" (см. таблицу 3.2). Заметим, что многие объекты имеют методы, эмулирующие события, но эти методы не запускают обработчик события.
    Таблица 3.2. Типы событий и обработчиков

    Событие
    Когда происходитОбработчик события blurПотеря фокуса ввода элементом формыonBlur clickПользователь щелкает мышкой по элементу формы или связиonClick changeПользователь изменяет значение элемента text, textarea, или выделяет элементonChange focusУстановка фокуса ввода на элементе формыonFocus loadПользователь загружает страницу в броузерonLoad mouseoverПользователь двигает мышью над связью или якоремonMouseOver selectПользователь выбирает поле ввода элемента формыonSelect submitПользователь посылает формуonSubmit unloadПользователь выходит со страницыonUnload Ниже представлен пример диалога ввода имени пользователя и вывода сообщения приветствия. Нажатие кнопки мыши вне элемента ввода (событие onBlur - потеря фокуса) после набора строки текста приводит к вызову стандартной функции alert для выдачи сообщения.
    Введите Ваше имя:

    Другой пример иллюстрирует обработку события onClick при нажатии видео-кнопки документа - вызов функции подтверждения confirm:

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



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

    Также можно написать скрипт в контейнере

    В этом случае, после того как Вы определили в контейнере

    SimpleValidation


    Enteravaluebetween 1 and 10:

    Этот пример отличается от предыдущих, тем, что здесь для проверки содержимого поля ввода используется свойство Value. Для того, чтобы обратиться к свойству Value, необходимо указать имя поля ввода. Всегда нужно указывать полное имя объекта формы - Document.ValidForm.Text1. Но чтобы всегда не писать длинные имена, можно поступить следующим образом: сначала необходимо объявить некоторую переменную (в примере TheForm), а затем используя выражение Set поставить ей в соответствие имя формы. После этого объявленную переменную можно использовать в качестве имени формы.

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

    TheForm.Submit

    Общая характеристика языка VBScript

    VBScript - новейший член семейства языков программирования VisualBasic, позволяющий писать скрипты для Web. Используя VBScript Вы можете проверять правильность заполнения форм, автоматически генерировать HTML-странички и многое другое. VBScript общается с основным приложением, используя технологию ActiveX. VBScript интегрирован с броузерами WWW и приспособлен к работе с управляющими элементами ActiveX и другими объектами, встраиваемыми в активные HTML-странички.

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

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

    Общие сведения

    Среди общедоступных средств Internet для предоставления информации система WWW занимает особое место.
    Система WWW была разработана несколько лет назад в одном из крупнейших европейских центров ядерных исследований CERN (EuropeanCenterforNuclearResearch, Швейцария), и предназначена для объединения документов и файлов по всей сети Internet с помощью гипертекстовых связей.
    Язык гипертекстовой маркировки HTML является одним из составных компонентов WWW. Он был основан на стандарте ISO 8879-1986 SGML.
    HTML позволяет определять структуру электронного документа с полиграфическим уровнем оформления; результирующий документ может содержать самые разнообразные элементы: иллюстрации, аудио- и видео- фрагменты и так далее. Язык включает в свой состав развитые средства для специфицирования нескольких уровней заголовков, шрифтовых выделений, различных групп объектов, например, словари, каталоги или меню для размещения иллюстраций и других фрагментов, а также множество других возможностей.
    В основу гипертекстовой разметки была положена теговая модель описания документа, позволяющая представить документ в виде совокупности элементов, каждый из которых окружен тегом (управляющим HTML-кодом). По своему значению теги близки к понятию операторных скобок begin/end в универсальных языках программирования и задают области действия имен локальных переменных, определяют область действия правил интерпретации текстовых элементов документа и т.п.
    Документ HTML представляет собой не что иное, как обычный ASCII-файл, с добавленными в него управляющими HTML-кодами (тегами). Каждый тег начинается с левой угловой скобки "<" и заканчивается правой угловой скобкой ">" . Между скобками записывается идентификатор тега и, если необходимо, дополнительные аргументы. Все теги по их назначению и области действия можно разделить на пять основных групп:
  • общего назначения;
  • определения структуры текста;
  • определения атрибутов текста;
  • навигации и гипертекстовых ссылок;
  • задания специальных эффектов и форматов данных.

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

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

    Для разработки Internet/Intranet-приложений используется широкий спектр языков и средств программирования:
  • язык разметки гипертекста HTML для создания и интерпретации Web-структур;
  • язык виртуальной реальности VRML для генерации и управления трехмерными сценами;
  • язык Java и средства программирования мобильных приложений;
  • языки сценариев для разработки интерактивных страниц.


  • Обзор объектов и компонентов ASP

    Механизм активных серверных страниц включает в себя пять встроенных объектов и ряд серверных компонентов, обеспечивающих серверные страницы всей функциональностью, c возможностью использования в сценариях, выполняемых на сервере. Рассмотрим сначала встроенные объекты. Эти объекты перечислены в таблице.
    Объект Application используется для обмена информацией между пользователями данного приложения. Этот объект имеет два метода: Lock и Unlock - и может реагировать на два события - OnStart и OnEnd. Метод Lock блокирует изменения свойства объекта Application, метод Unlock отменяет данный запрет. Объект Application может хранить переменные. Использование объектов OnStart и OnEndтребует размещения соответствующего программного кода в глобальном файле GLOBAL.ASA.
    ОбъектНазначение
    Application / ПриложениеИспользуется для обмена информацией между пользователями данного приложения.
    Request / ЗапросИспользуется для получения значений параметров запроса, посланного клиентом.
    Response / ОтветИспользуется для посылки информации клиенту.
    Server / СерверОбеспечивает доступ к методам и свойствам сервера.
    Session / СеансИспользуется для хранения информации в течение сеанса.

    Объект Request содержит только один тип атрибутов - коллекция:
    АтрибутОписание
    ClientCertificateВозвращает значения, хранящиеся в клиентском сертификате, посланном на сервер.
    CookiesВозвращает cookie-значения , посланные в HTTP-запросе.
    FormВозвращает значения элементов формы, посланные на сервер.
    QueryStringВозвращает значения строки запроса, посланной в URL на сервер.
    ServerVariablesВозвращает значения серверных переменных.

    Объект Response используется для посылки информации клиенту. Рассмотрим набор атрибутов объекта Response:
    Тип атрибутаАтрибутОписание
    КоллекцияCookiesПозволяет установить cookie-значения.
    СвойствоBufferПоказывает, забуферизирована ли выходная HTML-страница.
    СвойствоContentTypeОпределяет тип HTTP-содержания для ответа клиенту.
    СвойствоExpiresОпределяет временную задержку перед кэшированием страницы после окончания сеанса связи.
    СвойствоExpiresAbsoluteОпределяет дату/время кэширования страницы после окончания сеанса связи.
    СвойствоStatusЗначение строки состояния, возвращаемой сервером.
    МетодAddHeaderУстанавливает HTML-заголовок.
    МетодAppendToLogДобавляет строку в конец журнала изменений сервера
    МетодBinaryWriteЗаписывает в выходной поток HTTP без перевода в символы.
    МетодClearСтирает любой выходной буфер HTML.
    МетодEndОстанавливает процесс выполнения ASP и возвращает текущие данные.
    МетодFlushНемедленно посылает клиенту данные из выходного буфера.
    МетодRedirectСлужит для переадресации на другую станцию, заданную в формате URL.
    МетодWriteЗаписывает строку данных в выходной поток HTTP.
    <
    Объект Server обеспечивает доступ к методам и свойствам сервера. Он обладает четырьмя методами: CreateObject, HTMLEncode, MapPath и URLEncode. Метод CreateObject служит для создания экземпляров серверных компонентов. Метод HTMLEncode используется для вывода на экран тегов языка HTML. Метод MapPath предназначен для преобразования относительных или виртуальных маршрутов в каталоги на сервере. Метод URLEncodeслужит для преобразования адресов в формате URL.

    Объект Session используется для хранения переменных в течение одного сеанса работы с сервером. Данный объект включает следующие атрибуты:
    Тип атрибутаАтрибутОписание
    СвойствоSessionIDВозвращает идентификатор сеанса для пользователя.
    СвойствоTimeoutОпределяет период простоя состояния сеанса для приложения (в минутах)
    МетодAbandonУничтожает объект Session и освобождает его источник.
    СобытиеSession_onStartЭто событие активизируется в начале сеанса.
    СобытиеSession_onEndЭто событие активизируется в конце сеанса.
    Как было сказано выше, помимо встроенных объектов можно использовать серверные компоненты. Рассмотрим их основные характеристики:
    Название компоненты Описание
    AdRotatorИспользуется для замены изображений или видеороликов по заданному сценарию при каждом обращении на сервер.
    BrowserCapabilitiesИспользуется для получения различной информации о клиентском броузере.
    DatabaseAccessОбеспечивает доступ к базе данных и использует компонент ActiveXDataObjects (ADO).
    ContentLinkingПрименяется для управления списком URL-адресов, которые являются ссылками на страницы, расположенные на Web-узле.
    FileAccessОбеспечивает доступ к хранимым на сервере файлам.
    В рамках активных серверных страниц поддерживаются специальные включаемые файлы - Server-SideIncludes (SSI). Для этого используется специальная директива #INCLUDE, размещаемая в ASP-файле. Обычно она выглядит так:



    и указывает на то, что к данному ASP-файлу подключается файл foo.asp, который находится в виртуальном каталоге сервера (опция VIRTUAL) /scripts/samples/. Как правило, во включаемых файлах размещается код, общий для всех страниц. Это может быть сборник подпрограмм, выполняемых на большинстве серверных страниц.

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

    Основными протоколами и интерфейсами, связанными с Internet/Intranet, являются:
  • протокол HTTP для передачи гипертекста между клиентом и Web-сервером;
  • шлюзовой интерфейс CGI для организации связи с приложениями на Web-сервере;
  • прикладные интерфейсы Web-серверов для создания эффективных приложений на основе многопоточности;
  • интерфейс JDBC для доступа мобильных Java-приложений (апплетов) к базам данных.

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

    Обзор Web-серверов

    Критериями выбора Web-серверов могут служить различные характеристики: установка, настройка конфигурации, управление сервером, администрирование, управление содержательным материалом, защита информации, контроль доступа, функции разработки приложений и производительность.
    Большинство Web-серверов инсталлируется быстро и легко.
    Наиболее сложная часть процесса инсталляции - конфигурирование нескольких имен доменов на одном физическом устройстве - иными словами организация виртуальных серверов.
    Web-серверы включают средства управления информационным узлом, которые характеризуют общую организацию узла Web, и инструменты проверки правильности внутренних и внешних гипертекстовых связей. Пакет LiveWire фирмы Netscape, поставляемый вместе с EnterpriseServer и факультативно предлагаемый с сервером FastTrack, располагает утилитой управления узлом, которая составляет список всех связей выбранной страницы; она также выдает общий перечень всех обнаруженных некорректных связей. Программа WebView фирмы O'Reilly делает то же самое, выводя на экран обширное дерево файлов, где некорректные связи выделены красным цветом.
    Имеются и более простые средства управления содержательным материалом. Администраторы Web должны решить, где хранить файлы и каким образом будет осуществляться доступ к ним со стороны пользователей, обратившихся на ваш сервер. Для этого необходимо устанавливать соответствие между логическими URL и физическими каталогами. Каждый продукт выполняет эту операцию тем или иным уникальным способом.
    По мере того, как Web-серверы находят все более широкое применение в интрасетях и становится все заметнее коммерческая активность в Internet, возрастает важность защиты информации. Зачастую системы обеспечения безопасности Web-сервера оказываются или избыточными, или недостаточными для сегодняшних интрасетей. Если вам нужно ограничить доступ к страницам внутри компании, то у вас есть выбор между использованием незашифрованных паролей, передаваемых по каналам связи, и применением SSL, сложного и медленного метода, используемого для шифровки паролей и данных.
    Для организации работы отдельных пользователей и их групп могут использоваться внутренние средства сервера или функции операционной системы. В пакете MicrosoftIIS предусмотрено применение средств базовой сетевой ОС WindowsNT. Пакет NetWareWebServer полностью интегрирован со службами адресных каталогов (NetWareDirectoryServices, NDS) фирмы Novell. Хотя организовать работу пользователей из единого центра удобно, это несет в себе потенциальную угрозу безопасности. Пароли передаются по каналам связи в незашифрованном виде, если они будут перехвачены, то риску подвергнется не только ваш Web-сервер, но и безопасность сетевой операционной системы в целом.
    Создание прикладных программ - одна из самых важных функций Web-сервера, одновременно самая незаметная. Среда разработки программ и инструменты подключения к базам данных критически важны для расширения возможностей Web-сервера. Этим характеристикам нелегко дать оценку, так как они зависят от абстрактных и отличающихся своеобразными деталями API, особенностей языков сценариев и личных предпочтений программистов.
    Web-серверы обслуживают любые системы от небольшой интрасети подразделения до крупных информационных центров Web, рассылающих HTML-страницы миллионам пользователей.
    Для подразделенческих интрасетей, лучше других подойдет пакет MicrosoftInternetInformationServer. IIS отличается простотой инсталляции и настройки конфигурации; он хорошо интегрирован со средствами управления доступом, программой контроля функционирования PerformanceMonitor и утилитой просмотра журнала событий EventViewer, имеющейся в ОС WindowsNT; для динамической передачи информации из баз данных в ней предлагается ряд инструментов. IIS характеризуется весьма высоким быстродействием.
    Инструменты управления содержательным материалом поставляются вместе с несколькими Web-серверами, чтобы облегчить создание информационных центров Web. Помимо HTML-редакторов и преобразователей форматов документов одними из самых полезных являются средства контроля URL, гарантирующие действительность всех гипертекстовых связей вашего Web-узла.
    Рассмотрим подробнее возможности, предоставляемые Web-серверами фирм Microsoft, NetscapeCommunications и Novell.

    Офисные приложения Intranet

    Офисные Intranet-приложения могут строиться по-разному с учетом взаимного проникновения офисных и Internet-технологий:
  • средства офисной автоматизации, групповой работы, системы управления электронными документами и документооборотом получают Web-интерфейс или встраивают соответствующие механизмы (MSOffice 97, LotusDomino, CyberDOCS, DOCSOpen);
  • офисные приложения строятся на новых средствах разработки для использования в Intranet (CorelOfficeforJava);
  • сервисы и средства Internet (электронная почта, FTP-архивы, новости, средства поиска в WWW и т.п.) переносятся в корпоративную сеть.


  • Оформление блоков гипертекста

    Для придания большей выразительности HTML-страницам применяются следующие теги и их закрывающие пары:
  • для использования жирного (bold) написания и
  • для использования наклонного (italic) написания и
  • для использования режима (underline) подчеркивания и

  • В текст HTML-страницы могут быть добавлены заголовки и подзаголовки (с уровнем вложения до шести). Для этого применяются теги

    ,

    ,

    ,

    ,

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


    - принудительный перевод строки,


    - горизонтальная черта (разделитель),

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

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

    Операторы VBScript

    VBScript имеет полный набор операторов, включая арифметические и логические операторы, операторы сравнения и конкатенации. Когда в одном выражении встречаются несколько операторов, то определяется порядок выполнения этих операторов. Такой порядок выполнения всех операторов называется приоритетом операторов. Для того, чтобы пренебречь приоритетом выполнения операторов можно использовать скобки. Тогда операторы в скобках всегда будут выполнятся перед выполнением других операторов. Внутри скобок соблюдается приоритет выполнения операторов. Если выражение содержит операторы различных типов, то в этом случае первыми выполняются арифметические операторы, следующими выполняются операторы сравнения и, затем, логические операторы. Операторы сравнения всегда имеют равный приоритет, поэтому они выполняются слева направо. Арифметические и логические операторы имеют приоритет выполнения, который показан ниже в таблице 3.5 (операторы указаны в порядке убывания приоритета).
    Таблица 3.5. Операторы языка VBScript
    Арифметические операторыОператоры сравненияЛогические операторы
    ОписаниеОбозна-чениеОписаниеОбозна-чениеОписаниеОбозна-чение
    Возведение в степень ^Равенство=Логическое отрицаниеNot
    Изменение знака-Неравенство<>КонъюнкцияAnd
    Умножение*Меньше<ДизъюнкцияOr
    Деление/Больше>ИсключениеXor
    Целочисленное деление\Меньше или равно<=Логическая эквивалентностьEqv
    Деление по модулюModБольше или равно>=Логическая импликацияImp
    Сложение+Эквивалентность объектовIs
    Вычитание-
    Сложение строк (конкатенация)&

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

    Описание таблиц

    Таблица представляет собой расположенную на HTML-странице прямоугольную сетку строк и столбцов, в которую можно вводить разнообразную информацию, включая текст, числа, связи и даже изображения. Общий формат описания таблицы следующий:
    Контейнер таблицы Контейнер строки таблицы Контейнеры заголовков столбцов . . . Контейнеры ячеек . . . . . .
    Контейнер заголовка таблицы Заголовок таблицы
    Заголовок 1-го столбцаЗаголовок 2-го столбца
    Первая ячейкаВторая ячейка

    Все описание таблицы размещается в контейнере TABLE. Чтобы показать в таблице рамку применяют атрибут BORDER тега . Дополнительно задается заголовок таблицы - контейнер CAPTION:
    Заголовок таблицы
    где выравнивание принимает значения: TOP - вверху, BOTTOM - внизу.
    Таблица определяется по строкам с помощью контейнера TR, в который вложены контейнеры ячеек TD, разделенные по столбцам.
    При этом в контейнере ячейки можно помещать не только текст, но и метки для форматирования текста (например, или ), списки и даже изображения, а также вложенные таблицы.
    One WThree

    Обратите внимание, что в таблицах допускается смешивать текст и графику. Закрывающие теги и можно опускать.
    Стандартным выравниваем ячеек таблицы является выравнивание влево ячеек с данными и центрирование ячеек надписей.
    Кроме этого, внутри тегов и можно осуществлять выравнивание с помощью атрибута ALIGN со значениями: LEFT (влево), RIGHT (вправо) или CENTER (центрировать).
    Кроме горизонтального выравнивания в клетках таблиц можно применять и вертикальное выравнивание текста. В этом случае в тегах и применяется атрибут VALIGN с выравниванием по верху (TOP), по низу (BOTTOM) и выравниванием по средине (MIDDLE).
    Для перекрытия текстом нескольких строк или столбцов внутри тегов и используются специальные атрибуты: COLSPAN=m для перекрытия нескольких колонок (где m - число колонок), и ROWSPAN=n для перекрытия нескольких столбцов (где n - число столбцов).
    Таблицы служат хорошим инструментом для упорядочения информации на Web-странице.

    Определение данных.

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

    Определение текстовых атрибутов и заголовков

    Для придания большей выразительности HTML-страницам применяются следующие теги и их закрывающие пары:
  • для использования жирного (bold) написания и
  • для использования курсива (italic) и
  • для использования режима (underline) подчеркивания и
  • для использования текста с выделением и
  • для сильного выделения текста и

  • В текст HTML-страницы могут быть добавлены заголовки и подзаголовки (с уровнем вложенности до шести). Для этого применяются теги

    ,

    ,

    ,

    ,

    ,
    с соответствующими закрывающими парами
    ,
    , , , , .

    Организация работы с БД с помощью ASP

    Для демонстрации вышеизложенного приведем пример ASP-страницы, которая устанавливает соединение с БД через ODBC, производит выборку и пересылает данные клиентскому броузеру.
    <% Setdb=Server.CreateObject("ADODB.Connection") db.Open "AWTutorial" ' имя БД в ODBC SQLQuery="SELECT * FROMCustomers" SetRScustomerList=db.Execute(SQLQuery) %> Название фирмы Фамилия, Имя Адрес E-mail Город Штат/Провинция <% DoWhileNotRScustomerList.EOF %> <%= RScustomerList("CompanyName")%> <%= RScustomerList("ContactLastName") & ", " %> <%= RScustomerList("ContactFirstName") %> <%= RScustomerList("ContactLastName")%> < /TD> <%= RScustomerList("City")%> <%= RScustomerList("StateOrProvince")%> <% RScustomerList.MoveNext Loop %>

    Основные функции Web-серверов

    Web была создана для распространения гипертекстовых документов в привлекательном графическом формате, но теперь всеобщей заботой стало расширение ее функциональных возможностей. Пользователи стремятся персонифицировать содержимое страниц. Многие компании хотят, чтобы страницы Web могли извлекать информацию из баз данных и составлять отчеты в задаваемой пользователем форме.
    Что собой представляют Web-серверы?
    Функции, выполняемые Web-серверами, в сущности очень просты:
  • прием запроса от Web-броузера по протоколу HTTP с использованием TCP/IP;
  • поиск и отсылка файла гипертекста или документа в броузер по HTTP;
  • обслуживание запросов mailto, ftp, telnet и др.;
  • запуск прикладных программ на Web-сервере с передачей и возвратом параметров обработки через интерфейс CGI;
  • обслуживание навигационных карт изображения imagemap;
  • служит источником загружаемых программ на языке Java;
  • контроль доступа на основе имен и паролей доступа;
  • ведение регистрационного журнала;
  • административное и оперативное управление сервером.

  • Web-броузеры общаются с Web-серверами через протокол передачи гипертекстовых сообщений (HypertextTransferProtocol, HTTP), простой протокол запросов и ответов для пересылки информации с использованием TCP/IP. Web-сервер получает запрос, находит файл, посылает его броузеру и потом разрывает соединение. Имеющаяся на странице графика обрабатывается точно так же. Затем настает очередь броузера вывести на экран загруженный из сети HTML-документ.
    Хотя обычно Web-серверы содержат HTML-страницы и графику, на них могут храниться любые файлы, в том числе текстовые, документы текстовых процессоров, видео- и аудиоинформация. Сегодня, если не считать анкет, заполняемых пользователем, основная часть трафика Web передается в одном направлении - броузеры читают файлы с Web-сервера, - но положение изменится после повсеместного принятия описанного в проекте HTTP 1.1 метода put, позволяющего записывать файлы на Web-сервер. Сегодня метод put используется в основном создателями страниц Web, но в перспективе он может пригодиться и конечным пользователям для обратной связи с информационными узлами.
    На Web-сервере выполняются также прикладные программы, наибольшее распространение среди которых получили процессоры поиска и средства связи с базами данных. Для их разработки применяются такие стандарты, как общий шлюзовой интерфейс (CommonGatewayInterface, CGI), языки сценариев, подобные JavaScript, а также полноценные языки программирования, как, например, Java и VisualBasic. Помимо CGI несколько поставщиков Web-серверов разработали интерфейсы прикладного программирования (API) - как, например, NetscapeServerAPI и InternetServerAPI, созданные фирмами Microsoft и ProcessSoftware, - которые позволяют разработчикам непосредственно обращаться к конкретным функциям Web-сервера. Некоторые серверы располагают связующими средствами (middleware) для подключения к базам данных, использование которых может потребовать хороших знаний в программировании.
    Базовые процессоры поиска помогают пользователям отсортировывать нужную им информацию, а программы связи с базами данных обеспечивают пользователям Web-броузеров доступ к информации.
    Со временем автономные программы Web-серверов могут изжить себя, слившись с операционными системами и другими серверными программами.

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

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

  • Направление и содержание информационных потоков зависит от природы ресурсов, средств их создания, механизмов и прав доступа к информации.
    Гипертекст и гипермедиа выполняют роль своеобразного клея, который соединяет различные информационные ресурсы. Гипертекстовая информация не только отображается и служит для навигации, но и поддерживает диалог с пользователем, при необходимости - ввод данных по электронной форме с передачей их на сервер. Пользователь может даже пересылать на сервер произвольные файлы.
    Гипертекстовые страницы могут быть сгенерированы динамически с использованием данных из других ресурсов. Гипермедиа является динамической по своей природе, но поток информации, как правило, однонаправленный, связан с воспроизведением аудио, видео и других мультимедиа-файлов. Обратный поток ограничен управлением навигацией и воспроизведением.
    Офисные документы представляют собой тексты, электронные документы, планы и т.п., подготовленные пакетами офисной автоматизации или групповой работы. Доступ к этой информации может быть обеспечен либо в режиме чтения (с использованием программ просмотра), либо полный доступ с возможностью редактирования в той среде, где документ был создан. Помимо навигации с помощью гипертекста возможно организовать контекстный поиск документов.
    Графическая информация отображается на клиенте в виде статических иллюстраций, анимации или трехмерных сцен виртуальной реальности. Для выполнения навигации с изображением или его частями связывают гиперссылки, кроме того, имеется возможность изменять виртуальные сцены.
    Архивные файлы служат основой электронных архивов документов и программ, доступных на серверах FTP и Gopher для распространения. Пользователь может выбрать нужную информацию и получить ее с сервера по запросу. Загрузка файлов возможна и с Web-серверов.
    Сообщения электронной почты представляют собой информационный ресурс, хранимый в почтовых ящиках и общих папках. Они образуют двунаправленные потоки, сообщения можно посылать и получать, не выходя из броузера. Однако больше распространен сбор данных с использованием почты. В общих папках обычно организуются дискуссии, часто задаваемые вопросы FAQ, планы встреч и другие групповые работы.
    Новости - динамически изменяемый ресурс, организуемый на основе внешних или внутренних (корпоративных) каналов, последние пока не получили широкого распространения. Отображение новостей производится по запросу или в режиме бегущей строки с помощью тикера. Распространение информации осуществляется методом опроса каналов или широковещательной рассылки, нередко необходима "подписка" на требуемые новости.
    Базы данных не имеют прямой поддержки в Internet/Intranet. Доступ и ведение БД производится через серверные или клиентские приложения. При этом запросы на поиск и ввод данных оформляются в виде HTML-форм.
    Хранилище данных может иметь различную реализацию (реляционная многомерная БД, совокупность ODBC-источников данных), но предназначено для целей оперативной аналитической обработки данных. Доступ к хранилищу организуется подобно доступу к базе данных. Нужно отметить, что аналитическая обработка требует наличия средств для динамического построения и манипулирования плоскими и трехмерными объектами деловой и научной графики.
    Программное обеспечение в виде клиентских и серверных приложений составляет важный ресурс. Гипертекст служит средством создания "меню", ссылающегося на разные общие и специальные прикладные программы.
    Для ведения перечисленных информационных ресурсов и организации потоков между клиентами и серверами используются различные средства разработки, эксплуатации и сопровождения Internet/Intranet-приложений.

    Основные конструкции

    На верхнем уровне абстракции в VRML размещаются объекты, которые можно считывать и записывать. Теоретически объекты могут содержать все допустимые в языке сущности: трехмерную геометрию, образы JPEG и т.п. Объекты, используемые для представления трехмерной графики, называются узлами, иерархическая совокупность которых образует граф сцен, каждая из которых является не просто набором узлов, а определяет еще и условия их визуализации путем задания нотации состояния, определяемой ранее созданными узлами сцены.
    Все узлы могут иметь имя, тип (Cube, Sphere, Texture, Transformation и т.п.) и поля, задающие характеристики узла, отличающие его от другого узла того же типа (радиус, шаблон, текстуры). Узлы могут образовывать иерархическую совокупность, при которой один узел может содержать несколько потомков, расположенных на более низком уровне. Для определения узла принят следующий синтаксис:
    DEF имя_объекта тип { поля потомок}
    Следующий пример дает представление о структуре программ на языке VRML и содержит описание простой сцены, состоящей из красного конуса и синей сферы, освещенных прямым светом:
    #VRMLV1.0 asciiSeparator { DirectionLight { direction 0 0 - 1 # направление луча света от наблюдателя к сцене } PerspectiveCamera { position - 8.6 2.1 5.6 orientation -0.1352 -0.9831 -0.1233 1.1417 focalDistance 10.84 } Separator { # Красная сфера Material { diffuseColor 1 0 0 # Установка цвета - красный } Translation { translation 3 0 1} Sphere { radius 2.3 } } Separator { # Синий куб Material { diffuseColor 0 0 1 # Установка синего цвета } Transform { translation -2.4 .2 1 rotation 0 1 1 .9} Cube {} } }

    Основные понятияJava

    Java - это объектно-ориентированный язык программирования. Основной элемент любой программы на Java - класс. Класс состоит из описаний структур данных и процедур работы с этими структурами, которые в терминологии Java называют методами. Программист, пишущий на Java, создает классы. Исполнение программы, написанной на Java, это выполнение последовательности методов различных классов. При этом некоторые методы могут выполняться параллельно друг другу.
    Изложение основ объектно-ориентированного программирования не является нашей задачей. На эту тему написаны целые монографии. В продаже имеется огромное число книг о Java, поэтому цель данного раздела только познакомить с тем необходимым минимумом, который позволит понимать принципы разработки Java-программ и области их применения.
    Собственно, различают два типа Java-программ: application и applet. Application выполняется локально, а applet передается по сети и исполняется Web-броузером. При этом и application, и applet интерпретируются. В последнее время появились и компиляторы Java. Но большинство производителей пока встраивают JavaVirtualMachine (интерпретатор Java) в свои продукты. Это не ограничивает мобильности кода.
    Для понимания работы Java-приложений можно ограничиться только апплетами, для того, чтобы проникнуться языком Java нужно, по крайней мере, прочитать и способы разработки applications.
    Собственно, сам Java-код программист набивает в файл, который называется модулем трансляции и имеет расширение java, например, "hello.java". Как уже отмечалось выше Java-код - это описания классов. После трансляции байт-код каждого класса Java-транслятор записывает в отдельный файл с расширением "*.class". При этом имя файла байт-кода класса совпадает с именем класса в модуле трансляции.
    Поскольку класс является таким основополагающим элементом программы на Java, то рассмотрим в первую очередь именно его, отступив от традиционной практики описания языка, когда описания начинают с типов констант и типов данных.

    Основные приемы работы с броузером

    Броузер - это программа, которая применяется для вывода HTML-страницы и взаимодействия с ней.
    Приемы работы с броузером рассмотрим на примере работы с броузером NetscapeNavigator. Запустив данный броузер, рассмотрим основные элементы его экрана:
  • полоса заголовка текущей страницы выводится в верхней строке экрана;
  • полоса выпадающих меню (File, Edit, View, Go, Bookmarks и т.д. );
  • кнопки инструментальной полоски (квадратные кнопки) предоставляют доступ к основным средствам броузера по методу "наводи и щелкай";
  • поле Location (Местонахождение) - показывает адрес URL текущего документа (при вводе текста в данное поле метка изменится на Goto - Перейти);
  • кнопки каталогов предоставляют более простой доступ к командам меню Directory (Каталог);
  • область содержимого занимает большую часть экрана броузера и именно в ней появляется тело HTML-страницы (для просмотра больших страниц применяются полосы прокрутки);
  • полоса состояния позволяет узнать текущее состояние броузера и сообщает о ходе его текущей операции.

  • Броузер NetscapeNavigator выводит гипертекстовые связи подчеркнутым шрифтом, цвет которого отличается от цвета остального текста. Для выбора связи надо щелкнуть на ней кнопкой мыши.
    Чтобы посетить конкретную станцию WWW, можно определить ее адрес URL либо вводя адрес внутри поля Location, либо щелкнув на кнопке Open в инструментальной полоске, или открыв меню File из полосы выпадающих меню и выбрав команду OpenLocation.
    Для возврата в предыдущий документ надо либо щелкнуть на кнопке Back (Назад) в инструментальной полоске, либо выбрать команду Back из меню Go в полосе выпадающих меню.

    Основные возможности броузеров

    Несмотря на то, что броузеры относят к разряду "тонких" клиентов, их возможности весьма велики.
    Основными функциями броузера являются:
  • формирование и передача Web-серверу запроса на получение очередной страницы по протоколу HTTP;
  • прием, интерпретация языка HTML и отображение гипертекста;
  • установление связи с другими серверами (файловыми, почтовыми и FTP-серверами);
  • поддержка мультимедиа (графика, аудио, анимация, видео);
  • запрос запуска приложения на сервере, передача и возврат параметров по интерфейсу CGI;
  • интерпретация сценариев JavaScript и/или VBScript;
  • исполнение р-кода загруженной Java-программы;
  • поддержка расширений plug-in и OLE-компонентов ActiveX;
  • вызов вспомогательных helper-программ для отображения загруженного файла.


  • Основы реляционных БД

    Информационное приложение- прикладная программная подсистема, ориентированная на сбор, хранение, поиск и обработку текстовой и/или фактографической информации. Подавляющее большинство информационных приложений работает в режиме диалога с пользователем. В общем случае типовые программные компоненты информационного приложения включают: диалоговый ввод-вывод, логику диалога, прикладную логику обработки данных, логику управления данными, операции манипулирования файлами и/или базами данных. Для сетевых информационных приложений важным элементом является коммуникационный сервис, обеспечивающий взаимодействие узлов сети при совместном решении информационной задачи. Значительная часть возможностей приложения закладывается в системном программном обеспечении, в частности в системах управления базами данных (СУБД), в библиотеках и конструкциях инструментальных средств разработки. Однако остается часть приложения, специфичная для конкретной предметной области. Основными объектами разработки являются логика диалога, логика обработки и логика управления данными. Часто преобладающее значение имеет диалог, пронизывающий все приложение, поэтому многие инструменты ориентированы на то, чтобы упростить и ускорить создание диалога в приложении.
    Несмотря на манипуляционный характер процесса разработки, промежуточное представление приложения оформляется в виде языкового описания, что позволяет в дальнейшем с помощью языка программирования начинять быстро разработанный макет содержательной обработкой данных.
    Помимо программной составляющей приложения, существенную роль играет информационная составляющая, которая задает структуру, атрибутику и типизацию данных, а также ограничения целостности для баз данных. Информационная составляющая тесно связана с логикой управления данными. Вот почему средства автоматизации проектирования приложений отдают приоритет информационной модели, из которой выводится все остальное, включая диалог.
    4.1.1. Файл-серверные приложения и "настольные" СУБД

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

    Однако, такая архитектура имеет два основных недостатка:

  • Значительный сетевой трафик (некоторые запросы к БД могут перекачивать всю БД клиенту, загружая сеть и имея непредсказуемое время реакции).
  • Проблема "жирного клиента" (Windows-интерфейс, коды приложения и СУБД могут перегрузить даже мощный ПК).


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

    Основой разработки файл-серверных приложений для локальных сетей ПК является инструментальное окружение различных "персональных" СУБД: FoxPro, Clipper, Paradox, Clarion, dBase, Access и др. Такие инструменты, как правило, реализованы в виде диалоговой интегрированной среды, предоставляющей три уровня доступа:

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


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

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

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

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

    В настоящее время появились новые визуальные объектно-ориентированные версии инструментальных средств и СУБД на ПК (MSAccess, VisualFoxPro, CA-VisualObjects и VisualdBase). Эти продукты направлены сугубо на создание Windows-приложений и содержат средства объектно-ориентированного диалога, событийно-управляемого программирования, визуального конструирования интерфейса пользователя и многие другие черты, присущие системам программирования 4GL и средствам быстрой разработки RAD. Кроме того, они поддерживают структурный язык запросов SQL, который характерен для приложений клиент-сервер.

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

    Мир Internet весьма разнообразен, мозаичен по своей структуре, включает много составляющих, каждая из которых имеет специфику применения. Разработчику приложений прежде всего необходимо разобраться в сопутствующей терминологии, уяснить принципы организации и основные элементы WWW, понять особенности корпоративных Intranet-сетей, а также преимущества и недостатки технологии Internet/Intranet.
    1.1.1. Сети Internet и WWW
    Internet в настоящее время является самым большим и популярным межсетевым объединением в мире. Оно объединяет десятки тысяч компьютерных сетей и миллионы пользователей во всем мире. При этом объединены компьютеры тысяч различных типов, оснащенных самым разным программным обеспечением. Пользователи Internet могут не обращать внимания на все эти различия.
    В настоящее время существуют два созвучных термина - internet и Internet. Термин internet относится к технологии обмена данными, основанной на использовании семейства протоколов TCP/IP, а Internet - это глобальное сообщество мировых сетей, которые используют internet для обмена данными. Как правило, термин "TCP/IP" это то же самое, что и "набор протоколов TCP/IP", или "набор протоколов internet", или "технология internet".
    Сеть Internet с самого начала не была централизованной и состояла из отдельных сегментов. Каждый узел сети независим от остальных узлов и может самостоятельно отвечать за прием и передачу сообщений. В основу информационного обмена положен принцип коммутации пакетов. Любое информационное сообщение делится на части, которые называются пакетами. Пакеты передаются по сети и собираются в сообщение в узле-получателе.
    1.1.2. Принципы организации WWW
    В марте 1989 года Тим Бернерс-Ли предложил руководству исследовательского центра CERN концепцию новой распределенной информационной системы, которую он назвал WorldWideWeb. Тим Бернерс-Ли считал, что информационная система, построенная на принципах гипертекста, должна объединить все множество информационных ресурсов CERN, которое состояло из базы данных отчетов, компьютерной документации, списков почтовых адресов, наборов данных экспериментов, информационной реферативной системы и т.п. Основная метафора гипертекста - это "электронная книга" с автоматически поддерживаемыми переходами по ссылкам. Гипертекстовая технология должна была позволить легко переходить с одного документа на другой с помощью гипертекстовых ссылок.
    Проект был успешно реализован, в частности, к 1991 году был создан первый броузер (программа просмотра гипертекста), получивший название "www" и работавший в режиме командной строки. С этого момента основными элементами технологии WWW являются:

  • язык гипертекстовой разметки документов HTML;
  • универсальный способ адресации ресурсов в сети (URI и URL);
  • протокол обмена гипертекстовой информацией HTTP;
  • универсальный интерфейс шлюзов CGI, добавленный позже сотрудниками Национального Центра Суперкомпьютерных приложений (NSCA).


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

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

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

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

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

    узел - имя или IP-адрес узла (сервера определенного типа), где расположена информация;

    путь - имя каталога (возможно виртуального) или цепочки вложенных каталогов Web-сервера или файловой системы;


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


  • Особенности серверных сценариев

    Как было сказано выше, скриптовый фрагмент в HTML-странице выделяется контейнером
    Если во фрагменте скрипта, выполняемого на сервере, необходимо послать какое-то значение клиентскому броузеру (значение переменной, результат выполнения функции и т.п.), то для этого в дополнение к обычной операции присваивания используется символ "=", например:
    NowDemo
    Добро пожаловать на наш сервер. Локальное время: <% =Now %>


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

    Открытый протокол ODBC для связи с сервером БД

    Интерфейс прикладного программирования ODBCAPI предоставляет общие методы доступа SQL как к реляционным, так и к нереляционным (ISAM) источникам данных.
    В ANSISQL входит интерфейс на уровне вызовов (CLI - call-levelinterface), который используется ODBC для обеспечения доступа и работы с данными во многих системах управления базами данных. Интерфейс CLI соответствует требованиям, установленным в 1991 году группой SQLAccessGroup, которые определяют общий синтаксис SQL и интерфейса API. Иметь общий метод доступа к источникам данных удобно потому, что тогда база данных на сервере становится прозрачной для приложений, которые написаны в соответствии с некоторым заданным уровнем совместимости ODBC.
    Интерфейс ODBCAPI реализован как набор расслоенных DLL-функций для Windows. Динамическая библиотека ODBC.DLL - это основная библиотека управления драйверами ODBC, которая вызывает специализированные драйверы для разных поддерживаемых системой баз данных. Каждый драйвер совместим со своим уровнем CLI и относится к одной из двух категорий: одноуровневые или многоуровневые драйверы.
    Одноуровневые драйверы предназначены для использования при работе с теми источниками данных, которые не могут быть обработаны ANSISQL. Обычно это локальные базы данных на персональных компьютерах, такие как dBase, Paradox, FoxPro и Excel. Драйверы, соответствующие этим базам данных, переводят грамматику ANSISQL в инструкции низкого уровня, которые непосредственно обрабатывают составляющие базу данных файлы.
    Многоуровневые драйверы используют сервер СУРБД для обработки SQL-предложений и предназначены для работы в среде клиент-сервер. Помимо обработки ANSISQL, они также могут поддерживать и собственную грамматику конкретной СУРБД, поскольку ODBC может без трансляции передавать SQL-предложения источникам данных (механизм "passthrough"). Драйверы ODBC для баз данных типа клиент-сервер реализованы для OracleV6.0 и Oracle7, а также Informix, Microsoft и SybaseSQLServer, Rdb, DB2, Ingres, HP/Image и AnySQL. Драйверы можно приобрести в фирмах Microsoft, Intersolv, Visigenic и Openlink, причем только Microsoft и Intersolv выпускают и 32-х, и 16-ти разрядные драйверы.
    Существует 4 важных этапа (шага) процедуры запроса данных через API.
    Шаг 1 - установление соединения. Он состоит в размещении указателей (handle) среды ODBC, которые выделяют оперативную память под ODBC драйверы и библиотеки. Затем происходит выделение памяти для указателей соединения, и соединение устанавливается.
    Шаг 2 - выполнение предложения SQL. Выделяется указатель предложения, локальные переменные связываются со столбцами в SQL-выражении (это необязательное действие), и выражение представляется на разбор главному ODBC драйверу для обработки.
    Шаг 3 - извлечение данных. Перед извлечением данных возвращается информация о результирующем наборе, такая как число столбцов в наборе. Исходя из этого числа, результирующий набор помещается в буфер записей, выполняется цикл по нему и извлекается по одному столбцу в локальные переменные. Этот шаг необязателен, если используется связывание столбцов.
    Шаг 4 - освобождение ресурсов. После того, как данные получены, освобождаются ресурсы вызовом функций освобождения указателей предложения, соединения и среды. Указатели предложения и соединения могут быть использованы в процессе обработки.
    Технология ODBC разрабатывалась как общий, независимый от источников данных, способ доступа к данным. Также ее применение должно было обеспечить переносимость приложений на различные базы данных без переработки самих приложений. В этом смысле технология ODBC уже стала промышленным стандартом, ее поддерживают практически все производители СУБД и средств разработки.
    Однако универсальность стоит дорого. Если при разработке приложений одним из основных критериев является переносимость на различные СУБД, то использование ODBC является оправданным. Для увеличения производительности и эффективности приложения активно применяют специфические для данной СУБД расширения языка SQL, используют хранимые на сервере процедуры и функции. В этом случае теряется роль ODBC как общего метода доступа к данным. Тем более, что для разных СУБД драйверы ODBC поддерживают разные уровни совместимости. Поэтому многие производители средств разработки помимо поддержки ODBC поставляют "прямые" драйверы к основным СУБД.

    Пакеты и интерфейсы. Формат модуля трансляции Java

    Программист пишет исходные тексты Java-программ (application и applet) в исходных файлах, которые мы назвали модулями трансляции. При этом в одном таком модуле может быть определено множество разных классов. После трансляции, для каждого из них будет создан свой байт-код, который будет помещен в отдельный файл. Если мы пишем applet, то при его тестировании скорее всего на этапе выполнения появится ошибка о том, что некоторый класс исполняющей системой не обнаружен. Данная проблема решается либо путем размещения всех классов в стандартном месте, либо объединением их в пакеты. Пакеты - это своеобразные библиотеки Java-кода. При этом программы из разных пакетов могут называться одинаково. Пакеты иерархически подчинены и явным образом включаются в текст программы на Java.
    Общая форма исходного файла Java выглядит следующим образом:
    packagepack0[.pack1[.pack2]] importpack0[.pack1[.pack2]] ... importpack0[.pack1[.pack2]] publicclassclass_nameextandsclass_name { // classbody } privateclassclass_name { // classbody } ... privateclassclass_name { // classbody }
    Как видно из этого примера файл может начинаться оператором packаge, который определяет принадлежность класса некоторому пакету. За оператором package следуют операторы import, которые в явном виде указывают на импортируемые описания классов из других пакетов. Затем может быть определен только один публичный класс, за которым можно определить любое количество приватных классов. Вообще говоря, Java позволяет защищать данные классов от доступа. Для этой цели используется три модификатора private, public и protected.
    Public определяет, что объекты данного класса пакета доступны для всех прочих классов. Это самый высокий уровень доступности. Если указан модификатор private, то доступ к переменным и методам класса разрешен только из объектов данного класса. Если используется модификатор protected, то здесь наблюдается совместимость сверху вниз, т.е. к переменным и методам можно обращаться как из объектов, являющихся реализациями подклассов, так и из объектов классов и их подклассов, принадлежащих тому же пакету. Строгое подчинение определяется в том случае, когда protected и private используются совместно. Существует и доступность по умолчанию, в которой подклассам данного класса из других пакетов в доступе к элементам класса отказано.
    Вообще говоря, все эти ограничения следует использовать не столько для ограничения доступности, сколько для определения области видимости и действенности переменных. В частности, Вирт критикует само понятие безопасности, связанное с модификаторами защищенности, поскольку с его точки зрения, это только сбивает с толку. Ограничения используются в том смысле, что они повышают устойчивость программы от ошибок, связанных с областями действия переменных и методов, а не со взломами операционных систем или чем-либо подобным. Однако, более подробно на разграничениях доступа останавливаться не будем и перейдем к другому важному элементу Java - интерфейсам.
    Интерфейс - это спецификация обмена данными между классами. Фактически они представляют из себя просто список объявлений методов. С интерфейсом разработчики апплетов встречаются сразу же как только захотят написать многопоточный applet. А это необходимо, например, для создания бегущей строки.
    Оператор interface имеет вид:

    interfaceinterface_name { typemethod_name (parms_list); typefinal_variable = value; }

    При вызове метода, определенного в интерфейсе, класс должен быть объявлен с оператором implements. Например, бегущая строка "Hello, Java" реализована с применением данного оператора.

    importjava.applet.*; importjava.awt.*; publicclasshelloextendsAppletimplementsRunnable { intx = 0; inty = 0; intstart_x = 0; intstart_y = 0; Threadnew_thread = null; Stringmessage = "Hellobody!!!"; publicvoidinit () { y = size ().height; x = size ().width; start_x = x; start_y = y; } publicvoidstart () { new_thread = newThread (this); new_thread.start (); } publicvoidrun () { while (true) { repaint (); x -= 10; if (x<0) { x=start_x; } try { Thread.sleep (100); } catch (InterruptedExceptione) { } } } publicvoidpaint (Graphicsg) { Fontnew_font = newFont ("TimesRoman",1,48); g.setFont (new_font); g.drawString ("Hello, Java.",x,y/2); } }

    В приведенном примере программа, в данном случае applet, расширяет класс Applet и применяет интерфейс Runnable для того, чтобы реализовать метод run.

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

    CLASSPATH=".;C:\your_path;C:\java\classes;\C:\java\classes\classes.zip"

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

    Передача данных по сети

    Если не передавать данные по сети, апплеты остаются не более как игрушкой для оживления страниц и засорения сети. Поэтому ключевым классом Java является класс net и его подклассы. Реально существует два способа получения данных по сети: использование URL и использование sockets.
    Разберем последний как наиболее общий. В этом случае пользователь имеет возможность обращаться непосредственно к транспортному уровню TCP/IP и при этом выбирать транспорт. В приведенном ниже примере используется транспорт TCP.
    Пример получения данных по сети:
    importjava.io.*; importjava.net.*; importjava.applet.*; importjava.awt.*;
    publicclasss_readextendsApplet { Sockets; //Socketforconnection DataInputStreamdis; // Readdatafromthisstream DataOutputStreamdos; // Writedatatothisstream intMAXLENGTH = 4048; StringBuffersb = newStringBuffer(); intc;
    publicvoidinit() { try { s = newSocket(getParameter("host"),80); dis = newDataInputStream(s.getInputStream()); dos = newDataOutputStream(s.getOutputStream());
    dos.writeBytes("GET "+getParameter("path")+" HTTP/1.0\r\n\r\n");
    while((c=dis.read())!=-1) { sb.append((char) c); } s.close(); } catch(IOExceptione) { System.out.println("Problemwithsocket."); } add("Center",newTextArea(sb.toString())); } }
    При изучении этого примера стоит обратить внимание на то, что для классов ввода/вывода нет абсолютно никакого различия между сетью и другими объектами, например, файлами.
    В примере создаются TCP-sockets, определяется адрес и номер порта, а затем инициализируется и производится обмен информацией по протоколу HTTP.
    При реализации обмена данными необходимо в обязательном порядке перехватить исключение, которое может порождаться при работе с потоками ввода/вывода.

    Перекрытие текстом строк и столбцов

    Для перекрытия текстом нескольких строк или столбцов внутри тегов и используются специальные атрибуты: COLSPAN=m для перекрытия нескольких колонок (где m - число колонок), и ROWSPAN=n для перекрытия нескольких столбцов (где n - число столбцов).
    Перекрытие двух колонок(столбцов) Перекрытие трех строк
    Перекрыть можно и надпись столбца. Вот как это делается:
    Перекрытие надписи столбца

    Переменные и константы

    Переменная - это обычный идентификатор, позволяющий обращаться к отдельным участкам памяти, хранящим информацию, которая может изменяться в процессе выполнения сценария. Для объявления переменных в VBScript используется оператор Dim. Несколько переменных можно объявить путем перечисления их через запятую, например:
    DimTop, Bottom, Left, Right
    Также можно косвенно объявить переменную путем простого использования ее имени в любом месте скрипта. Но этим способом не нужно злоупотреблять, поскольку при использовании имени переменной могут возникать орфографические ошибки, что может явиться причиной неожиданных результатов выполнения программы на VBScript. Поэтому рекомендуется использовать оператор OptionExplicit для объявления всех переменных и констант программы. При использовании оператора OptionExplicit он должен быть первым оператором в контейнере

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


    DimMyArray() ReDimAnotherArray()

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

    ReDimMyArray(25) . . . ReDimPreserveMyArray(30)

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

    Константа - это значащий идентификатор, который содержит число или строку. Значение константы во время выполнения скрипта изменяться не может. На данный момент в VBScript нет встроенных констант, определенных языком. Константа объявляется так же как и переменная с помощью оператора Dim. После объявления константы ей нужно присвоить значение, которое потом будет соответствовать имени константы.

    Отметим, что текстовые значения обрамляются кавычками, а значения типа Дата/Время - знаком "решетка" (#). К сожалению, нет никакого различия при объявлении переменных и констант. Поэтому может возникнуть желание как-то различать их, для того чтобы не попытаться использовать константу как переменную. В этом случае можно предложить при определении имени константы давать ей какую-нибудь приставку, например vb, или можно называть константы строчными буквами, как это рекомендуется в соглашениях по именованию.

    PERL

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

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

    Поддержка различных кодировок кириллицы

    Исторически сложилось так, что каждое семейство операционных систем имеет свою кодировку для русских букв. Применяются кодировки koi8-r, описанная в документе RFC-1489, Windowscp1251, MS-DOSx-cp866, а также кодировка ISO-8859-x.
    Поэтому на титульных страницах большинства русскоязычных Web-серверов можно встретить предложение выбрать подходящую кодировку - для MS-DOS, для Windows, для Macintosh, и, наконец, для UNIX. Таким образом, сотрудники информационной службы Web-сервера должны готовить тождественные материалы в 4 кодировках, загромождая Web-сервер.
    MicrosoftInternetExplorer работает в кодировке Windows, а NetscapeNavigator понимает koi8?r, Windowscp1251, ISO-8859-5. (Нужно выбрать в меню режим Options функцию DocumentEncoding и нужную кодировку, повторно загрузить страницу.) При использовании серверных API перекодировка может выполняться на лету, но этот путь мало изведан.
    Неоднократно появлялись предложения разделить кодировки на сетевую и локальную. В качестве сетевой в Internet было бы естественно выбрать koi8-r, наиболее распространенную кодировку в различных версиях операционных систем типа UNIX, а для Intranet - кодировку Windowscp1251. Переход к локальной кодировке и обратно к сетевой должен выполняться клиентским приложением. К сожалению, разработчики броузеров пока не прислушиваются к этим предложениям, возможно, из-за того, что сами не сталкиваются с неудобствами использования четырех кодировок для одного языка.
    С помощью API для Web-серверов возможно создать серверные программы перекодировки "на лету".

    Подход от Netscape: LiveWire

    LiveWire - это среда разработчика для управления Web-узлом и создания приложений клиент-сервер. В ней используется язык JavaScript для изготовления серверных приложений, аналогичных CGI-программам. Однако приложения LiveWire, в отличие от CGI, тесно связаны cHTML-страницей, под управлением которой они работают. Обычный HTML статичен. Фиксированное содержание передается с сервера броузеру. При помощи LiveWire можно создавать динамические HTML-страницы, изменяющиеся в зависимости от изменившихся данных или действий пользователя.
    Процесс создания LiveWire-приложения достаточно прост:
  • программа содержится в одном или более файлах. Используется JavaScript встроенный в HTML или чистый JavaScript;
  • файлы программы компилируются LiveWire компилятором и создается байт-код (файл с расширением .web);
  • приложение инсталлируется при помощи LiveWireApplicationManager на сервере;
  • при вызове из броузера LiveWire выполняет программу и создает динамическую HTML-страницу;
  • при помощи библиотеки объектов LiveWire можно создавать серверные приложения с богатым набором возможностей: от поддержки контроля пользователей и управления сессиями, до создания сложных обращений к базам данных.


  • Поля

    Различают два типа полей: содержащие единственное значение (одно число, вектор или картинка) и поля с множеством значений. Первые имеют имена, начинающиеся с префикса "SF", а вторые - с префикса "MF".
    Поле типа SFBools содержит булевы значения (True или False), а значения цвета задаются полем SFColors в нотации тройки RGB вещественных чисел от 0.0 до 1.0, как и в промышленном стандарте OpenGL, что позволяет указывать теоретически бесконечное число цветовых оттенков. Поле типа SFImages содержит неупакованное изображение плоской цветной картинки, задаваемое габаритами: "width", "height" и количеством пикселей. Возможно также однокомпонентное задание интенсивности освещенности картинки, например: 0xFF - это полная освещенность, а 0x00 - полная темнота. При двухкомпонентном задании указывается значение интенсивности и значение прозрачности. Для трех- и четырехкомпонентного задания указываются интенсивности по шкале RGB отдельно по каждому цвету. Например, запись
    1 2 1 0xFF 0xFF
    определяет черно-белую картинку шириной в один пиксель и высотой в два пикселя, нижний из которых белого цвета, а верхний черный.
    Поля SFMatrices задают матрицу преобразований, состоящую из 16 вещественных чисел, расположенных построчно, например, матрица сдвига вдоль оси X на 7.3 единиц будет иметь следующий вид: 1 0 0 0 0 1 0 0 0 0 1 0 7.3 0 0 1
    В стандарте предусмотрены также поля, задающие поворот вокруг одной из осей. Например, чтобы повернуть сцену вокруг оси Y на 180 градусов, необходимо указать: 0 1 0 3.14159265
    Множественные поля содержат более одного значения, заключенных в скобки, например, поле MFColors определяет сразу несколько цветовых оттенков - красный, зеленый и синий - через триплеты RGB: [ 1.0 0.0 0.0, 0 1 0, 0 0 1]
    Поля с префиксом "MF" используются также для задания векторных значений, например, MFVec2fs - вектор на плоскости, а MFVec3fs - вектор в трехмерном пространстве.

    Понятие Класса

    Классы в Java, равно как и в других объектно-ориентированных языках программирования, - это шаблоны (прототипы), которые используются для создания объектов. Собственно, при исполнении программ интерпретатор Java - JavaVirtualMachine имеет дело именно с объектами. Объекты еще часто называют представителями класса и экземплярами класса. В данном контексте это одно и тоже. В качестве аналогии для описания различий между классами и объектами можно сослаться на реляционные базы данных. Отношение, точнее его структура (описание структуры) - это класс, а записи данных в этом отношении - это объекты.
    Класс состоит из описаний переменных и методов (процедур) работы с этими переменными. Соответственно объект будет состоять из места отведенного под эти переменные и процедуры. Выполнение программы будет сводиться к выполнению процедур разных объектов.
    Формально описание класса в Java можно представить в виде:
    classclass_nameextendssuper_class_name { typevariable_1; typevariable_2; .... typemethod1 ( parms_list) { // method1 body } typemethod2 (parms_list) { //method2 body } .... }
    Слово class дает понять компилятору, что начинается описание класса, а слово extends позволяет указать на суперкласс, которому наследует данный класс.
    Наследование в данном случае подразумевает, что новый класс просто расширяет свойства суперкласса (набор его переменных и методов). Новый класс имеет возможность оперировать переменными и методами суперкласса как своими собственными, плюс к своим собственным, которые определены в его описании.
    Среди всех методов, которые определяются для класса, следует выделить методы-конструкторы. Эти методы используются для порождения объектов (реализаций класса). Именно конструктор отводит место под переменные и размещает код методов класса. Конструктор имеет то же имя, что и сам класс, и этим отличается от прочих методов. Для примера определим класс Point. В этом примере класс Point определяет точку двухмерного пространства. При инициализации этого объекта ему передаются два параметра: координата х и координата y. Далее идет применение этого метода в программе, а точнее в другом классе С_Point. Объект порождается интерпретатором, а затем инициализируется конструктором по вызову оператора new, в котором и указан метод-конструктор. Класс может и не иметь конструкторов, явно описанных в его теле. В этом случае будет использован конструктор суперкласса.
    Конструкторов у класса может быть несколько. Все зависит, например, от типа параметров, которыми инициализируется объект, или от их количества. В примере таких конструкторов три: первый определяет инициализацию целочисленными константами, второй - вещественными константами, а третий определяет действия в случае отсутствия каких-либо аргументов вообще. При этом в C_Point будет применяться первый конструктор, т.к. числа в операторе new указаны целые.

    classPoint { intx; inty; Point (intx, inty) { this.x = x; this.y = y; } Point (floatx, floaty) { this.x = (float) x; this.y = (float) y; } Point () { this.x = 0; this.y = 0; } } classC_Point { publicstaticvoidmain (Stringargs[]) { Pointp = newPoint (10,20); System.out.println ("x="+p.x+"; y="+p.y); } }

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

    Рассмотренный пример примечателен еще и тем, что в нем используются оператор "." и зарезервированное слово "this". Оператор "." нужен для обращения к переменным и методам объекта (реализации класса). Так выражение p.x позволяет сослаться на значение переменной x объекта p, который является реализацией класса Point. Аналогично поступают и при обращении к методам объекта. Заменим конструктор объекта Point на функцию init.

    classPoint { intx; inty; voidinit ( inta, intb) { this.x = a; this.y = b; } } classC_Point { Pointp = newPoint (); p.init (10,20); .... }

    В этом случае инициализация переменных значениями будет выполняться методом init. При этом обращение к этому методу будет выглядеть как p.init (a,b).

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

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

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

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


    finalintMAX = 64534;

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

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

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

    позволяет использовать два подхода

    PowerBuilder 5. 0 позволяет использовать два подхода для построения Intranet-приложений: статический и динамический.

    Статический подход подразумевает использование возможности сохранять содержимое DataWindow в формате HTML. Этим механизмом можно воспользоваться как в среде разработки, так и в run-time. Для этого в среде разработки используется команда SaveRowsAs (в режиме просмотра результатов), в run-time применяется функция класса DataWindowcontrol - SaveAs:

    dwcontrol.SaveAs(filename, saveastype, colheading)

    где filename - имя файла, куда сохранять; saveastype - тип сохраняемого файла (в данном случае - HTMLTable); colheading (необязательный параметр) - булево значение, определяющее, следует ли включать заголовки столбцов DataWindow в начало файла (по умолчанию - TRUE).

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

    Динамический подход основан на использовании управляющих элементов ActiveX различных фирм (в том числе и Sybase), реализующих богатые возможности просмотра, навигации и т.п. для Web. В начальном релизе доступен управляющий элемент ActiveX - WebViewer подразделения VisualComponents корпорации Sybase. Он позволяет осуществлять просмотр и навигацию для узла Web. Используя WebViewer, разработчик может кодировать пользовательские события, способные автоматически инициировать извлечение информации из Web. В дополнение к управляющему элементу WebViewer, разработчики могут использовать управляющие элементы для передачи файлов (FTP, HTTP и др.), подсоединения клиент-серверных приложений к Web-серверам, управления поведением стандартных броузеров, таких как NetscapeNavigator и MicrosoftInternetExplorer и т.п. Кроме того, доступен также ActiveX-компонент FormulaOne/NET, представляющий собой Internet-реализацию Excel-совместимой электронной таблицы.

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


  • DataWindowPlug-in - для отображения корпоративных отчетов в Internet;
  • WindowPlug-in - для запуска приложений PowerBuilder в Web-броузере;
  • Web.PB - для построения серверов приложений, работающих с любым Web-сервером.


  • DataWindowPlug-in позволяет отображать на Web-странице файл PowersoftReport (PSR), который может быть просмотрен с использованием NetscapeNavigator или MicrosoftInternetExplorer версии 3.0. Созданный в PowerBuilder или InfoMaker отчет вы можете сохранить в виде PSR-файла с учетом форматов представления данных, который затем и помещается на HTML-страницу командой EMBED языка HTML (my_report.psr - имя PSR-файла с данными):



    WindowPlug-in является очень мощной технологией для переноса клиент-серверных приложений в Internet. WindowPlug-in позволяет выполнять приложения PowerBuilder в броузере Netscape (или в любом броузере, поддерживающем NetscapeNavigatorPlug-in - как, например, MicrosoftInternetExplorer версии 3.0). Это означает, что вы имеете возможность открыть дочернее окно PowerBuilder, в котором допускается размещение любых элементов управления PowerBuilder, таких как кнопки, списки, графики, строки редактирования, Tab-странички, деревья, OLE-объекты и т. п. Приложение может использовать технологию DataWindow для соединения с базой данных через "родные" драйверы или через драйверы стандарта ODBC. Более того, WindowPlug-in может взаимодействовать с распределенными частями приложения, располагающимися на различных платформах - например, на Unix или WindowsNT. Такое окно PowerBuilder содержится в динамической библиотеке PowerBuilder (pbd или dll) на Web-сервере и загружается Web-броузером с помощью следующей команды:



    Здесь my_windows.dll - имя динамической библиотеки PowerBuilder, содержащей дочернее окно w_detail. Таким образом, разработчик получает возможность выполнять стандартные дочерние окна PowerBuilder внутри Web-броузера, что устраняет необходимость написания HTML-кодов и CGI-программ. Кроме того, устраняются ограничения HTML по пользовательскому интерфейсу и имеется возможность использовать богатейшую функциональность DataWindow.

    Web.PB - это новая технология, позволяющая создавать распределенные приложения с использованием Web-сервера. Web.PB обеспечивает доступ любого Web-броузера к ресурсам сервера приложений PowerBuilder. Такая методология использует полную функциональность PowerBuilder, включая DataWindow, огромные возможности языка PowerScript и объектно-ориентированный подход для построения распределенного приложения. Созданный разработчиком сервер приложений имеет возможность динамически, "на лету", генерировать HTML-страницы и посылать их Web-броузеру через Web-сервер. При этом могут использоваться протоколы CGI, NSAPI или ISAPI. Такой подход полностью соответствует архитектуре "тонкого" клиента, где единственным требованием к клиентскому компьютеру является наличие Web-броузера. Данная схема обеспечивает полный доступ из броузера к атрибутам и методам любых невизуальных объектов на сервере приложения, вплоть до передачи аргументов.

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

    По информации от разработчиков PowerBuilder, в следующей, шестой, версии, работе с Internet будет уделено еще более пристальное внимание.

    Предформатированый текст

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


    Предшественники HTML

    Начало истории HTML следует отнести к далекому 1986 году, когда Международная организация по стандартизации (ISO) приняла стандарт ISO-8879, озаглавленный "StandardGeneralizedMarkupLanguage" (SGML). Стандарт этот посвящен описанию SGML - обобщенного метаязыка, позволяющего строить системы логической, структурной разметки любых разновидностей текстов. Слово "структурная" означает, что управляющие коды, вносимые в текст при такой разметке, не несут никакой информации о внешнем виде документа, а лишь указывают границы и соподчинение его составных частей, т.е. задают его логическую структуру.
    Создатели SGML стремились максимально абстрагироваться от проблем представления электронного текста в разных программах, на разных компьютерных платформах и устройствах вывода. Так, если с помощью SGML размечается документ, содержащий заголовки, идеология языка запрещает указывать, что такой-то заголовок должен набираться, скажем, шрифтом Times полужирного начертания кегля 12 пунктов. SGML в таком случае требует ограничиться указанием на уровень заголовка и его место в иерархической структуре документа.
    Благодаря таким ограничениям размеченный текст сможет без труда интерпретировать любая программа, работающая с любым мыслимым устройством вывода. К примеру, при работе в графическом интерфейсе заголовок может действительно выводиться полужирным шрифтом повышенного кегля; программа, использующая текстовый интерфейс, выделит его пустой строкой сверху и снизу и, возможно, повышенной яркостью символов; синтезатор речи, читающий документ вслух, сможет отметить заголовок паузой и изменением интонации. Можно сказать, что SGML-разметка обнажает нематериальную "душу" текста, для которой впоследствии любая программа-интерпретатор сможет подобрать подходящее к случаю "тело".
    Однако абстрактность SGML этим не исчерпывается. SGML представляет собой не готовую систему разметки текста, а лишь удобный метаязык, позволяющий строить такие системы для конкретных обстоятельств. Жизнь многообразна и непредсказуема: сегодня вам требуется выделять в текстах заголовки, а завтра, возможно, понадобится размечать подписи в письмах, математические формулы или имена действующих лиц в пьесе. Стандарт SGML определяет лишь синтаксис записи элементов разметки - тегов - и их атрибутов, а также правила определения новых тегов и указания структурных отношений между ними. Для практической же разметки документов нужно приложение SGML - набор определенных в соответствии со стандартом тегов, представляющий собой, по сути, формальное описание структуры документа.
    Cам по себе SGML не получил сколько-нибудь заметного распространения - до тех пор, пока в 1991 г. сотрудники Европейского института физики частиц (CERN, http://www.cern.ch), занятые созданием системы передачи гипертекстовой информации через Internet, не выбрали SGML в качестве основы для нового языка разметки гипертекстовых документов. Этот язык - самое известное из приложений SGML - был назван HTML (HyperTextMarkupLanguage, "язык разметки гипертекста").
    Справедливости ради стоит отметить, что на время появления HTML существовали (и были весьма распространены) и другие языки разметки текста, например TeX и RTF.

    3.1.2. Контейнеры и теги HTML

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

    Теговая модель описания документа позволяет представить его в виде совокупности элементов, каждый из которых окружен тегом (управляющим HTML-кодом).

    Документ HTML представляет собой не что иное, как обычный ASCII-файл, с добавленными в него управляющими HTML-кодами (тегами). Каждый тег начинается с левой угловой скобки "<" и заканчивается правой угловой скобкой ">". Между скобками записывается идентификатор тега и, если необходимо, дополнительные аргументы. Некоторые теги используются вместе с закрывающей парой, которая сигнализирует об окончании области действия соответствующего назначения. Закрывающая пара после левой угловой скобки содержит символ "/" (например, для тега наклонного шрифта закрывающая пара представляет собой , для тега заголовка закрывающей парой будет ).

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

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

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

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

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

    Интерфейсу CGI присущи ограниченные возможности масштабирования и невысокое быстродействие. Каждый запуск серверной процедуры требует загрузки программы с диска и производится в своем адресном пространстве, что вызывает непроизводительные затраты времени.
    Прикладные интерфейсы Web-серверов призваны улучшить эту ситуацию. Они реализуются в виде динамических библиотек (DDL в Windows и совместно используемые объекты в UNIX) в адресном пространстве Web-сервера.
    Два ведущих производителя Web-серверов, Netscape и Microsoft, разработали свои API расширения серверов: ISAPI для InternetInformationServer и NSAPI для серверов Netscape.
    DLL-библиотеки ISAPI имеют две точки входа:
  • GetExtensionVersion - для получения номера версии расширений и строки описания при инициализации;
  • HttpExtensionProc - эквивалент main-процедуры расширения.

  • Информация в HttpExtensionProc передается с помощью единственного параметра и указателя управляющего блока расширения. В этом блоке приведена информация о взаимодействии по данным между броузером и CGI-процедурой на Web-сервере.
    Основными функциями ISAPI являются:
  • GetServerVariable - запросить дополнительную информацию по имени;
  • ReadClient - считать информацию из тела HTTP-запроса броузера;
  • WriteClient - послать информацию HTTP-клиенту;
  • ServerSupportFunction - возвратить серверу информацию о расположении, переадресации и состоянии процесса.

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

    Применение FTP-архивов

    FTP-архивы являются одним из основных информационных ресурсов Internet. Фактически, это огромное распределенное хранилище всевозможной информации (программы, музыка, фильмы, текстовые файлы), доступ к этим архивам осуществляется специальной программой FTP, которая обращается к специальному серверу, управляющему файловым архивом на удаленной машине. FTP-архив - это часть файловой системы, которая доступна для удаленного пользователя FTP-сервера. Важным свойством FTP-архивов является возможность так называемого анонимного доступа.
    Любой пользователь может воспользоваться услугами анонимного доступа к хранилищу и скопировать интересующие его материалы. Для того, чтобы получить доступ к архиву, следует отправить сообщение по адресу. Далее робот попытается установить анонимное соединение с FTP-сервером. В результате будет получен список файлов корневой директории сервера, робот прервет работу с сервером и вернет результаты пользователю.
    Важным моментом, ради чего осуществляется доступ к FTP-серверу, является запрос на передачу файлов. Передавать можно текстовые и двоичные файлы. В течение одной сессии можно открывать и закрывать FTP-соединения с разными FTP-серверами, заказывать кодировку двоичных файлов, получать подсказку о своем месте в файловой системе сервера ит.д. Можно получить список FTP-архивов.
    Практически любой архив строится как иерархия директорий. Многие архивы дублируют информацию из других архивов (так называемые "зеркала"). Для того чтобы получить нужную информацию, вовсе не обязательно ждать, когда информация будет передана издалека, можно поискать "зеркало" где-нибудь ближе. Для этой цели существует специальная программа Archie, которая позволяет просканировать FTP-архивы и найти тот, который устраивает пользователя по составу программного обеспечения и коммуникационным условиям.
    Информация в FTP-архивах разделена на три категории:
  • Защищенная информация, режим доступа к которой определяется ее владельцами и разрешается по специальному соглашению с потребителем. К этому виду ресурсов относятся коммерческие архивы, закрытые национальные и международные некоммерческие ресурсы, частная некоммерческая информация со специальными режимами доступа.
  • Информационные ресурсы ограниченного использования. В данный класс могут входить ресурсы ограниченного времени использования или ограниченного времени действия.
  • Свободно распространяемые информационные ресурсы или freeware, если речь идет о программном обеспечении. К этим ресурсам относится все, что можно свободно получить по сети без специальной регистрации. Это может быть документация, программы или что-либо еще.


  • Из выше перечисленных ресурсов наиболее интересными, по понятным причинам, являются две последних категории, которые, как правило, оформлены в виде FTP-архивов.

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

    FTP (FileTransferProtocol, или "Протокол Передачи Файлов") - один из старейших протоколов Internet и входит в его стандарты. Обмен данными в FTP проходит по TCP-каналу. Построен обмен по технологии "клиент-сервер".

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

    В настоящее время доступ по FTP-протоколу осуществляется из множества мультипротокольных интерфейсов (например, Netscape) или графических ftp-оболочек типа ftp-tool для X-Window. Все они гораздо удобнее и проще в использовании, но и потребляют гораздо больше ресурсов. FTP-сервер есть даже для MS-DOS, не говоря о многозадачных средах. Однако поиск нужного FTP-сервера в Internet - задача сложная и трудоемкая. Для ее облегчения существует специальное средство - Archie. Задача Archie - сканировать FTP-архивы на предмет наличия в них требуемых файлов. Работать с Archie можно через telnet-сессию, через локального клиента или по электронной почте.

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

    Процедуры и функции

    В VBScript существует два типа подпрограмм - процедуры и функции.
    Процедура - это набор операторов VBScript, обрамленных операторами Sub и EndSub, которые выполняют какие-то действия. Процедура не возвращает никакого значения. Процедура может "захватывать" аргументы (константы, переменные или выражения). Если процедура не имеет аргументов, то выражение Sub должно содержать пустые круглые скобки. В примере, приведенном ниже, процедура ConvertTemp использует две встроенные функции VBScript - InputBox и MsgBox - для обмена с пользователем некоторой информацией.
    Функция - это набор операторов VBScript, обрамленных операторами Function и EndFunction. Функция похожа на процедуру, но отличается тем, что может возвращать значение. Функция также как и процедура может "захватывать" аргументы. Функция всегда возвращает значение типа Variant. В примере функция Celsius пересчитывает температуру из градусов по Цельсию в градусы по Фаренгейту.
    SubConvertTemp() temp = InputBox("PleaseenterthetemperatureindegreesF.", 1) MsgBox "Thetemperatureis " & Celsius(temp) & " degreesC." EndSub FunctionCelsius(fDegrees) Celsius = (fDegrees - 32) * 5 / 9 EndFunction
    Процедуры и функции перед их использованием обязательно должны быть описаны в начале раздела HEADHTML-страницы. Весь последующий скрипт должен быть также в разделе HEAD. Кроме того, выражения Sub и Function как и все другие операторы VBScript должны находится в контейнере
    Аргументам можно присваивать любые имена в соответствии с соглашениями по именованию.
    При использовании функций в скрипте, ее имя должно всегда стоять в правой части равенства при присвоении значения переменной или внутри какого-либо выражения, например:
    Temp = Celsius(fDegrees)
    или
    MsgBox "TheCelsiustemperatureis " & Celsius(fDegrees) & " degrees."
    Для вызова процедуры из другой подпрограммы нужно просто указать имя процедуры вместе со значениями аргументов, разделенных запятыми. Выражение Call в данном случае не требуется, но если оно все-таки используется, то аргументы указываются в скобках. В следующем примере показаны оба варианта вызова процедуры:
    CallMyProc(firstarg, secondarg) MyProcfirstarg, secondarg

    Программирование на SQL

    SQL используется в диалоговом и пакетном режимах. Диалоговый режим предполагает интерпретацию каждой конструкции и ее выполнение. Пакетный режим предполагает написание программ, реализующих обработку базы данных в прикладных интересах. Двухрежимное использование SQL очень удобно для предварительной интерактивной отладки программ и реализации окончательной версии приложения в виде более быстродействующей программы. Структура языка и его возможности в основном идентичны в обоих режимах.
    Для эффективной разработки приложений с использованием SQL существует несколько вариантов реализации языка и, соответственно, СУБД. Каждый из вариантов предполагает использование своей техники программирования. Наиболее распространен встроенный SQL, реализуемый в статическом и динамическом вариантах. Альтернативой встроенному SQL, заявившей о себе в последнее время, является внешний SQL, предполагающий взаимодействие приложений с базой данных в режиме клиент-сервер.
    Встроенный SQL предполагает использование некоторого основного языка программирования (например, С, Pascal, Ada, Cobol, Fortran, Assembler) и SQL-процессора. Реализация встроенного SQL регламентирована стандартом фирмы IBM для SQL-продуктов.
    Текст программы состоит из произвольной смеси команд основного языка и команд SQL со специальным префиксом, например, ExecSQL. Структура SQL-предложений расширена для использования переменных основного языка в SQL-конструкциях.
    SQL-процессор видоизменяет текст программы в соответствии с требованиями компилятора основного языка программирования. При этом в предусмотренной форме расставляются обращения к процедурам и функциям библиотеки, реализующей обработку SQL и основных функций СУБД. После компиляции программы и ее компоновки приложение представляет собой самостоятельный модуль.
    Для работы препроцессора необходимо в каждой программе определять структуру используемых таблиц, например, с помощью конструкции CREATETABLE. Вводится дополнительная инструкция DECLARE, предоставляющая возможность ссылаться на описание таблицы из нескольких SQL-предложений в разрабатываемых программах. Структура такой инструкции аналогична CREATE, но содержит только информацию, необходимую для работы SQL-препроцессора.
    Обработка ошибок во встроенном SQL выполняется на шаге компиляции и при выполнении. На шаге компиляции программы ошибки в SQL-предложениях выявляются препроцессором. При выполнении приложения код завершения каждого SQL-предложения содержится в специальной переменной основного языка программирования SQLCODE.
    Для обработки ошибок времени выполнения предусмотрено специальное SQL-предложение WHENEVER, определяющее действия, которые необходимо предпринять при возникновении ошибочной ситуации.
    Встроенный SQL предлагает специфическую обработку запросов - получение результатов строка за строкой. Для этого выделяются однострочные и многострочные запросы. Определение однострочного запроса расширено позицией INTO, описывающей набор переменных основного языка, в которые будет направлена строка-результат запроса. Список таких переменных должен соответствовать списку колонок в целевой части SELECT по числу, порядку следования и типам значений.
    Для получения значений многострочного запроса используется понятие курсора. Определение курсора с помощью DECLARECURSOR заключается в связывании имени курсора с определенным запросом - SELECT-предложением. Затем курсор открывается с помощью OPEN-предложения, с которым можно ассоциировать позиционирование к первой строке таблицы-результата. Предложение FЕTCH позволяет считать строку таблицы в указанные основные переменные и перейти к следующей строке. Это предложение выполняется в цикле до достижения конца таблицы-результата. При возникновении ситуации WHENEVERNOTFOUND необходимо закрыть курсор с помощью CLOSE.
    Понятие курсора и текущей строки таблицы используется и для операций позиционированного обновления и удаления строк. В этом случае UPDATE и DELETE выполняются для текущей строки таблицы, с которой связан указанный курсор.
    Язык структурированных запросов SQL является непроцедурным языком, ориентированным на работу с БД, и не содержит средств традиционных алгоритмических средств для описания логики приложения. Инструментарий для реляционных СУБД может включать алгоритмические процедурные расширения, оформленные в виде самостоятельных языков и соответствующих интерпретаторов и компиляторов. Примером такого языка является PL/SQL для СУБД Oracle.
    OraclePL/SQL вводит следующие процедурные возможности для SQL:

  • операторы объявления и вызова процедурных модулей;
  • блочные конструкции BEGIN-END для операторов;
  • управляющие операторы:


  • IF-THEN-ELSE,
  • EXIT,
  • GOTO;


  • операторы циклов:


  • FOR-LOOP,
  • WHILE-LOOP;


  • операторы объявления переменных;
  • оператор присваивания с арифметическими выражениями.


  • Язык PL/ SQL широко используется при работе с различными программными продуктами Oracle:

  • при организации хранимых процедур сервера БД Oracle;
  • блоки PL/SQL применяются в генераторах OracleForms и Reports;
  • блоки применяются также во встроенных SQL для языков 3GL (например, в Pro*C).


  • Механизм PL/SQLEngine встраивается в различные компоненты и обеспечивает распознавание операторов и конструкций SQL и PL/SQL в смешанном потоке предложений. Конструкции и операторы PL/SQL исполняются внутри интерпретатора. Обнаруженный оператор SQL передается серверу БД, где производится его синтаксический разбор, связывание со значениями переменных, компиляция и выполнение запроса к БД.

    Блоки и модули PL/SQL могут быть частично откомпилированы, что обеспечивает повышение скорости выполнения хранимых процедур и триггеров.

    Программы просмотра (броузеры)

    Первыми программами просмотра гипертекстовой информации в WWW были строковый броузер www и полноэкранный текстовыйLynx. Их следует использовать только при работе с алфавитно-цифровыми терминалами, при этом следует указать, что броузер www практически нигде не используется. Первым графическим броузером был Mosaic, написанный и распространяемый Национальным центром по применению суперЭВМ. Программа Mosaic - превосходный экземпляр высококачественных бесплатных ресурсов Internet. Наибольшее распространение получили NetscapeNavigator и MSInternetExplorer.

    Протокол HTTP

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

    Расширяемость

    Возможность расширения предусмотрена с целью поддержки работы с автоматически определяемыми узлами, которые не являются частью стандарта. Например, если бы в стандарте отсутствовал узел типа "куб", его можно было бы вывести следующим образом:
    Cube { fields[SFFloatwidth, SFFloatheight, SFFloatdepth]width 10 height 4 depth 3 }
    Кроме этого, новые типы узлов можно задавать через уже существующие. В этом случае новые узлы определяются путем задания дополнительного параметра 'isA' поля MFString. Например, новый тип "Material" под названием "ExtendedMaterial", имеющий особые свойства отражения, может быть определен следующим образом:
    ExtendedMaterial { fields[MFStringisA, MFFloatindexOfRefraction, MFColor ambientColor, MFColordiffuseColor, MFColor cpecularColor, MFColoremissiveColor, MFFloat shininess, MFFloattransparency]isA [ "Material" ]indexOfRefraction .34 diffuseColor .8 .54 1 }

    Разделение данных.

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

    Размножение

    Узел может быть потомком более чем одной группы, поэтому в стандарте было введено понятие "размножение" или многократное использование одного и того же экземпляра узла в разных структурах. Данное понятие аналогично процедуре в универсальных языках программирования: конструкция "DEF" определяет имя размножаемого узла и создает его экземпляр, а с помощью команды "USE" происходит вызов (размножение) всех ранее созданных экземпляров. В результате выполнения следующего примера будет выведено три сферы: одна большая с именем Jack и две одинаковых поменьше с именем Kati.
    Separator { DEFJackSphere { } Translation { translation 2 0 0 } Separator { DEFKatiSphere { radius .2 } Translation { translation 2 0 0 } } USEKati # radius .2 spherewillbeusedhere }

    Разработка распределенных приложений

    При помощи существующих средств разработки стало возможным создавать WWW-приложения, работающие не только в контексте одной HTML-страницы или одного WWW-клиента, но использующие распределенные ресурсы - и клиента, и сервера, а может быть и большего количества компьютеров. Добиться этого можно несколькими способами: воспользоваться мощностью языка Java в сопряжении с JavaScript, использовать выполнение скриптов на сервере (ASP компании Microsoft или LiveWire компании Netscape)

    Редактирование и работа с проектами

    Пакет VisualJ++ выполнен на базе более ранней разработки DeveloperStudio, которую уже несколько лет компания Microsoft поставляет разработчикам в комплекте с компиляторами VisualC++ и FortranPowerStation, вспомогательными инструментами работы с кодом VisualTest и VisualSourceSafe и библиотекой поддержки разработчиков MSDN.
    Замечательной особенностью среды DeveloperStudio является возможность работать с несколькими проектами одновременно, при этом они могут быть созданы для разных языков программирования.
    В VisualJ++ все проекты отображаются как иерархические деревья файлов. Кроме того, при генерации создаются два проекта вместо одного: отладочный вариант (debug) и вариант для распространения (release). Разница между ними состоит в том, что задаются разные ключи компиляции. Как правило, для варианта debug компилятор генерирует в выходной файл отладочную информацию, а release компилируется без оной. Переключение одного варианта на другой представляет собой смену выделенного пункта из выпадающего списка на основной линейке инструментов среды DeveloperStudio и занимает одну секунду.
    Для создания приложения "с нуля" в J++ имеется единый со всеми другими компиляторами мастер генерации приложений AppWizard. При установке нового продукта в список возможных создаваемых проектов добавляются новые возможности.
    Процесс генерации Java-приложений и апплетов предельно прост: ваша задача указать, куда AppWizard должен положить готовые файлы с исходным текстом, и ответить на некоторые наводящие вопросы. Мастер пытается узнать, одно- или многопоточное приложение вы желаете получить, будет ли ваш апплет осуществлять анимацию, и обработчики каких событий мыши вы хотите получить в результате генерации. Помимо исходных текстов AppWizard позволяет создавать одновременно апплет и самостоятельное приложение на базе одного и того же кода, экономя ваше время. В процессе генерации "каркаса" приложения вам будет предложено создать новую страницу в формате HTML со ссылкой на разрабатываемый вами апплет. Если вам это необходимо (а так оно и есть), то вам будет предложено задать имена и прочие атрибуты передаваемых через HTML-страницу параметров апплета.

    Редактор ресурсов и мастер ресурсов

    Строго говоря, программы на языке Java не имеют ресурсов и не рассчитаны на их использование: все элементы интерфейса создаются и размещаются программно. Подход Microsoft в этом вопросе схож с подходом Symantec: можно создать ресурсы обычным способом, а затем отконвертировать их в программные модули на языке Java. Первый этап, т. е. создание ресурсов, происходит, как обычно, с помощью редактора ресурсов, встроенного в среду DeveloperStudio и знакомого всем пользователям VisualC++. Когда шаблон ресурсов создан, наступает время второго этапа - генерации Java-кода. Этим занимается специальный инструмент под названием JavaResourceWizard. Полученный код нужно добавить в проект, а во все файлы классов, которые ссылаются на полученный код, добавить выражения import для корректной компиляции.
    Редактор ресурсов, используемый в VisualJ++, работает по методу буксировки. Диалоговые панели формируются перетаскиванием элементов с палитры на шаблон ресурса.
    Что же касается рисунков, то их создание несколько сложнее. Как известно, броузеры WWW не понимают никаких графических форматов, кроме GIF и JPEG, а редакторы ресурсов Windows, как назло, никогда не могли рисовать в этих форматах. В MicrosoftVisualJ++ этот недостаток исправлен, и можно сохранять графические изображения в файлах .JPG и .GIF.
    К сожалению, JavaResourceWizard может конвертировать в Java-код только ресурсы меню и диалоговые панели. Причем из элементов диалоговых панелей конвертируются лишь те, для которых в Java имеются соответствующие классы. Более того, сгенерированный для диалоговой панели код создает лишь элементы интерфейса без панели. В своей программе вы сами зададите любой контейнер по своему усмотрению. Таким образом, для вашего интерфейса нет никакой разницы, куда будут переданы его элементы: в окно, панель или какой другой визуальный класс-контейнер. Как предполагается, по мере развития JavaResourceWizard будет распознавать все больше и больше ресурсов, предоставляя пользователю все больше и больше возможностей автоматизации разработки программ.

    Санкционирование доступа к серверам

    Самый распространенный метод обеспечения безопасности называется базовой аутентификацией (basicauthentication). Страницы с ограничением доступа защищаются пользовательскими именами и паролями. Клиентские адреса TCP/IP или имена узлов также могут использоваться для ограничения доступа.
    Управление доступом осуществляется в той секции файлов настроек сервера, где прописываются режимы работы с директориями. Если в файле управления доступом указать разрешение доступа только для определенных пользователей, то сервер будет запрашивать идентификатор и пароль пользователя. Данный процесс аутентификации может быть построен на различных механизмах: стандартной системе шифрования пароля, ведения базы данных паролей в различных базах данных.

    Сервер приложений BaikonurWebApplicationServer

    Baikonur - программный продукт компании EpsylonTechnologies, предназначенный для быстрой разработки приложений, ориентированных на использование Web-броузеров в качестве клиентских мест для доступа к базам данных во внутрикорпоративных сетях Intranet, а также Internet. Собственно Baikonur представляет собой сервер приложений, частным случаем которого является Web-сервер приложений, в состав поставки входят еще и дополнительные библиотеки для различных средств программирования, в частности для BorlandDelphi (для C++, Java, JavaScript - в старших версиях).
    BaikonurServer предназначен для построения Internet/Intranet-систем на платформе WindowsNT. Самое простое, что может делать BaikonurServer, - это служить в качестве обыкновенного Web-сервера, имеющего дело со стандартными HTML-документами. Однако, в отличие от стандартного Web-сервера, основные ресурсы, которыми оперирует Baikonur-сервер, - это информационные потоки и задачи. В результате при помощи сервера Baikonur появляется возможность построения функционально весьма сложных и разветвленных информационных систем.
    Системы в архитектуре клиент-сервер устроены так, что исполняемый код одновременно находится и на сервере, и на клиенте. Как правило, серверной стороной выступает какой-либо SQL-сервер, например, от компании Oracle, Informix, Borland, Microsoft, IBM и др., а задачей клиентского места является диалоговая работа с пользователем, формирование запросов, получение и отображение результатов. В настоящее время существуют развитые средства скоростной разработки систем в такой архитектуре. Одним из наиболее удачных инструментов является BorlandDelphi. Компонентный подход к разработке клиентского места в Delphi существенно ускоряет проектирование всей системы в целом. В Delphi имеются визуальные и невизуальные компоненты. Визуальные компоненты предназначены для проектирования элементов интерфейса, а невизуальные - для сборки из готовых компонентов алгоритмической части, включая запросы, обработку таблиц и т. д.
    В отличие от систем в архитектуре файл-сервер, обработка данных в системах с архитектурой клиент-сервер в основном происходит на серверной стороне. Однако клиентское место имеет доступ к метаданным, определяющим структуру таблиц и т. д. Запросы и получение данных в системах с архитектурой клиент-сервер происходят при помощи драйверов данных (в случае Delphi - SQLLinks), которые умеют работать с соответствующими SQL-серверами, посылая запросы, производя подключение, получая результирующие наборы данных.
    Приложение динамически генерирует HTML-страницы. Однако, если хочется создавать изысканно выглядящие Internet-приложения, HTML придется освоить. Вы можете создавать свои собственные HTML-компоненты или подправлять внешний вид страниц, генерируемых вашим приложением, расставляя вручную в шаблоне соответствующие теги HyperTextMarkupLanguage.
    В случае применения BaikonurWebAppServer между клиентом и сервером появляется дополнительное звено - сервер приложений. Теперь приложения, изготовленные при помощи средства ускоренной разработки (например Delphi), работают не на клиентской стороне, а под управлением сервера приложений Baikonur. В зависимости от необходимого количества одновременно работающих клиентов, таких серверов может быть несколько. SQL-сервер может работать либо на той же машине, где находится сервер приложений, либо быть выделенным в отдельный физический сервер. В случае SQL-сервера от компании Borland это может быть даже сервер, работающий с другой операционной системой, например какой-нибудь из наиболее удачных версий Unix (Solaris, AIX, HP/UX, DigitalUnix, IRIX).
    Собственно клиентское место представляет собой теперь компьютер с достаточно произвольно выбираемой конфигурацией и операционной системой. Это может быть и Windows 3.11, и Macintosh, и Unix, и OS/2, и WindowsNT и др. Клиентское место может находиться в сети (стек TCP/IP) или связываться с сервером Baikonur через прямое модемное соединение, через провайдера Internet или по специализированной выделенной линии.
    На каждом клиентском рабочем месте устанавливается либо Internet-броузер общего назначения, либо специализированный броузер. При помощи таких броузеров пользователь устанавливает соединение с Web-сервером, запускает одно или несколько приложений на сервере (визуально спроектированных в Delphi), может переключаться между ними, не теряя контекста, может получать оперативную информацию и т. д.
    Рассмотрим, как устроена система на основе сервера Baikonur. Удаленные и неудаленные клиенты 1-N обслуживаются одинаковым образом, никаких различий для них не делается. Каждый запрос, поступающий от клиентского броузера на TCP-порт, обслуживается листенером - подзадачей обслуживания коммуникационного порта; этот компонент фактически является монитором соединений (connect), затем запрос попадает на парсер, который его разбирает и идентифицирует клиента. При возникновении соединения листенер инициирует работу IP-менеджера, который обслуживает подзадачи сессий клиентов. Парсер принимает решение, генерировать ли ему новую подзадачу сессии клиента или переключить информационный поток от клиента к его задаче. Таким образом, информационный поток попадает от клиентского броузера именно туда, куда необходимо. Идентификация клиента позволяет избежать потери контекста при переключении между задачами. На передаче информационного потока задаче обработка не заканчивается. Библиотека HTML-компонентов, написанная для Delphi, устроена так, что базовый компонент, присутствующий в каждой задаче (THTMLControl), умеет воспринимать поток информации, передаваемый ему с сервера Baikonur. Этот поток воспринимается и раздается активным визуальным компонентам для обработки. При передаче информации от приложения клиенту все происходит в обратном порядке, с тем лишь исключением, что соединение уже установлено, клиентский броузер идентифицирован. Поэтому остается лишь собрать информацию с визуальных компонентов в один поток и передать обратно клиенту.
    Для функционирования системы строится довольно сложная структура. Сложность построения системы усугубляется еще и тем, что обработка всех процессов производится в параллельном режиме, это особенно заметно на многопроцессорных серверах. Все подзадачи Baikonur ведут обработку независимо друг от друга, и, хотя в целом сам сервер получился довольно компактным, логика его функционирования требует отдельного описания.
    Для обработки запросов может использоваться параллельно несколько процессов по одному для каждого Web-клиента или один процесс, работающий в многопользовательском режиме. Так как протокол HTTP не ориентирован на сеансы, то Baikonur сам обеспечивает сохранение рабочего контекста пользователя, имитируя сеанс на сервере.

    Серверные расширения IDC и ASP

    Microsoft предоставляет расширение для Web-сервера -InternetDatabaseConnector, программу на базе ISAPI, обеспечивающую доступ к MicrosoftAccess, MicrosoftSQLServer, Oracle, Sybase, Informix и другим ODBC-совместимым базам данных.
    IDC является примером достаточно давно и успешно используемого ISAPI-приложения. Он входит в состав MSIIS. С помощью вызовов функций ODBCAPIIDC обеспечивает прямую связь между полями HTML-формы и соответствующим ODBC-достижимым источником данных, например, базой данных MSSQLServer, без необходимости написания замысловатых CGI-скриптов.
    Когда речь заходит о компонентах ActiveX, как правило, неявно подразумевается клиентская часть приложения. MicrosoftActiveServerPages (ASP) - активные серверные страницы - представляют собой инструмент для эффективной разработки серверных Web-приложений, интегрирующих в своем составе HTML-код, VBScript и компоненты ActiveX. Это означает, что в уже существующие наработки легко могут быть встроены фрагменты кода на VBScript или JavaScript, а также вызовы соответствующих объектов ActiveX.

    InternetInformationServer принимает адрес URL.

    Адрес URL посылается Web-броузером на InternetInformationServer.

    IIS загружает библиотеку Httpodbc.dll и передает ей адрес URL.

    Библиотека Httpodbc.dll загружается и извлекает из полученного от IISURL-адреса имя IDC-файла (и другие элементы).

    Библиотека Httpodbc.dll читает IDC-файл.

    IDC-файл содержит элементы в виде
    field: value
    Например, источник данных ODBC - Datasource: WebSQL,HTML-шаблон, в который будут размещены результаты SQL-запроса, - Template: sample.htx, имя пользователя, которое определяет, если это необходимо, имя для доступа к источнику данных ODBC - Username: sa,SQL-предложения, которые будут выполнены -
    SQLStatement: SELECTau_lname, ytd_sales FROMpubs.dbo.titleview WHEREytd_sales>5000

    Библиотека Httpodbc.dll

    Соединение с источником данных ODBC осуществляется библиотекой Httpodbc.dll, которая загружает ODBC-драйвер (в примере, указанном выше, - ODBC-драйвер для SQLServer) и соединяется с сервером, указанном в описании источника данных. В продолжении примера, при установлении связи, SQL-предложения из IDC-файла пересылаются ODBC-драйверу SQLServer, который перенаправляет их в SQLServer.

    Библиотека Httpodbc.dll выбирает данные из БД и отправляет их в HTX-файл.

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

    Библиотека Httpodbc.dll

    После того, как все выбранные данные будут записаны в HTX-файл, заполненный HTML-документ отправляется клиенту. Результирующая Web-страница отображается броузером.
    Кроме построения приложений для генерации отчетов и для поиска по образцу, существует возможность создания на базе IDC диалоговых приложений регистрации данных. Более сложные приложения обработки транзакций IDC не поддерживает из-за невозможности обеспечить целостность сложных транзакций при отсутствии понятия сеанса для протокола HTTP. Новый продукт ActiveServerPage (ASP) позволяет строить более сложные серверные приложения с использованием VBScript и обеспечивает поддержку транзакций.
    Библиотека Httpodbc.dll
    Рис. 4.2. Динамическая публикация БД с помощью IDC

    Шлюз dbWeb для доступа к БД

    MicrosoftdbWeb представляет собой шлюз между 32-битными ODBC-ресурсами, в качестве которых могут выступать, например, MicrosoftSQLServer, MicrosoftAccess, MicrosoftVisualFoxPro, Oracle и т.д., и Web-сервером MSIIS. Пакет dbWeb предусматривает создание схемы, содержащей описание данных и связанных с ними Web-страниц. Он поддерживает исполнение запросов в реальном режиме времени на основе "pull"-модели публикации, позволяя тем самым создавать активные Web-страницы.
    MicrosoftdbWeb структурно состоит из двух основных компонент: dbWebService и dbWebAdministrator. Компонент dbWebService является типичным ISAPI-приложением, которое обрабатывает пользовательские запросы, направляемые посетителем страницы через броузер, и управляет соединениями между броузером, ODBC-ресурсом и IIS. К функциям dbWebAdministrator относится создание HTML-страниц, содержащих результаты выполнения запросов на основе уже упоминавшихся схем, с помощью которых осуществляется управление публикуемыми данными. Схемы определяют сам запрос и структуру страниц. При этом не требуется знания HTML или ISAPI, так как в состав dbWebAdministrator входит интерактивный мастер-построитель схем (SchemaWizard), который в традиционной для любой программы-мастера манере позволяет задать поля поиска по методу Query-by-Example (QBE), выбрать поля для отображения в таблице страницы результатов и определить переходы из списка записей в отдельные страницы, содержащие развернутую информацию по текущей записи. Настройкой соответствующих свойств можно разрешать или запрещать операции вставки, удаления и редактирования. Для проверки прав пользователя используется система безопасности той СУБД, к которой происходит доступ. dbWeb имеет в своем составе широкий спектр шаблонов страниц, которые при необходимости могут быть легко откорректированы и настроены разработчиком для более полного соответствия его задачам. Таким образом, dbWeb не является конечным пользовательским приложением. Скорее его можно охарактеризовать как достаточно легкий в использовании инструментарий разработки, который, как всякий мастер, не поддерживает языка программирования и оттого несколько проигрывает в функциональности SQLWebAssistant, несмотря на возможность инициируемого посетителем обновления информации в базе. Тем не менее, эта программа успешно справляется с автоматизацией большинства рутинных операций по организации соединений и публикации данных из БД и покрывает, по разным оценкам, порядка 40-60% потребностей бизнеса среднестатистической фирмы при организации доступа к своим источникам данных через Internet. dbWeb является свободно распространяемым приложением и может быть установлен с MicrosoftTechnet, WindowsNTResourceKit или непосредственно с http://www.microsoft.com.

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

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

    Система GroupWise для поддержки групповой работы в электронном офисе

    NovellGroupWise реализует наиболее быстрый, простой и экономичный путь к полному решению, обеспечивающему коллективную работу в Intranet, плюс защищенное соединение с остальным миром через Internet.
    GroupWise позволяет быстро просматривать, сортировать и искать сообщения электронной почты, документы, факсы, речевые сообщения и сведения о назначенных встречах. GroupWise использует службу каталога, утилиты управления и администрирования наиболее полнофункциональной из существующих сегодня сетевых ОС - NovellIntraNetWare. В то же время приложение GroupWise способно работать и в иных сетевых операционных системах, включая WindowsNT и UNIX.
    ПО GroupWiseWebAccess позволяет дополнить функции коллективной работы GroupWise с помощью любого стандартного броузера HTML. Кроме того можно использовать открытые стандарты Internet в корпоративных локальных и глобальных сетях.
    Полная поддержка таких спецификаций как POP3, SMTP, MIME и IMAP обеспечивает простой и эффективный способ взаимодействия с поставщиками, партнерами, заказчиками, покупателями и всем остальным миром.
    Открытые интерфейсы GroupWiseSDK и тесная интеграция с Java расширяют доступные в GroupWise службы.
    В универсальный почтовый ящик GroupWise (UniversalMaibox) поступает вся передаваемая вам информация (сообщения электронной и речевой почты, факсы), события и данные календаря, документы (текст, электронные таблицы, графические файлы и изображения). Все, это хранится в одном легко доступном месте. Единый механизм поиска помогает найти необходимые сведения за считанные секунды независимо от типа информации: сообщения электронной почты, просьбы о встрече, документ или факс.
    GroupWise позволяет обновлять и расширять системы электронной почты, получая полное программное обеспечение для поддержки коллективной работы и автоматизации деловых процедур. GroupWise предлагает работать со следующими средствами:
  • групповое планирование;
  • ведение персональных календарей;
  • управление задачами;
  • совместно используемые папки / организации телеконференций;
  • управление звонками (через ConversationPlace);
  • управление речевой почтой (с помощью GroupWisePhoneAcess и решений партнеров Novell при разработке приложений обмена речевыми сообщениями);
  • управление документами;
  • средства работы с изображениями;
  • автоматизация деловых процедур.


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

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

    GroupWiseWebAcess позволяет обращаться к UniversalMailBox с помощью любого стандартного Web-броузера. Данное ПО позволяет с любого ПК, оснащенного Web-броузером, просмотреть свой список задач и документы.

    GroupWise поддерживает следующие стандарты Internet: SMTP, MIME, POP3 и IMAP. Кроме того, в состав пакета GroupWise включена оснащенная броузером HTML версия клиента GroupWise под названием GroupWiseWebAccess.

    ПО GroupWise и предлагаемые в его составе шлюзы GroupWiseSMTP/MIME позволяют обмениваться электронной почтой с пользователями приложений E-mailInternet. Аналогично GroupWiseWebAccess вы можете обращаться к GroupWiseUniversalMailBox с помощью любого броузера, поддерживающего HTML, применяя доступ через Internet из любой точки мира.

    Благодаря GroupWiseWebAcess клиент GroupWise реализован как базовая страница в Intranet или в Internet. Для доступа к GroupWise достаточно ввести URL базовой страницы, свой идентификатор электронной почты и пароль в любой броузер WorldWideWeb, поддерживающий HTML. Получив доступ к универсальному почтовому ящику, можно обращаться ко всем функциям GroupWise, которые будут представляться в интерфейсе применяемого броузера Internet. Благодаря GroupWiseWebAccess, универсальный почтовый ящик будет доступен в такой же степени, как ближайший броузер.

    GroupWise поддерживает полный спектр шлюзов, которые используются для реализации взаимодействия данного продукта с другими, основанными на стандартах, системами электронной почты на базе локальных сетей и мейнфреймов. Например, шлюз GroupWiseSMTP/MIMEGateway позволяет вашей системе GroupWise полностью обмениваться информацией с другими системами электронной почты Internet, а продукт GroupWise Х.400. Gateway обеспечивает взаимодействие с системами E-mail на базе стандарта X.400. Имеются также шлюзы для работы с системами электронной почты cc: Mail, LotusNotes, MicrosoftMail, OfficeVision/VM и многими другими продуктами.

    Система координат

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

    Система программирования SymantecCafe

    Широкому применению языка Java препятствует отсутствие нормальной среды разработки, включающей стандартные инструменты визуального программирования. SymantecCafe для Windows 95 и WindowsNT является первым инструментом, оформленным в виде единой многооконной среды разработки и отладки с удобным графическим интерфейсом и включает:
  • разрядный Java-компилятор, работающий примерно в 20 раз быстрее компилятора из комплекта JDK компании Sun. Полная интеграция компилятора в среду разработки позволяет программисту переходить к сбойному участку кода простым щелчком по сообщению об ошибке.
  • Редактор ресурсов CafeStudio, позволяющий визуально создавать интерфейс Java-приложений перемещением и размещением управляющих элементов. CafеStudio включает редактор меню Java-приложений и может автоматически конвертировать существующие файлы ресурсов Windows в Java-код. Щелчок мыши по объекту позволяет создавать или править обработчик соответствующего события.
  • Интегрированный графический отладчик, предлагающий: отладку Java-приложений, встроенных в HTML-страницы, на уровне исходного текста; просмотр данных и объектов; отслеживание цепочки вызовов; управление потоками и управление контрольными точками.
  • Специальная библиотека, замещающая Java-интерпретатор и ускоряющая выполнение Java-приложений более чем в 2 раза.
  • Программа просмотра классов ClassBrowser, позволяющая просматривать Java-код, а также просматривать и редактировать методы, данные и классы. ClassBrowser полностью поддерживает стандартные пакеты классов языка, упрощая понимание библиотеки классов Java.
  • Редактор HierarhyEditor, обеспечивающий визуальное представление иерархии классов Java-приложений, позволяющий лучше понять стандартные классы языка Java и их взаимоотношения, а также классы приложения. HierarhyEditor полностью поддерживает представление стандартных пакетов классов языка Java.
  • Легкий доступ к справочной системе, быстрый просмотр информации об интерфейсах JavaAPI.
  • ProjectExpress, Wizard-подобный инструмент быстрого создания проектов на основе набора Java-программ.
  • AppExpress, Wizard-подобный инструмент, позволяющий быстрее начать работу с языком Java. AppExpress автоматически генерирует полнофункциональное Java-приложение, которое затем может быть расширено.
  • Полностью интегрированная в среду разработки программа просмотра Java-приложений AppletViewer.
  • Комплект разработчика JDK 1.0 компании Sun.
  • Профессиональный редактор Java-кода, обеспечивающий выделение цветом ключевых слов и участков кода на языках Java и HTML, и включающий макроязык для расширения возможностей редактирования. Редактор позволяет мгновенно переходить к любому Java-описанию в тексте программы или библиотеки классов.
  • Учебник по программированию "Введение в язык Java", примеры и образцы WEB-страниц, позволяющих быстрее начать работать с языком Java; руководство "Gettingstarted", справочник "JavaLanguageReference".

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

    Системы управления документами на основе Web-технологий

    Сегодня на корпоративных Web-узлах скопились гигантские объемы информации, а в интрасетях, созданных для облегчения взаимодействия между отделениями организаций и предприятий, хранится громадное количество электронных документов. Возникла серьезная проблема управления этими документами. Стали необходимы системы, обеспечивающие совместное использование документов сотрудниками и обеспечивающие возможность публикации документов на Web-узлах.
    Одно из решений - превратить все бумажные документы в электронные и сосредоточить их в базе данных главного офиса/отделения, обеспечив к ним доступ по интрасети всем своим сотрудникам, а по Internet - "внешним" пользователям. Это позволит снизить затраты на распространение бумажной документации за счет публикации необходимой информации в Internet и интрасети и повысить эффективность работы с документами.
    Основные функции системы управления документами - классификация информации, размещение ее в библиотеках баз данных и предоставление пользователям интерактивного доступа к документам. Право на работу с документами определяется с помощью идентификатора пользователя и входного пароля, а возможность обработки информации обеспечивается программными средствами, которые позволяют редактировать документы, коллективно работать с ними, а также обмениваться ими по каналам электронной почты.
    В качестве клиентской части системы управления документами на основе Web-технологий используют стандартный броузер. С помощью этих систем можно мгновенно получить любые изменения, внесенные руководством в документы, подключившись к корпоративному серверу посредством модема и броузера, и найдя необходимый отчет в библиотеке базы данных.
    В традиционных системах управления документами на пользовательском компьютере требовалось установить клиентскую часть приложения, а для каждого пользователя, принимающего участие в коллективной работе с документами, было необходимо приобрести лицензию, что приводило к значительным материальным затратам. Системы управления документами на базе Web не требуют расходов на клиентское ПО.
    Чтобы установить систему управления документами, не обязательно иметь интрасеть на базе протокола IP. Необходимо только наличие Web-сервера и выделенного сервера для самой системы управления документами. Однако, если в сети не поддерживается этот протокол, можно подключить Web-сервер к корпоративной сети посредством любого шлюза типа IPX-to-IP.
    Планируется, что Web-системы управления документами будут выполнять функции автоматизации деловых процедур, осуществляя не только разделение документов на категории и взаимодействие с библиотеками баз данных, но и маршрутизацию документов. Еще одна функция заключается в предоставлении доступа к корпоративным информационным библиотекам.
    Наиболее сложной является проблема защиты информации. Если доступ к информации односторонний, обеспечить надежную защиту легко: достаточно предоставить внешним пользователям, обращающимся к библиотекам документов через Web, право только искать и читать данные, что значительно снижает опасность внесения несанкционированных изменений в ответственную информацию. В данном случае пользователь с помощью Web-броузера может только ознакомиться с данными, размещенными на Web-сервере, который установлен между ним и внутренней сетью корпорации. Когда же система управления документами применяется для двустороннего доступа к информации (а именно этот способ совместного использования документов особенно привлекателен), проблема защиты осложняется. Теперь для обеспечения безопасности корпоративной базы данных требуется специальное ПО, регламентирующее права доступа. Кроме того, на клиентском компьютере должно быть установлено специальное приложение, поддерживающее связь с сервером и позволяющее регистрировать документы и изменения. Большинство систем, предназначенных для управления документами в системе Web, включают развитое серверное ПО и небольшую клиентскую часть, рассчитанную на так называемого "слабого" клиента, т.е. устройство, не имеющее мощного процессора и способное обеспечить только просмотр информации с помощью Web-броузера. Эти системы не позволяют полностью контролировать доступ пользователей к информации.
    Некоторые пользователи устанавливают собственные средства обеспечения безопасности информации. Например, средством защиты информации может служить брандмауэр, расположенный между интрасетью и Internet. Для проверки прав пользователей вводятся идентификационные карточки с кодированием, а также идентификаторы и пароли. Когда удаленный пользователь обращается к серверу, система автоматически генерирует уникальный пароль и при помощи идентификационной карты сверяет его с тем, который вводит пользователь. Пересылать документы через брандмауэр на внешние Web-узлы разрешено ограниченному кругу лиц. Все эти меры плюс средства защиты серверов и полный запрет на доступ к сети из внешних Web-узлов создают условия для безопасной и удобной работы персонала.
    Одной из практических реализаций системы управления документами на основе Internet-технологий является программный продукт DOCSOpen компании PCDOCS, который позволяет организовать электронный архив на предприятии. Система предназначена для хранения, поиска и обработки информации, хранящейся в распределенной гетерогенной среде на накопителях различной природы.
    DOCSOpen хранит документы в файлах, которые размещаются в файловой системе сервера, каждый документ содержится в исходном виде (в виде одного или нескольких файлов). DOCSOpen имеет средства миграции документов по различным типам носителей данных. Миграция документов осуществляется автоматически в соответствии с частотой обращения к документам. Система DOCSOpen интегрирована с внешними процессорами обработки информации. Для обработки любого документа вызывается внешний процессор. Документы редактируются непосредственно по месту хранения (т.е. прямо на серверах документов). Если доступ к документам медленный, есть возможность предварительного создания локальной копии документа. Каждый документ в системе DOCSOpen снабжается учетной карточкой. В карточке документа содержится обязательная информация, необходимая для нормального функционирования самой системы DOCSOpen, и дополнительная информация, состав которой определяет пользователь системы. DOCSOpen снабжен подсистемой полнотекстовой индексации. Эта система позволяет находить документы не по учетной информации, а по содержанию документа.
    DOCSOpen строит поиск на основе интерфейса QBE (QueryByExample). Для того, чтобы не вводить наиболее часто используемые запросы, DOCSOpen позволяет сохранить типовые поисковые запросы. Можно объединять документы в папки, которые могут быть связаны между собой произвольным образом. Это дает возможность построить целую систему сетевой классификации документов произвольного вида.
    Наиболее сильной стороной DOCSOpen является возможность ведения распределенных и удаленных архивов информации. Организация может иметь несколько территориально распределенных архивов информации. Карточки документов и сами документы хранятся непосредственно в той библиотеке, куда они были первоначально положены (однако, можно явно откопировать документ в другую библиотеку). Администратор системы записывает в локальную библиотеку адреса всех доступных библиотек. В начале работы указывается, где искать информацию. После этого система автоматически организует поиск в распределенной системе.
    В новой, третьей версии DOCSOpen осуществлена многоплатформная поддержка клиентов и серверов, гибкая конфигурация, возможности защиты информации (модуль DocumentSentryAgent). Усовершенствована работа с мобильными системами. Существенно продвинуто ядро полного поиска.
    В DOCSOpen 3.0 усовершенствованы возможности индексации и поиска, благодаря замене ядра Infolink, которое выпускалось с версиями 2.x и более ранними, на ядро компании Verity, позволяющее создавать полный индекс текста. Ядро Verity предлагает возможность осуществлять нечеткий или концептуальный поиск и создавать разбитые на соответствующие категории отсортированные списки наиболее популярных вариантов поиска и многоуровневых запросов.
    DOCSUnplugged - это готовый вариант DOCSMobile - популярного модуля версии 2.5. Помимо обеспечения мобильной взаимосвязи, Unplugged позволяет работать в автономном режиме при возникновении сбоя сети.
    DOCSOpen предлагает функцию MobileTeam, при помощи которой удаленные рабочие группы, не связанные с корпоративной сетью, могут получить доступ к библиотекам DOCSOpen.
    DOCSInterchange для MicrosoftExchange совершенствует рабочий процесс и совместное использование информации, давая возможность публиковать содержимое документов и варианты настройки, хранящиеся в библиотеке.
    РС DOCS разработал технологию управления документами в Internet, совместимую с Web-технологией. С ее помощью обеспечивается доступ к DOCS-хранилищу из любого Web-броузера, публикация документов на Web-сервере и шифрование информации. Для этого служат ниже перечисленные продукты.
    DOCSLinks - средство построения сложных связей между документами. Этот компонент позволяет строить связи между документами, не помещая их в папки. При этом поддерживаются два типа связей: направленные вертикальные связи (типа "главный - подчиненный") и ненаправленные горизонтальные связи (типа "родственные документы"). Данная система позволяет строить сложную сеть документов, типичную для таких сфер применения, как архивы нормативно-справочных или юридических документов.
    DOCSBrowser - компонент, позволяющий отобразить содержание архива в структурном виде (в формате Explorer). Причем пользователь может выбрать формат представления информации, критерии сортировки и группировки документов. Данная компонента упрощает доступ неподготовленных пользователей архивной системы к документам, объединяет различные разрозненные компоненты в одном.
    WorkRouteII- компонент маршрутизации документов. После установки система становится частью рабочего места DOCSOpen. Она обеспечивает маршрутизацию работ и связанных с ней документов, а также контроль исполнения и автоматическое напоминание о просроченных работах. Можно отметить следующие особенности данного компонента:

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


  • PCDOCS работает над тремя отдельными проектами, связанными с Internet, которые помогут связать глобальных пользователей DOCSOpen. Первый продукт, называемый CyberDOCS 1.1 (псевдоним Mercury) предоставит пользователям возможность поиска и получения документов, хранящихся в библиотеке DOCSOpen, через программу просмотра Web. В процессе разработки находится и Venus, который расширяет эту идею, используя Internet в качестве глобальной сети, а продукт Jupiter предоставит пользователям DOCSOpen доступ к серверам документов через Internet в многоуровневых окружениях клиент-сервер.

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

    Кроме того, компания Infodata объявила о выходе продукта VFC - VirtualFileCabinet. Основное назначение - обеспечение унифицированного доступа к разнообразным хранилищам документов, начиная от LotusNotes и заканчивая DOCSOpen. Этот доступ осуществляется через стандартный Web-броузер. В задачу Infodata входит создание шлюзов для разных систем и различным коллекциям документов.

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

    Создание базы данных

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

  • Для определения нового объекта базы данных используется ключевое слово CREATE, для удаления - DROP, для изменения - ALTER.
    Внешние ключи FOREIGNKEY используются для логического связывания нескольких таблиц в некоторое представление. Определяя внешний ключ, можно установить соответствие строк между различными таблицами. Логическое связывание выполняется для строк, имеющих совпадающее значение в указанных колонках.
    Ограничение на уникальность строк в таблице UNIQUE указывается аналогично определению первичного ключа.
    Созданная таблица может хранится на диске различными способами, которыми можно управлять. Можно распределять таблицы базы данных в нескольких специальных областях или нескольких файлах, поддерживать несколько параллельных копий таблиц на различных носителях и т.п.
    Удаление таблицы DROP является наиболее простой операцией.
    Реструктуризация таблицы ALTER заключается в изменении состава колонок и ключей.
    Полное имя таблицы в базе данных включает в себя префикс - имя владельца. Для удобства идентификации несобственных таблиц в SQL предусмотрена возможность определения синонимов. Использовать синонимы можно во всех предложениях SQL.
    Для быстрой обработки SELECT-конструкций можно определить индексы - специальные поисковые структуры, хранящие значения некоторых колонок со ссылками на соответствующие строки таблицы. Анализируя структуру используемых в приложении SELECT-конструкций, программист достаточно просто может выделить требуемые индексы.
    Взгляды на базу данных, или, иначе, виртуальные отношения, определяются на уровне разработки приложений баз данных и представляют собой удобное средство для независимой разработки приложений различными программистами, реструктуризации баз данных без изменения прикладных программ, простого обеспечения секретности данных и надежности приложений.
    Виртуальная таблица VIEW является результатом неявного выполнения некоторой SELECT-конструкции. Строки такой таблицы образуются либо в момент обращения к ним, либо, однажды сформировавшись, постоянно изменяются при изменении отношений, входящих в соответствующую SELECT-конструкцию.
    Важным моментом при создании баз данных является определение привилегий пользователей (перечня разрешенных операций при использовании базы данных). При работе с базой данных пользователь проходит регистрацию, указывая свое имя и пароль. На основе имени пользователя СУБД контролирует действия пользователя и отклоняет несанкционированные операции. Установить привилегии пользователю можно предложением GRANT, а снять - предложением REVOKE.

    Создание приложений Web к базам данных Oracle

    OracleWebServer представляет собой сервер HTTP с возможностью интеграции с базой данных. OracleWebServer получает UniformResourceLocator (URL) с помощью протокола HTTP от навигатора WWW и извлекает информацию, необходимую для ответа на запрос, из базы данных или файловой системы. WebListener - обычный Web-сервер, который получает URL от клиента - навигатора WWW - и отвечает на запрос. При получении URLWebListener определяет, требуется ли для выполнения запроса обращение к файловой системе, выполнение программы через интерфейс CGI или обращение к базе данных. В последнем случае Listener передает запрос диспетчеру многопотокового сервера приложений WebRequestBroker (WRB) и возвращается к состоянию ожидания новых запросов HTTP. Диспетчер WRB распределяет запрос между процессами, называемыми WRBExecutableEngines (WRBX). Каждый из WRBX с помощью встроенного API обращается к специальным приложениям, так называемым WRB-картриджам. WebServer 3.0 позволяет использовать следующие картриджи:
  • Картридж PL/SQL, позволяющий строить Web-страницы, основанные на информации, извлекаемой из базы данных. Динамические страницы создаются с помощью хранимых процедур PL/SQL, которые используют стандартный пакет функций и процедур, интерпретирующих команды языка HTML.
  • Картридж Java, представляющий собой интерпретатор языка Java, полностью интегрированный с базой данных Oracle.
  • Картридж ODBC позволяет иметь доступ к информации, хранящейся в базах данных различных типов через драйверы ODBC (OpenDataBaseConnectivity).
  • Картридж Perl дает возможность использования программ, написанных на языке Perl в архитектуре WebRequestBroker.
  • WRBAPI позволяет разработчикам также создавать свои собственные картриджи, расширяющие возможности OracleWebServer.


  • Создание строки надписей

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

    Создание таблицы

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

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

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

    Для того, чтобы ввести данные в клетку таблицы, надо ввести текст между тегами и :
    One Two Three

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


    Создание внутренних связей в документе

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

    Далее сам текст первой главы:
    Форматирование текста
    Далее сам текст второй главы:
    Использование таблиц
    Далее сам текст третьей главы

    Специализированные Web-серверы

    Существуют специализированные или гибридные - Web-серверы, которые сочетают обслуживание транспортного протокола HTTP с более совершенными вспомогательными средствами обработки информации. Например, семейство Web-серверов Domino фирмы LotusDevelopment дает разработчикам возможность предоставить любому клиенту с Web-броузером доступ к средствам и программируемым функциям пакета LotusNotes и тем самым создавать Intranet-приложения для коллективного пользования. Имеется целый ряд специализированных Web-серверов для организации доступа к БД. Для примера можно назвать OracleWebServer, который обеспечивает доступ через CGI к SQL-серверу Oracle и с помощью дополнительных утилит формирует HTML-отчет для динамической публикации. Другим примером служит сервер приложений BaikonurWebApplicationServer для доступа к базам данных в корпоративных сетях Internet/Intranet.
    Помимо серверного ПО для Web-серверов поставляются так называемые "готовые" Web-серверы - аппаратно-программные комплексы ( см. таблицу 2.4).
    Таблица 2.4. "Готовые" Web-серверы

    КопанияПродуктМикро-процессорОперационная системаПрограммное обеспечение сервера
    CompaqComputerCorp.Серия ProSignia
    Серия Proliant
    Pentium/133
    PentiumPro/150
    WindowsNT Server 3.51, NetWare 4.1, OS/2 WarpServer, SCOOpenServer 5.0MicrosoftIIS Netscape FastTrack Server или NetWareWeb-сервер
    DigitalEquipmentCorp.EasyWebServerAlpha/166DigitalUnix 4. 0 или WindowsNT Server 3.51/td>NetscapeCommunicationsServer или PurveyorEncryptWebServer
    Internet AlphaServerAlpha/166, 233, 266DigitalUnix 4. 0NetscapeCommunicationsServer
    Web AlphaServerAlpha/166, 233, 266WindowsNT Server 3.51NetscapeCommunicationsServer
    Hewlett-PackardCo.HP 9000 D-ClassWebServerдо 12 PA-7100LC/75s или PA 7200/100sHP-UX 10.0NetscapeCommerceServer, NetscapeCommunicationsServer или ОреnMarketWebServer
    SunMicrosystemsIncNetraInternetServerUltraSPARC/ 110-167Solaris 2.5NetscapeEnterpriseServer


    Сравнение языков программирования JavaScript и Java

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


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

    Средства подготовки гипертекста и гипермедиа

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

  • Часто Web-броузеры имеют возможности просмотра и редактирования описания гипертекста на языке HTML.
    Для подготовки гипермедиа используются различные графические редакторы и конверторы, пакеты разметки карт изображений и создания анимации, специальные пакеты и аппаратные средства для создания и воспроизведения аудио- и видео-роликов.
    Особый вид гипермедиа представляют трехмерные сцены, которые описываются на языке VRML. Для их создания/редактирования и воспроизведения используются отдельные специализированные пакеты.

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

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

  • Средства Run-time включают:
  • программы просмотра и навигации (броузеры);
  • клиентские приложения и расширения;
  • программное обеспечение Web-серверов;
  • серверные приложения и расширения;
  • средства поиска информации;
  • программное обеспечение Internet-серверов;
  • средства безопасности.

  • Программы просмотра и навигации обеспечивают интерпретацию гипертекста или гипермедиа, организацию диалога, активацию и выполнение клиентских приложений и расширений, обращение к серверным приложениям с передачей входных данных. В броузер встроены интерпретаторы сценариев и мобильных кодов. Броузер может служить унифицированным интерфейсом к различным информационным ресурсам.
    Клиентские приложения имеют различную природу. Это может быть, прежде всего, гипертекст или гипермедиа. Дополнительную функциональность обеспечивают сценарии на языках JavaScript или VBScript, мобильные Java-апплеты, helper-программы (редакторы текста, процессоры электронных таблиц и другие готовые программы, активируемые в зависимости от типа файла) и клиентские расширения (ActiveX и Plug-in).
    Программное обеспечение Web-сервера осуществляет передачу гипертекста, гипермедиа и других файлов клиентам по запросам, активацию серверных приложений, связь с файл-серверами и серверами баз данных.
    Серверные приложения представляют собой загрузочные модули или сценарии для интерпретации, выполняемые на Web-сервере. Серверные расширения - библиотеки времени выполнения, к которым обращаются серверные сценарии.
    Средства поиска информации помогают найти в Internet/Intranet необходимые сведения, удовлетворяющие условиям поиска. Для этого используются как поисковые машины, так и средства управления документами с полнотекстовым индексированием.
    Программное обеспечение Internet-серверов служит для поддержки электронной почты, FTP-сервиса для передачи файлов, возможностей доступа к новостям и др.
    Средства безопасности могут быть встроены в ПО Internet-серверов или представлены в виде дополнительных компонентов: комплексов Firewall и Proxy-серверов, выполняющих фильтрацию на различных уровнях.
    Инструментальные средства разработки Internet/Intranet-приложений очень разнообразны и включают:

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


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

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

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

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

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

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

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

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

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

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

    Стеки гипертекстовых ссылок

    В язык теперь введен новый тип объектов Area. Area - это элемент контейнера MAP, который определяет client-siteimagemap. Собственно, главное достоинство такого объекта состоит в том, что гипертекстовые ссылки, которые определены в AREA стали доступны для переопределения. Они появляются в массиве обычных ссылок страницы и можно как получить значение URL, так и переопределить его. К объекту AREA нельзя обратиться по имени. Можно использовать только индекс массива гипертекстовых ссылок документа.
    В контексте стека гипертекстовых ссылок интересно рассмотреть еще одну возможность JavaScript, связанную с переходом по гипертекстовой ссылке вообще. В обычном случае параметр HREF контейнера A должен иметь какое-нибудь значение. Если, например, по событию onClick необходимо открыть новое окно и в старом сохранить отображенный документ, то его URL следует указывать в качестве значения HREF. В противном случае, в старое окно будет загружена пустая страница, если HREF=" ".
    В новой версии JavaScript введена функция void. Точнее, тип void, который означает отсутствие какого либо значения. Если необходимо выполнить некоторые действия при выборе гипертекстовой ссылки, но при этом не перегружать текущие страницы, то в параметре HREF можно указать конструкцию:
    kuku
    Таким приемом часто пользуются при программировании событий, связанных с проходом манипулятора мышь через поле гипертекстовой ссылки.

    Структура HTML-документа

    HTML-документ представляет собой иерархию элементов документа, заключенных в "теговые скобки" (рисунок 3.1). В секцию головы всегда помещается заглавие документа (не путать с именем файла), которое при просмотре HTML-страницы появляется в заголовке окна броузера. Заглавие показывает общий смысл HTML-страницы. Для определения заглавия HTML-страницы применяется теговый контейнер , например:<br> <TITLE>Моя любимая страница Голова документа
    Тело, Содержание документа

    Рис. 3.1. Теговая структура HTML-документа
    Кроме классической структуры простого гипертекстового документа, современные броузеры поддерживают кадры - не перекрывающиеся области окна броузера, в которых возможно одновременно отображать несколько документов.
    Для формирования кадров используется контейнер набора кадров FRAMESET и тега FRAME. Альтернативное содержимое задается с помощью контейнера NOFRAMES:
    Голова документа Связывание кадров c документами Часть документа только для старых броузеров
    Начальный тег FRAMESET определяет разбиение окна по строкам и столбцам, например:
    .
    Тег кадра FRAME устанавливает какой документ (атрибут SRC) первоначально выводится в кадре. Атрибут Name определяет имя целевого кадра для указания его в гиперссылках.
    Одна из распространенных компоновок кадров содержит левый узкий кадр для оглавления в виде гиперссылок и правый кадр для показа документов по этим ссылкам. Другая компоновка предлагает разбиение на верхний и нижний кадры.
    Посредством вложения контейнеров FRAMESET можно реализовать более сложные компоновки кадров, например, добавить верхний и нижний колонтитулы.

    Структура основного предложения SQL

    Основной функцией, используемой при разработке приложений, является выбор требуемых данных из базы данных в прикладную программу. В общем случае такую операцию называют запросом. Предложение запроса выглядит следующим образом:
    SELECT (distinct), <элемент(ы)> FROM <таблица(ы)> WHERE <условие отбора> GROUPBY <колонка(и)> HAVING <условие отбора> ORDERBY <упорядоченность(и)>
    Результатом запроса всегда является таблица требуемой структуры с требуемыми данными. В частном случае таблица может содержать одну колонку и одну строку, т.е. представлять собой простое значение. Результирующая таблица может иметь повторяющиеся строки, удалить которые можно, указав DISTINCT в позиции SELECT. Рассмотрим назначение позиций в структуре предложения запроса.
    SELECTопределяет, какие колонки должна иметь результирующая таблица. Символ "*" означает, что результирующая таблица должна включать в себя все колонки всех таблиц, на основе которых строится запрос. Если несколько исходных таблиц имеют одноименные колонки, то идентифицировать нужную колонку можно, указав ее полное имя, составленное из имени таблицы и имени колонки. В качестве колонки результирующего отношения может быть указано любое выражение, использующее набор стандартных функций, например, COUNT(), AVG(), SUM() и другие.
    FROMопределяет список таблиц, на основе которых строится запрос. Поскольку SQL является структурным языком, то он допускает использование вложенных SELECT-конструкций. В качестве базовой таблицы может быть указано некоторое SELECT-предложение.
    WHERE позволяет указать условие, которому должны удовлетворять значения в строках результирующего отношения. Условие может использовать проверки пустых (неопределенных) значений, проверки вхождения значения во множество значений другой таблицы.
    GROUPBY определяет список имен колонок, по одинаковым значениям которых будет выполняться группировка строк. Т. е. строки с одинаковыми значениями в указанных колонках будут представлены в результирующем отношении одной строкой. Но если в SELECT указана, например, функция AVG() или SUM(), то она применяется ко всем строкам группы.

    Свойства объекта document

    Основным объектом JavaScript является HTML-документ. Кроме методов для вывода текста на экран, этот объект содержит набор свойств, описывающих документ (см. таблицу 3.3).
    Таблица 3.3. Свойства объекта document

    Страны 1970 1980 1995
    Свойство объектаОписание
    titleЗаголовок документа, соответствует содержимому тега </td></tr> <tr><td>location</td><td>Полный адрес (URL) документа</td></tr> <tr><td>lastModified</td><td>Дата последней модификации</td></tr> <tr><td>referrer</td><td>Адрес (URL) ссылающегося документа</td></tr> <tr><td>anchors, links</td><td>Массивы ссылок в документе</td></tr> <tr><td>forms</td><td>Содержит все диалоговые формы документа</td></tr> <tr><td>cookie</td><td>Отметки состояний</td></tr> <tr><td>fgColor</td><td>Цвет текста (атрибут TEXT тега <BODY>)</td></tr> <tr><td>bgColor</td><td>Цвет фона (атрибут BGCOLOR тега <BODY>)</td></tr> <tr><td>alinkColor</td><td>Соответствует атрибуту ALINK тега <BODY></td></tr> <tr><td>linkColor</td><td>Соответствует атрибуту LINK тега <BODY></td></tr> <tr><td>vlinkColor</td><td>Соответствует атрибуту VLINK тега <BODY></td></tr> </table><br> Пример сценария, изменяющего по нажатию кнопки цвета фона документа на темно-синий, а цвета текста - на белый:<br> <SCRIPT> functionchColor() { document.bgcolor="#000080"; document.fgcolor="white"; } </SCRIPT> <FORM> <INPUTtype="button" name="btn2" value=" Смена цвета" onClick="chColor()"> </FORM><br> Язык JavaScript имеет развитые алгоритмические возможности, необходимые для написания расчетных программ. С его помощью можно написать сценарии для доступа к БД и построения диаграмм и графиков.<br><br> <h1>Tcl/Tk</h1> Пакет Tcl/Tk (ToolCommandLanguage / ToolKit) состоит из языка Tcl и Tk - средства для работы с библиотеками виджетов. Язык Tcl - это интерпретируемый язык сценариев, особенно удобный при написании пользовательских интерфейсов программ. В отличие от тяжеловесного Motif, Tcl/Tk может обходиться без C/C++.<br> Tcl разработан в SunMicrosystems, ориентирован на сетевые применения, платформно-независим (работает на всех Windows, Macintosh и Solaris 2.x) и имеет мощные механизмы защиты (тиклеты могут исполняться в безопасном окружении Safe-Tcl). Tcl/Tk будет работать в паре с Java, а не с C++. Tcl по применению расположится рядом с VisualBasic, а Tk, соответственно, рядом с ActiveX.<br> Sun выпустила семейство программ для работы с технологией Tcl/Tk. В основной пакет Tcl7.5 Tk4.1 входят две программы: оболочка командного интерпретатора SHELL и графический интерфейс разработки Wish, библиотека и документация. Наиболее популярен модуль расширения к NetscapeNavigator. Для работы он не требует пакета Tcl7.5 Tk4.1, при этом пользователь может не только исполнять тиклеты в окне NetscapeNavigator, но и встраивать Tcl-сценарии в свои Web-страницы. Мощная среда разработки графических интерфейсов SpecTcl (вместе cSpecJava) для работы требует пакет Tcl7.5 Tk4.1.<br> Редактор для гипертекстовой графики WebTkImagemapEditor для работы требует пакет Tcl7.5 Tk4.1. Компактный полнофункциональный HTTP-сервер TclWebServer целиком написан на Tcl (около 1000 строк кода), работает с CGI и использует безопасный режим SafeTcl.<br><br> <h1>Типы данных</h1> VBScript имеет только один тип данных - <b>Variant</b> - специальный тип данных, который может содержать различные виды информации, в зависимости от того, как она используется. Тип данных <b>Variant</b> существует только в VBScript. Все функции VBScript возвращают значения только типа <b>Variant</b>. Тип данных <b>Variant</b> может содержать как численную, так и текстовую информацию. <b>Variant</b> ведет себя как число, когда он используется в численном контексте, и как текст - в случае использования в текстовом контексте. Вот почему, когда Вы используете данные выглядящие как числа, VBScript интерпретирует их как числа и производит с ними соответствующие операции. Конечно же всегда можно определить числа как текстовую информацию, но для этого необходимо обрамить их кавычками. Кроме простого деления на числовую и текстовую информацию, тип данных <b>Variant</b> можно классифицировать по специальным классам числовой информации. Например, Вы можете использовать числовые данные, обозначающие дату или время. Также числовые данные имеют большой диапазон значений, начиная с булевых значений и заканчивая числами с плавающей точкой. Все эти различные классы значений содержится в типе данных <b>Variant</b> и называются подтипами. Все возможные подтипы данных <b>Variant</b> перечислены ниже в таблице 3.4.<br> Существуют специальные функции для преобразования из одного подтипа в другой, а также функция, которая позволяет узнать, к какому подтипу принадлежат данные, хранящиеся в переменной.<br><br> <h1>Традиционная схема публикации и просмотра документов</h1> Изначально технология Internet/Intranet/WWW предназначалась для облегчения доступа к информации и публикации документов (рисунок 1.1). Программа-клиент (броузер) выполняет функции интерфейса пользователя (диалоговый ввод-вывод PS и логика диалога PL) и обеспечивает доступ практически ко всем информационным ресурсам Internet/Intranet посредством HTTP-сервиса. База данных гипертекста - это часть файловой системы, которая содержит текстовые файлы в формате HTML и связанные с ними графику и другие ресурсы. Фактически, броузер является интерпретатором HTML-текста. И как типичный интерпретатор клиент в зависимости от команд разметки выполняет различные функции. В круг этих функций входит не только размещение текста на экране, но и обмен информацией с сервером по мере анализа полученного HTML-текста, что наиболее наглядно происходит при отображении встроенных графических образов. При анализе URL-спецификаций или по командам сервера клиент запускает дополнительные help-программы для работы с документами в форматах, отличных от HTML, например, GIF, JPEG, MPEG, Postscript и т.п. Кроме того, в гипертекст может быть встроен текст сценария на JavaScipt, VBScript и др., который расширяет логику диалога (PL) и обеспечивает простую прикладную обработку (BL). Броузер вызывает соответствующий интерпретатор для исполнения сценария.<br> <img src="image/interintr-01.gif" alt="Традиционная схема публикации и просмотра документов"><br> Рис. 1.1. Традиционная схема публикации и просмотра документов<br> До недавнего времени сеть Internet была "улицей с односторонним движением" - информация с Web-страниц поступала к пользователю от Web-сервера при наличии запроса. С появлением в языке HTML диалоговых свойств пользователь получил обратную связь с Web-сервером. Для обеспечения специальной обработки (поиска, карт изображений, анкетных листов, включений и т.п.) на Web-сервере может быть запущена серверная программа, которая обменивается параметрами с броузером. Обмен параметров при этом осуществляется через интерфейс CGI. В последнее время все большее распространение получает механизм согласования запускаемых программ через MIME-типы.<br><br> <h1>Удобство использования</h1> И InternetExplorer, и Navigator предоставляют комбинации клавиш и закладки (которые Explorer называет Favorites) и огромное количество способов быстро достичь нужных узлов.<br> Оба броузера сохраняют в буфере на жестком диске страницы, которые были посещены, поэтому, когда приходится возвратиться к ним в следующий раз, информация на экране появляется очень быстро. Оба броузера также сохраняют список узлов Web, к которым были обращения. Но реализация InternetExplorer лучше: в отличие от Navigator, который после выхода из программы удаляет список узлов, InternetExplorer сохраняет список между сеансами, оформляя URL как Windows 95 Shortcuts.<br> И тот, и другой броузеры позволяют отметить страницы узла, которые нужно будет посетить еще раз, и легко к ним вернуться, выбирая из выпадающего списка на панели. Но Navigator сохраняет их, позволяя инкорпорировать как "горячие" ссылки в обычном файле HTML, например, в собственные страницы Web. Можно легко изменить порядок закладок, используя интерфейс drag-and-drop, и при помощи опций меню создавать каскадные папки. Можно даже определять объединения URL, позволяющие вставить одну и ту же закладку в несколько папок.<br> При установке опции What'sNew в меню Navigator броузер автоматически входит на каждый узел, указанный в списке закладок, для того, чтобы проверить, изменилась ли там информация. InternetExplorer 3.0 также имеет аналогичные возможности.<br> У Microsoft лучше реализована система помощи. Помощь в InternetExplorer - встроенная утилита с подробным содержанием и ясным руководством. У Navigator наоборот: из одиннадцати пунктов меню Help девять требуют соединения с серверами Netscape, поэтому наводить справки в "автономном" режиме работы невозможно.<br> <b>Производительность</b><br> В том, что касается скорости доступа к узлу Web, Navigator и InternetExplorer примерно равны. Помимо высокой общей производительности, броузеры обладают большим количеством различных возможностей, сокращающих время работы с Web. Оба броузера позволяют выполнять сразу несколько задач, таких, например, как просмотр одной страницы Web во время загрузки файла из другой или одновременный просмотр двух узлов в различных окнах. Кроме того, эти броузеры обходят узкое место, возникающее при загрузке большей части информации, - графику, предлагая на выбор: воспроизводить только текст страницы Web или загрузить текст перед графикой. (В последнем случае можно выбрать горячую ссылку и попасть в следующий узел Web и не дожидаясь появления графики.)<br> Для того, чтобы дать возможность поскорее увидеть графические изображения, оба броузера поддерживают последовательный рендеринг, метод, ускоряющий загрузку, в соответствии с которым чередующиеся строки изображения выводятся в несколько этапов с постепенным увеличением разрешения. Последовательный рендеринг довольно часто позволяет получить представление об изображении до его окончательного вывода, благодаря чему можно быстро решить, оставаться на этой странице или двигаться дальше.<br><br> <h1>Управление доступом.</h1> SQL обеспечивает синхронизацию обработки базы данных различными прикладными программами, защиту данных от несанкционированного доступа.<br><br> <h1>Управление Java-апплетами</h1> Можно использовать JavaScript, чтобы управлять поведением Java-апплетов без необходимости понимания внутренней структуры апплета. Все публичные переменные и методы апплета доступны из JavaScript. Например, можно использовать HTML-кнопки, чтобы вызывать или останавливать апплеты.<br> Каждый апплет виден в JavaScript как document.appletName, где appletName - это значение атрибута NAME тега <APPLET>.<br><br> <h1>Управление Java- plug-ins</h1> Каждый plug-in в документе доступен в JavaScript как элемент в массиве embeds. Например:<br> <EMBEDSRC=myavi.aviNAME="myEmbed" WIDTH=320 HEIGHT=200><br> Если этот HTML-код определяет первый plugin в документе, он доступен следующими способами:<br> document.embeds[0] document.embeds["myEmbed"] document.myEmbed<br> Если plug-in написан с помощью Java-класса netscape.plugin.Plugin, доступны его статические переменные и методы.<br><br> <h1>Управляющие конструкции VBScript</h1> С помощью условных операторов и операторов цикла в VBScript можно управлять исполнением программ, составлять код для обработки различных ситуаций и вариантов, а также при необходимости повторно обращаться к отдельным группам операторов.<br> Условный оператор <b>If ... Then ... Else</b> оценивает условие как <b>False</b> или <b>True</b>, а затем определяет один или несколько операторов, соответствующих условию, для дальнейшего выполнения. Обычно в условном операторе используются операторы сравнения. В VBScript разрешается использовать вложенность условных операторов.<br> Если при выполнении условия нужно выполнить только один оператор, то используется однострочный условный оператор, например:<br> <SCRIPTLANGUAGE="VBScript"> SubFixDate() DimmyDate myDate = #2/13/95# IfmyDate < NowThenmyDate = Now EndSub </SCRIPT><br> В случае, когда нужно выполнить несколько операторов при выполнении условия, используется многострочный оператор <b>If ... Then ... Else</b>, например:<br> <SCRIPTLANGUAGE="VBScript"> SubAlertUser(value) Ifvalue = 0 Then AlertLabel.ForeColor = "Red" AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True EndIf EndSub </SCRIPT><br> Отметим, что поскольку в данных примерах только одно условие, то ключ <b>Else</b> не используется, а в последнем примере обязательно выражение <b>EndIf</b>, которое указывает на конец условного оператора.<br> Также оператор <b>If ... Then ... Else</b> можно использовать для определения двух блоков операторов, один из которых выполняется, когда условие верно, а другой - в противном случае. Такой вариант показан ниже:<br> <SCRIPTLANGUAGE="VBScript"> SubAlertUser(value) Ifvalue = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True Else AlertLabel.Forecolor = vbBlack AlertLabel.Font.Bold = False AlertLabel.Font.Italic = False EndIf EndSub </SCRIPT><br> Для повторения группы операторов в VBScript используются циклы. Существуют следующие операторы цикла: <br> <li><b>Do ... Loop</b>: повторяет операторы пока условие верно или до тех пор, когда условие станет верным;</li> <li><b>While ... Wend</b>: повторяет операторы пока условие верно;</li> <li><b>For ... Next</b>: используется счетчик для определения числа повторений цикла.</li> <br> <br> Для проверки условия в операторе цикла <b>Do ... Loop</b> используются два ключевых слова <b>While</b> и <b>Until</b>. Ключевое слово <b>While</b> можно поставить перед входом в цикл (как показано в первом примере) или в конце цикла (как показано во втором примере). Отличие заключается в том, что в первом случае цикл начнет выполняться только при выполнении условия, а во втором случае операторы цикла сначала выполняться один раз, и только потом произойдет проверка условия. Цикл выполняется, пока выполняется условие.<br><br> <SCRIPTLANGUAGE="VBScript"> SubChkFirstWhile() Dimcounter, myNum counter = 0 myNum = 20 DoWhilemyNum > 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "Theloopmade " & counter & " repetitions." EndSub<br><br> SubChkLastWhile() Dimcounter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 LoopWhilemyNum > 10 MsgBox "Theloopmade " & counter & " repetitions." EndSub </SCRIPT><br><br> Ключевое слово <b>Until</b> также можно ставить в начале и в конце цикла. Отличие от цикла с ключевым словом <b>While</b> заключается в том, что в данном случае цикл выполняется, пока условие <b>неверно</b>. Примеры использования ключевого слова <b>Until</b> приведены ниже.<br><br> <SCRIPTLANGUAGE="VBScript"> SubChkFirstUntil() Dimcounter, myNum counter = 0 myNum = 20 DoUntilmyNum = 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "Theloopmade " & counter & " repetitions." EndSub<br><br> SubChkLastUntil() Dimcounter, myNum counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 LoopUntilmyNum = 10 MsgBox "Theloopmade " & counter & " repetitions." EndSub </SCRIPT><br><br> Кроме того, при необходимости можно принудительно заканчивать выполнение цикла <b>Do ... Loop</b>. Для этого используется оператор <b>ExitDo</b>. Например, может потребоваться выход из цикла при выполнении некоторого условия. Тогда в тело цикла нужно включить условный оператор, который будет проверять выполнение этого условия. Если условие выполнится, то произойдет выполнение оператора <b>ExitDo,</b> и программа закончит выполнение цикла, а в противном случае цикл будет выполняться как обычно. Пример использования оператора <b>ExitDo</b> показан ниже:<br><br> <br> <SCRIPTLANGUAGE="VB"> SubExitExample() Dimcounter, myNum counter = 0 myNum = 9 DoUntilmyNum = 10 myNum = myNum - 1 counter = counter + 1 IfmyNum < 10 ThenExitDo Loop MsgBox "Theloopmade " & counter & " repetitions." EndSub </SCRIPT><br><br> Оператор цикла <b>While ... Wend</b> предназначен для тех, кто уже хорошо знает VBScript. Кроме того, поскольку этот оператор не имеет достаточной гибкости при использовании, то рекомендуется вместо него использовать оператор <b>Do ... Loop</b>.<br><br> Оператор цикла <b>For ... Next</b> используется для повторения группы операторов заданное количество раз. Для повторения выполнения операторов используется переменная-счетчик, чье значение каждый раз увеличивается или уменьшается после каждого выполнения цикла. Например, следующая процедура MyProc выполняется 50 раз. Выражение <b>For</b> определяет переменную-счетчик х, а также ее начальное и конечное значения. Выражение <b>Next</b> увеличивает счетчик на 1.<br><br> <SCRIPTLANGUAGE="VBScript"> SubDoMyProc50Times() Dimx Forx = 1 To 50 MyProc Next EndSub </SCRIPT><br><br> Величину шага, на который увеличивается или уменьшается счетчик, можно задавать самому. Для этого используется ключевое слово <b>Step</b>. Например, в следующем примере счетчик увеличивается на 2 после каждого выполнения цикла:<br><br> <SCRIPTLANGUAGE="VBScript"> SubTwosTotal() Dimj, total Forj = 2 To 10 Step 2 total = total + j Next MsgBox "Thetotalis " & total EndSub </SCRIPT><br><br> Для уменьшения счетчика нужно указать отрицательное значение шага, Только нужно помнить, что в этом случае конечное значение счетчика должно быть меньше начального. Для принудительного выхода из цикла <b>For ... Next</b> используется оператор <b>ExitFor</b>.<br><br> <h1>Узлы</h1> Все 36 узлов в VRML делятся на три категории: формы, свойства и группы. Первые определяют геометрию сцены, вторые задают условия визуализации первых, а третьи используются для объединения нескольких узлов в одно целое.<br> В категорию форм входят следующие узлы: AsciiText, Cone, Cube, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet и Sphere.<br> В категорию свойств: Coordinate3, FontStyle, Info, LOD, Material, MaterialBinding, Normal, NormalBinding, Texture2, Texture2Transform, TextureCoordinate2, ShapeHints, MatrixTransform, Rotation, Scale, Transform, Translation, OrthographicCamera, PerspectiveCamera, DirectionalLight, PointLight, SpotLight.<br> Узлы, входящие в категорию "группа" - это: Group, Separator, Switch, TransformSeparator, WWWanchor. Отдельно различается узел WWWinline, не входящий ни в одну из категорий.<br> Кроме задания геометрии объектов, их свойств и характеристик материала, в стандарте с помощью различных типов камер можно управлять положением наблюдателя. Ортогональная камера определяет параллельную проекцию сцены, без учета перспективы которой можно управлять, если выбрать PerspectiveCamera. По умолчанию камеры размещаются в точке с координатами (0,0,1) и направлены вдоль отрицательного направления оси Z. Программы, используемые для просмотра файлов VRML, позволяют изменять положение камеры, предоставляя пользователю возможность свободно перемещаться внутри виртуального пространства. Порядок работы с потомками задается в узле Switch, определяющем, кто из потомков будет иметь заданные родителем свойства. Расширенные возможности работы с текстурами являются одним из достижений стандарта. Кроме определения текстуры в поле Texture2, либо заданной в виде локального шаблона, либо считанной по URL из удаленного сервера, можно задавать любые преобразования и местоположение текстуры. Узел группы WWWAnchor загружает новую сцену в программу просмотра файла VRML после выбора очередного потомка. Имя сцены задается обычно в форме URL. Узел WWWInline считывает потомка из любого места WWW и задерживает его визуализацию до особого распоряжения, в качестве которого может быть, например, завершение процесса установки параметров.<br><br> <h1>Виртуальные Web-серверы</h1> Механизм виртуальных серверов позволяет иметь несколько имен доменов или адресов на одном физическом устройстве. Это удобно для поставщиков услуг Internet, обслуживающих информационные центры Web более, чем одной компании, и для тех, кто обслуживает несколько подразделенческих узлов в интрасети.<br> Обычно серверу назначается несколько IP-адресов, по одному для каждого домена, а затем каждому домену ставят в соответствие собственный каталог документов. Такой возможностью располагают все рассмотренные продукты, за исключением NetWareWebServer и InternetConnectionSecureServer фирмы IBM. Компания Netscape предлагает так называемые "программные виртуальные серверы" (softwarevirtualservers), где информация из заголовка запроса HTTP, используется для отыскания каталога с нужными содержательными материалами.<br> Различают два типа виртуальных серверов: software-серверы и hardware-серверы. В первом случае для данного сервера определяется несколько доменных имен в описании прямой зоны домена. Эти имена закрепляются за различными деревьями документов, для которых устанавливаются свои правила организации доступа. Доменное имя необходимо в обязательном порядке прописать в базе данных сервера доменных имен, который поддерживает текущую зону. Если этого не сделать, то никакие виртуальные серверы работать не будут. Головной сервер в этом случае будет обращаться к своей корневой странице. При этом, однако, администрации сервера не удастся скрыть тот факт, что реально несколько Website поддерживаются одним и тем же сервером.<br> Для того, чтобы иллюзия была полной, кроме доменного имени необходимо назначить серверу еще и уникальный IP-адрес. Для этой цели служит механизм построения hardware-серверов. В этом случае запускается механизм, который для назначения нескольких IP-адресов использует команду ifconfig. Для каждого из этих адресов устанавливается доменное имя. После этого данное доменное имя можно использовать в директивах VirtualHost.<br><br> <h1>VisualBasicScript</h1> В настоящий момент во всем мире программисты широко используют для быстрой разработки своих приложений язык VisualBasic, который не требует применения разнообразных SDK и нескольких месяцев на его изучение, как это происходит с языком С++.<br> Так же, как VisualBasic облегчает разработку приложений для Windows, а VisualBasicforApplication (VBA) делает то же для приложений, базирующихся на MicrosoftOffice, VisualBasicScript (VBScript), дает в руки тех, кто создает Internet-приложения, аналогичный по мощности инструмент.<br> VBScript является простым подмножеством VisualBasicforApplication и, следовательно, полностью с ним совместим. Все эти три продукта можно рассматривать следующим образом: VisualBasic - полная интегрированная среда разработки, VisualBasicforApplication - инструмент для создания приложений, работающих в рамках MicrosoftOffice, VBScript - инструмент для написания приложений, функционирующих в программах, работающих в Internet.<br> VBScript позволяет разрабатывать клиентские приложения, автоматически загружаемые вместе с Web-страницей. Затем скрипты могут выполняться на клиентской ЭВМ как обычные программы. VBScript был разработан для применения в корпоративных Интранет-сетях как средство для создания приложений клиент-сервер. VBScript поддерживается броузером InternetExplorer, начиная с версии 3.0 на платформах Macintosh и Windows.<br><br> <h1>Визуальные средства программирования IntraBuilder</h1> Корпорация BorlandInternational анонсировала семейство инструментальных средств для построения Web-серверов, обеспечивающих работу с базами данных. В него входят следующие продукты: IntraBuilder, IntraBuilderProfessional и IntraBuilderClient/Server.<br> Благодаря использованию технологии two-way-tools, пользователь средней квалификации может быстро конструировать интерфейсы к базам данных в виде динамических HTML-страниц.<br> При применении технологии Intranet у конечного пользователя работает лишь поддерживающий язык JavaScript броузер Internet. Программа на языке JavaScript, встроенная в текст интерпретируемого броузером InternetHTML-файла, передает параметризованный URL на Web-сервер, поддерживающий один из стандартов - NSAPI, ISAPI или CGI - и выполняющийся в среде WindowsNT или Windows 95. Web-сервер организует обработку запроса с помощью сервера компании Borland, который состоит из модуля IntraBroker, преобразующего закодированные в любом из перечисленных выше стандартов запросы в понятную модулям IntraServer технологию BorlandDataBaseEngine (BDE). В случае стандартных и профессиональных версий IntraBuilder он работает на той же машине, что и Web-сервер. Профессиональная версия отличается от стандартной тем, что одновременно могут работать несколько экземпляров модуля IntraServer, к тому же в ее комплект поставки входит промежуточное ПО SQLLinks для MSSQLServer с многопользовательской лицензией. Версия клиент/сервер еще мощнее. Она позволяет запускать модули IntraServer на нескольких компьютерах и включает ПО SQLLinks для таких СУБД, как Oracle, Informix, Sybase и IBMDB2. Несмотря на то, что стандартная версия ориентирована в первую очередь на использование локальных баз данных (например Paradox, dBase или Access), благодаря способности BDE работать с источниками данных, поддерживающими стандарт ODBC, даже в этой версии можно пользоваться более мощными СУБД, рассчитанными на функционирование в среде клиент/сервер. BDE генерирует SQL-запрос, который обрабатывается соотвествующей СУБД. Далее результат выполнения запроса преобразуется в страницу HTML с включением JavaScript, которая передается по протоколу HTTP на узел клиента, где и отображается с помощью броузеров NetscapeNavigator или MicrosoftExplorer.<br> Для построения HTML с формами и отчетами IntraBuilder предлагает богатую палитру визуальных компонентов. При этом за счет технологии двунаправленной разработки создатель интерфейса может свободно переключаться между режимами визуального конструирования и ручного кодирования на языке JavaScript. Продукт использует JavaScript версии 1.1, которая обогащена средствами одноуровневого наследования и аппаратом исключений. JavaScript1.1 допускает взаимодействие с активными элементами, выполненными в других стандартах: Netscapeplugin и Javaapplets. IntraBuilder включает свыше 20 визуальных конструкторов свойств (visualPropertyBuilder), обеспечивающих пользователя полным набором средств редактирования параметров объектов, в том числе и обработчики событий. В качестве компонентов можно использовать элементы ActiveX и Javaapplets.<br><br> <h1>Включение названия</h1> Базовым элементом таблицы является ее название, то есть короткое описание (одно - два предложения), показывающее читателю назначение таблицы. Для определения названия используется тег <CAPTION>:<br> <CAPTIONALIGN=TOP BOTTOM>Название (верх низ)</CAPTION><br> где TOP - название вверху таблицы, BOTTOM - название внизу таблицы.<br><br> <h1>Включение сценариев в гипертекст</h1> Для оформления сценария JavaScript в теле документа используются специальные теги языка HTML. Сценарий встраивается в документ с помощью тега <SCRIPT>. Сценарий может содержать произвольное количество операторов языка JavaScript внутри тегов <SCRIPT> </SCRIPT>. Часто текст сценария помещают в комментарии, чтобы исключить его отображение на старых броузерах, не поддерживающих JavaScript. Пример оформления простого сценария:<br> <HTML> <BODY> <SCRIPTLANGUAGE="JavaScript"> <!- Пример простого сценария document.write("HellofromJavaSript") // -> </SCRIPT> </BODY> </HTML><br> С помощью метода document.writeln можно выводить текст с использованием тегов форматирования <I>, <B>, <U>, <Hn> и др. Это позволяет динамически формировать гипертекст.<br> Используя эти возможности, легко вывести на экран графическое изображение из указанного файла:<br> <SCRIPT> document.writeln("<IMGSRC=\"logo.gif\">"); </SCRIPT> <br> <br> Программа на VBScript вставляется в HTML-код с помощью контейнера <b><SCRIPT></b>, т.е. теги <b><SCRIPT></b> и <b></SCRIPT></b> обрамляют код на VBScript. Например, процедура проверки даты поставки может выглядеть следующим образом:<br> <SCRIPTLANGUAGE="VBScript"> <!-- FunctionCanDeliver(Dt) CanDeliver = (Cdate(Dt) - Now()) > 2 EndFunction --> </SCRIPT><br> Отметим, что атрибут <b>LANGUAGE</b> определяет язык, на котором написан скрипт. Язык необходимо определить, поскольку начиная с версии 3.0 броузер MicrosoftInternetExplorer поддерживает и другие скриптовые языки, например, JavaScript. Также из примера видно, что функция встроена в тег комментария (<!-- ... -->). Это сделано для того, чтобы броузеры, не понимающие VBScript (например, NetscapeNavigator), не отображали текст скрипта на экране. Далее в примерах тег комментария указываться не будет. Вставлять контейнер <b><SCRIPT></b> можно в любом месте HTML-страницы - в разделе HEAD или в разделе BODY.<br><br> <h1>Вопросы безопасности</h1> Для обеспечения безопасности защиты информации Web-серверы предоставляют следующие возможности: <br> <li>виртуальные серверы для изоляции Web-структур друг от друга;</li> <li>средства санкционирования доступа к серверам;</li> <li>защищенный протокол передачи информации SSL с использованием сертификатов;</li> <li>комплексы защиты сетей Firewall и Proxy-серверы.</li> <br> Кроме того, возможно дополнительно использовать механизмы защиты файл-серверов в сети.<br><br> <h1>Вопросы кириллизации</h1> Кириллизация Internet/Intranet-приложений затрагивает общение пользователей с различными ресурсами Web, E-mail, FTP и др. Поэтому вопросы кириллизации должны решаться интегрированно при настройке сервисов.<br> Настройка Internet-сервисов выполняется путем выбора таблицы кодировки и установки соответствующих фонтов шрифтов. Часто решение проблемы кириллизации сводится к хранению текстов в нескольких кодировках, однако это нехарактерно для Intranet.<br><br> <h1>Встроенные объекты</h1> Как было сказано выше существует пять встроенных объектов, используемых в программах сценариев: Application, Request, Response, Server иSession.<br> Объект Application служит для обмена информацией между пользователями данного приложения. Например, можно реализовать простой счетчик обращений к серверу:<br> <% Application.Lock Application ("HitCount") = Application("HitCount") + 1 Application.Unlock %><br> Методы Lock и Unlock используются для блокирования изменений свойств объекта и для отмены этого запрета соответственно. Также объект <b>Application</b> может реагировать на два события - OnStart и OnEnd. Эти методы используются путем написания соответствующего кода в глобальном файле GLOBAL.ASA. Об этом будет рассказано в разделе "Глобальный файл".<br> Рассмотрим использование объекта <b>Request</b> на примере традиционной задачи - формы, заполняемой пользователем. Для начала необходимо создать форму. В качестве значения атрибута ACTION тега <FORM> нужно указать имя ASP-файла, например, formdemo.asp, и установить метод передачи данных POST. Пусть форма состоит из четырех текстовых полей ввода с именами UserName, UserAddress, UserEMail и UserComm. Пользователь заполняет форму и нажатием кнопки Submit отсылает ее на сервер. Что происходит на сервере? Получая команду SUBMIT, объект <b>Request</b> готов к обработке полей формы, то есть к отображению содержимого полей формы, сохранению их в файле или базе данных. Для отображения полей записи файл formdemo.asp может выглядеть следующим образом:<br> <HTML> <BODYBGCOLOR=greenTEXT=white> <%IfRequest.Form("UserName")= "" Then %> <H4> Форма заполнена некорректно. Для исправления нажмите кнопку Back. </H4> <%Else%> Получена следующая информация:<BR> <PFONTSIZE=3> Имя: <% =Request.Form("UserName") %><BR> Адрес: <% =Request.Form("UserAddress") %><BR> E-Mail: <% =Request.Form("UserEMail") %><BR> Комментарии:<% =Request.Form("UserComm") %><BR> <br> <%EndIf%> </BODY> </HTML><br> <br> Существует ряд других методов объекта <b>Request</b>, на которые можно обратить внимание. Например с помощью коллекции ServerVariables можно получать доступ к серверным переменным:<br><br> 'адрес, с которого пришел запрос <%Response.WriteRequest.ServerVariables("REMOTE_ADDR")%> 'поддерживаемые клиентом языки <%Response.WriteRequest.ServerVariables("HTTP_ACCEPT_LANGUAGE")%><br><br> И еще один полезный пример. В нем показано, как можно получить все посланные пользователем значения полей формы:<br><br> <% ForEachxInRequest.Form %> Request.Form(<% =x %> = <% =Request.Form(x) %> <BR> <% Nextx %><br><br> Объект <b>Response</b>используется для посылки информации пользователю. Метод Redirect этого объекта служит для переключения на другую страницу, как локальную, так и удаленную, адрес которой задается в формате URL:<br><br> <% Response.Redirect ("URL") %><br><br> Метод Write является одним из базовых методов объекта <b>Response</b>. С его помощью информация посылается непосредственно клиенту. Например, если мы хотим вывести текущие дату и время, можно использовать следующий код:<br><br> <% Response.Write "Локальное время: <B>" & Now & "</B> %><br><br> Объект <b>Server</b>имеет четыре метода: CreateObject, HTMLEncode, MapPath и URLEncode. Метод CreateObject служит для создания экземпляров серверных компонентов. Примеры использования рассматриваются ниже. Метод HTMLEncode используется для вывода на экран тегов языка HTML. Например, вызов этого метода:<br><br> <% Response.WriteServer.HTMLEncode("Для выделения текста используются теги <B> и </B>") %><br><br> приведет к появлению следующего текста в окне броузера:<br><br> Для выделения текста используются теги <B> и </B><br><br> При этом, если посмотреть на исходный текст, то можно увидеть, что вместо тегов используются специальные символы:<br><br> Для выделения текста используются теги <B> и </Bgt;<br><br> Метод MapPath предназначен для преобразования относительных и виртуальных маршрутов в каталоги на сервере. Вот пример использования этого метода:<br><br> <br> LogFile=Server.MapPath ("/Login") & "\input\logfile.txt" SetOutStreamFileObject.CreаteTextFile (Logfile, True, False)<br><br> Метод URLEncode предназначен для преобразования адресов в формате URL. Например, вызов этого метода:<br><br> <% Response.WriteServer.URLEncode("www.cpress.ru") %><br><br> приведет к появлению в окне броузера следующей строчки:<br><br> www%2Ecpress%2Eru<br><br> С помощью свойства ScriptTimeout объекта <b>Server</b> можно задать время выполнения сценария.<br><br> Объект <b>Session</b> используется для хранения переменных в течение одной сессии работы с сервером. Методы для обработки событий OnStart и OnEnd помещаются в глобальный файл GLOBAL.ASA. Соответствующие примеры использования указаны в разделе "Глобальный файл".<br><br> <b>Глобальный файл</b><br><br> Глобальный файл GLOBAL.ASA располагается в корневом каталоге сервера (виртуальном корневом каталоге). Отметим, что корневой каталог сервера доступен из всех подкаталогов, и, таким образом, файл GLOBAL.ASA доступен из всех ASP-страниц. При необходимости он располагается и в корневом каталоге приложения, выполняемого на сервере, но этот каталог также должен быть объявлен как виртуальный корневой каталог. Как мы уже говорили, в файле GLOBAL.ASA могут быть использованы два встроенных объекта:Application и Session. С помощью объекта Application можно создавать глобальные переменные для всех ASP-страниц, а с помощью объекта Session можно создавать переменные, "видимые" в рамках одной сессии. В файле GLOBAL.ASA также можно открывать сеансы связи с базами данных.<br><br> Например, для использования методов OnStartиOnEnd объекта Application можно написать следующий код:<br><br> <SCRIPTLANGUAGE=VBScriptRUNAT=Server> SubApplication_OnStart 'эта подпрограмма выполняется, когда на узел приходит первый пользователь ENDSUB ... SubApplication_OnEnd 'эта подпрограмма выполняется при выключении сервера или изменении содержимого файла global.asa ENDSUB </SCRIPT><br><br> Обратите внимание на расширенный синтаксис тега <SCRIPT>. Атрибут RUNAT указывает на то, что данный скрипт выполняется на сервере.<br><br> Пример использования тех же методов, но объекта Session выглядит очень похоже:<br><br> <br> <SCRIPTLANGUAGE=VBScriptRUNAT=Server> SubSession_OnStart 'эта подпрограмма выполняется в начале сессии ENDSUB ... SubSession_OnEnd 'эта подпрограмма выполняется в конце сессии ENDSUB </SCRIPT><br><br> <b>Серверные компоненты</b><br><br> AdRotator, BrowserCapabilities, DatabaseAccess, ContentLinking и FileAccess.<br><br> Компонент <b>AdRotator</b> используется для отображения и смены рекламы (изображения и видеороликов) на сервере. Каждый раз, когда пользователь попадает на страницу, на которой используется этот компонент, он видит новую информацию - обновление происходит по сценарию, заданному в специальном файле. Причем каждая реклама имеет свою ссылку на страницу, соответствующую ей. Имеется возможность отслеживать, сколько пользователей обратились к той или иной рекламе. Пример использования компонента <b>AdRotator</b>:<br><br> <CENTER> Добро пожаловать на наш сервер! <BR> <% SetAd = ServerCreateObject("MSWC.Adrotator") %> <% =Ad.GetAdvertisement("advert.txt") %> </CENTER><br><br> Файл-сценарий (в примере advert.txt) является обычным текстовым файлом, в котором описываются правила обновления графической информации. Содержимое файла-сценария advert.txt, например, может выглядит следующим образом:<br><br> width 460 height 60 border 1 * advert1.gif http://www.cpress.ru/subscriptions/ Subscribeto "ComputerPress"! 20 advert2.gif http://www.cpress.ru/books/ Readourbooks 20 advert3.gif http://www.microsoft.com UselegalMicrosoftsoftware! 30<br><br> В начале файла-сценария указываются размеры области, в которой будет появляться графическая информация. Затем, по порядку дается описание каждого графического элемента, состоящее из четырех пунктов: имя графического файла, URL-адрес страницы, которая будет загружаться при щелчке на изображении, текстовое описание ссылки и вероятность появления данного изображения.<br><br> С помощью компонента <b>BrowserCapabilities</b> можно получать различную информацию о клиентском броузере. Приведем несколько примеров использования этого компонента. Например, мы можем узнать тип и версию клиентского броузера:<br><br> <br> <% Setbc = Server.CreateObject("MSWC.BrowserType") %> Приветствуем на сервере пользователя броузера <B><% =bc.Browser %> версии <% =bc.Version %> </B>!<br><br> Затем можно определить, поддерживает ли клиентский броузер фреймы. На сервере может быть два набора страниц - с фреймами и без них. Определив, умеет ли клиентский броузер отображать фреймы или нет, можно загружать соответствующий набор страниц:<br><br> <% Setbc = Server.CreadteObject("MSWC.BrowserType" %> <% If (bc.Frames = TRUE) Then Response.Write "Есть поддержка фреймов!" Else Response.Write "Нет поддержки фреймов!" EndIf %><br><br> Также перед отправкой страницы, содержащей программу на каком-либо скриптовом языке, полезно было бы определить, поддерживает ли броузер этот скриптовый язык. Например, для проверки поддержки языка VBScript можно написать такой код:<br><br> <% Setbc = Server.CreateObject("MSWC.BrowserType") %> <% If (bc.VBScript = TRUE) Then Response.Write "Есть поддержка VBScript" Else Response.Write "Нет поддержки VBScript" EndIf %><br><br> Компонент <b>DatabaseAccess</b> обеспечивает доступ к данным, хранящимся в базах данных. Рассмотрение этого компонента вынесено в отдельный раздел.<br><br> Компонент <b>ContentLinking</b> применяется для управления списком URL-адресов, которые являются ссылками на страницы, расположенные на Web-узле. С помощью этого компонента можно создавать таблицы содержания для всего Web-узла, что весьма актуально для онлайновых публикаций и списков статей различных электронных конференций. Кроме того, компонент <b>ContentLinking</b> может использоваться для изменения порядка следования страниц.<br><br> Компонент <b>FileAccess</b> использует объекты FileSystemObject и TextStream и обеспечивает доступ к хранимым на сервере файлам. Вот пример использования этого компонента:<br><br> <% 'создадим файл SetFileObject = CreateObject("Scripting.FileSystemObject") SetFile = FileObject.CreateTextFile("user.txt", True) 'запишем данные в файл File.Writeline(Now()) File.Writeln(Request.ServerVariables("REMOTE_ADDR")) File.Writeln(Request.ServerVariables("REMOTE_HOST")) 'закроем файл File.Close %><br><br> <h1>Выравнивание изображений</h1> Если вставить изображение внутри обычного текста HTML-страницы, то броузер выведет изображение и текст в одной строке. Иногда при этом могут возникать проблемы, связанные с высокими изображениями, так как низ изображения выравнивается с низом строки. Для того, чтобы текст появился вверху изображения или даже в его середине, можно воспользоваться атрибутом ALIGN тега <IMG>. Общий формат выглядит следующим образом:<br> <IMGSRC='имя_файла' ALIGN=TOP MIDDLE BOTTOM LEFT RIGHT ><br> Здесь вертикальная черта показывает возможность выбора указания между TOP (верх), MIDDLE (середина) или BOTTOM (низ) для нужного выравнивания.<br><br> <h1>Выравнивание внутри таблицы</h1> Стандартным выравниванием для клеток таблицы является выравнивание влево для клеток с данными и центрирование для клеток надписей.<br> Кроме этого, внутри тегов <TD> и <TH> можно осуществлять выравнивание с помощью атрибута ALIGN. При этом, можно выравнивать текст влево (LEFT), вправо (RIGHT) или центрировать (CENTER). Формат записи этих атрибутов выглядит следующим образом:<br> <TDALIGN=LEFT RIGHT CENTER> <THALIGN=LEFT RIGHT CENTER><br> Кроме горизонтального выравнивания в клетках таблиц можно применять и вертикальное выравнивание текста. В этом случае в тегах <TD> и <TH> применяется атрибут VALIGN. Выравнивание по вертикали может быть выравниванием по верху (TOP), выравниванием по низу (BOTTOM) и выравниванием по середине (MIDDLE):<br> <TDBOTTOM MIDDLE> <THBOTTOM MIDDLE> <br><br> <h1>Взаимодействие апплетов Java и языков сценариев</h1> Механизм LiveConnect (входит в поставку Netscape начиная с версии 3.0) обеспечивает 3 способа взаимодействия JavaScript и Java: <br> <li>непосредственное обращение к методам Java,</li> <li>управление Java-апплетами,</li> <li>управление Java- plug-ins.</li> <br><br> <h1>Взаимодействие FoxPro с Web-броузерами</h1> Специальное расширение InternetSearchWizard для среды разработки клиент/серверных приложений VisualFoxPro компании Microsoft позволяет легко создавать прикладные программы, к которым могут обращаться по сети Internet клиенты системы Web, функционирующие на платформах PC, AppleMacintosh и Unix.<br> Модуль InternetWizard для VisualFoxPro шаг за шагом проводит программистов через процесс описания интерактивного поведения создаваемых приложений, а затем автоматически генерирует сценарий, поддерживающий интерфейс CGI, необходимый для обработки Web-запросов на сервере FoxPro. Построенные таким образом приложения работают полностью на сервере, воспринимаемом удаленным Web-броузером так же, как и любой другой Web-сервер. При этом "на лету" генерируются страницы формата HTML, представляющие собой формы, заполнив которые пользователь может запросить ту или иную информацию.<br> Затем сценарий CGI, сгенерированный программой InternetSearchWizard, преобразует запросы, введенные пользователем на HTML-странице, в последовательность операторов на языке SQL, которые и передаются в СУБД FoxPro. БД возвращает данные обработчику сценариев CGI, а он посылает их обратно пользователю в форме HTML-страницы или в виде DBF-файла.<br> Этот процесс предназначен для конечного пользователя, которому для получения данных через Internet из удаленной БД FoxPro не нужно знать, как строить SQL-операторы или HTML-страницы.<br><br> <h1>Взаимодействие Internet/Intranet-приложений с СУБД</h1> С появлением технологии баз данных было накоплено больше информации, чем за всю предыдущую историю. Однако, доступ пользователя к базам данных ограничен по целому ряду причин: <br> <li>для получения информации необходим физический доступ к соответствующей СУБД;</li> <li>пользователь должен быть в курсе модели данных, знать схему базы данных;</li> <li>требуется умение пользоваться языком запросов к БД.</li> <br> Каковы возможности взаимодействия Web-приложений и СУБД? С одной стороны, технологии Internet/Intranet имеют удобный язык разработки распределенных гипертекстовых документов, включая простые, удобные, развитые и унифицированные интерфейсы для доступа к информации. С другой стороны - наличие большого количества ценных баз данных, управляемых разнородными СУБД, а также стремление увеличить доступность данных для корпоративных пользователей. Возникает естественное желание скрестить эти две технологии и обеспечить доступ к базам данных в интерфейсе Web. Еще два года назад существовали только идеи такого скрещивания и не очень тщательно разработанные подходы к реализации. На сегодня имеется два класса механизмов такого взаимодействия: 1) обеспечивающие доступ к БД (по запросу клиента) на стороне Web-сервера; 2)работающие непосредственно на стороне клиента.<br><br> <h1>Взаимодействие электронной почты и пакетов коллективной работы с Internet/Intranet</h1> Для построения офисных Intranet-приложений на основе электронной почты и пакетов коллективной (групповой) работы необходимо: <br> <li>обеспечить взаимодействие броузера с почтой по протоколам SMTP и POP3;</li> <li>шлюзование Internet-почты и локальных почтовых систем;</li> <li>предоставить Web-интерфейс для доступа пользователей пакетов групповой работы к коллективной информации;</li> <li>совмещение возможностей серверов групповой работы и Web-серверов.</li> <br> <b>5.2.1. Взаимодействие Web-броузера с почтой по протоколам SMTP и POP3</b><br> Электронная почта - один из важнейших информационных ресурсов. Она является самым массовым средством электронных коммуникаций. Каждый пользователь Internet имеет свой почтовый ящик в сети. Через почту можно получить доступ к информационным ресурсам других сетей. Открытые протоколы, такие как SimpleMailTransferProtocol (SMTP) для передачи почтовых отправлений и PostOfficeProtocol 3 (POP3) и InteractiveMailAccessProtocol 4 (IMAP4) для их приема, легко реализуются и не требуют приобретения лицензий на использование. Пользователи могут выбирать из богатого ассортимента клиентских приложений электронной почты, в том числе и распространяемых бесплатно. Для отправки почты используется протокол SMTP, а для получения - POP3.<br> Современное клиентское приложение для работы с электронной почтой должно обладать широкими возможностями администрирования почтовых ящиков, включая средства копирования, сортировки и редактирования сообщений. Кроме того, нужны механизмы фильтрации, с помощью которых можно организовать ту или иную обработку сообщений на основании наличия в их заголовках или основном тексте элементов, отвечающих заданным условиям. Совершенно необходима возможность настройки параметров присоединения двоичных файлов по протоколу MIME (MultimediaInternetMailExtensions). Еще одним стандартным компонентом такой программы является встроенная адресная книга.<br> Бланки, позволяющие повторно использовать стандартные формы почтовых отправлений, в клиентских приложениях электронной почты столь же необходимы, как и в текстовых процессорах. Распознавание встроенных Web-ссылок, наличие средств контроля орфографии и настройки пользовательского интерфейса тоже занимают не последнее место.<br> Для пользователей наибольший интерес представляют язык описания сценариев и технология программных компонентов ActiveX, на которой основан встроенный в систему Web-броузер. Пользоваться встроенным Web-броузером очень удобно - он отлично справляется с HTML-документами.<br> Функции POP встраиваются в почтовые серверы и броузеры. Исторически сложилось так, что почтовым серверам, основанным на протоколе PostOfficeProtocol уделялось мало внимания, несмотря на сравнительную простоту в реализации. Однако теперь рынок, порожденный Internet, получил такое развитие, что его не могут игнорировать. Такая компания, как Software.com, располагающая великолепным POP3-сервером Post.Office для платформ Windows NT и Unix, в настоящее время решает проблему удаленного управления этим сервером через Web-броузер.<br> После клиентских программ для работы с электронной почтой Web-броузеры являются самым популярным видом приложений для настольных ПК. Неудивительно, что многие компании пытаются интегрировать их. Первым и наиболее удачным примером таких усилий стало ПО NetscapeNavigator версий 2.x. В него встроена клиентская поддержка POP3 и средство считывания из сети новостей, основанное на протоколе NetworkNewsTransferProtocol. В Navigator 3.0 эти функции остались почти без изменения и лишь немного были усовершенствованы. Корпорация Microsoft предлагает самостоятельное, хотя и тесно интегрированное с InternetExplorer 3.0, клиентское приложение POP3 со средством чтения новостей.<br> В MicrosoftExchangeServer реализованы поддержка POP3-клиентов и доступ через интрасети, так что выход в Internet можно организовать с помощью практически любого стандартного средства. Кроме того, ExchangeServer оснащен SMTP-шлюзом для отправки и получения корреспонденции электронной почты по каналам Internet.<br> Служба взаимодействия с Web включает в себя средства интеграции ExchangeServer с ПО Web-сервера, таким, например, как MicrosoftInternetInformationServer (IIS).<br> Служба взаимодействия с Web позволяет организовывать как открытый, так и защищенный доступ. Обращение к общедоступным папкам, в которых хранится электронная почтовая корреспонденция, если в ее защите нет необходимости, можно разрешить и для анонимных посетителей. Благодаря возможности включения некоторых общедоступных папок в сферу действия средств защиты на индивидуальной основе, легко сделать одни из них доступными по Internet любым пользователям, другие же - только уполномоченным.<br><br> <h1>Взаимодействие Web-клиента с другими серверами</h1> В настоящее время броузеры WWW помимо Web-серверов (через HTTP) могут взаимодействовать с различными типами серверов с использованием протоколов FTP, gopher, mailto, news, nntp, telnet, wais, file (таблица 1.1, рисунок 1.4). В состав URL входит информация о методе доступа, требующаяся броузеру WWW, чтобы использовать любой из этих протоколов.<br> Таблица 1.1 Схемы доступа URL<br> <table border=1><br> <tr><td><b>Схема доступа</b></td><td><b>Описание доступа</b></td></tr> <tr><td>http</td><td>Протокол передачи гипертекста</td></tr> <tr><td>ftp</td><td>Протокол передачи файлов</td></tr> <tr><td>gopher</td><td>Протокол Gopher</td></tr> <tr><td>mailto</td><td>Адрес электронной почты</td></tr> <tr><td>news, nntp</td><td>Новости</td></tr> <tr><td>telnet</td><td>Сеанс telnet</td></tr> <tr><td>wais</td><td>Сервер протокола WAIS</td></tr> <tr><td>file</td><td>Имя файла в компьютере</td></tr> </table><br> Многопротокольные возможности Internet/Intranet-технологий определяют их способность к интеграции с офисными приложениями, в частности доступ к серверам электронной почты, файл-серверам и получение доступа из Intranet к службам и ресурсам Internet. Также возможен перенос функциональности Internet-служб новостей, ftp-архивов и поисковых служб в среду Intranet.<br> <img src="image/interintr-04.gif" alt="Взаимодействие Web-клиента с другими серверами"><br> Рис. 1.4. Взаимодействие Web-клиента с другими серверами<br><br> <h1>Web-серверы</h1> Сегодня Internet/Intranet устойчиво ассоциируется с Web: каждая страница и графическое изображение поступают с какого-либо Web-сервера. Внимание публики приковано к Web-броузерам, в частности NetscapeNavigator и MicrosoftInternetExplorer, но без Web-серверов не было бы ни "Всемирной паутины", ни корпоративных интрасетей.<br><br> <h1>WebEditProfessionalEdition</h1> WebEditProfessionalEdition 2.0 - один из самых современных программных редакторов Web-страниц. Этот 32-разрядный пакет предназначен для специалистов, понимающих структурную логику HTML. Однако он может послужить и новичкам благодаря наличию "мастера", который, задав лишь несколько вопросов, автоматически создает локальные страницы.<br> В процессе редактирования заголовки, таблицы, формы и кадры вставляются без помощи "мастеров", данные вводятся в диалоговых окнах, и работа ведется непосредственно с исходным текстом в окне редактирования, а программа предварительного просмотра, функционирующая в реальном масштабе времени, тем временем отображает этот же файл в режиме WYSIWYG. WebEdit преобразует файлы баз данных с разделителями в HTML-таблицы, объединяет различные файлы в "проекты", которые можно открывать для редактирования или загружать на сервер через FTP одним нажатием клавиши, а также создает навигационные карты на клиенткой стороне. Продукт предусматривает работу с кадрами, тегами Java и модулями ActiveX, хотя и не обеспечивает их предварительного просмотра.<br> Число одновременно открытых документов ограничивается только объемом памяти, но просматривать в каждый момент времени можно лишь один файл, что объясняется особенностями организации интерфейса с закладками.<br> При перемещении указателя по диалоговым окнам на экране всплывают краткие пояснения, а в help-файле имеется превосходный глоссарий HTML-кодов. WebEdit позволяет строить и импортировать таблицы в интерактивный редактор таблиц, но добавить заголовки можно лишь как отдельные теги, вернувшись в главный экран редактирования. Редактор таблиц также экспортирует HTML-таблицы в виде файлов с разделителями-запятыми.<br> Можно перетащить пиктограмму с "рабочего стола" или из Explorer и автоматически создать связь или открыть для редактирования файл в отдельном окне. Программа импортирует любые HTML-файлы, и хотя в ней имеются средства "проверки кодов", они лишь предупреждают, если используются управляющие коды, не распознаваемые на различных уровнях стандарта HTML. Программа оснащена мощной утилитой проверки правописания, функцией поиска с заменой и функцией экспорта файлов в форматах Macintosh и UNIX вместо стандарта DOS.<br><br> <h1>Задание для самостоятельной работы</h1> Для самостоятельной проработки материала первого урока слушателям предлагается сначала подготовить в любом текстовом редакторе три HTML-страницы.<br> На первой странице предлагается попробовать возможности выделения текста (italic, bold, underline), написания нескольких уровней заголовков, различные виды списков.<br> На второй странице предлагается представить несколько графических изображений, одно из которых будет являться ссылкой к некоторому отдельному изображению. Кроме этого, предлагается вставить в страницу видеоизображение (файл *.avi), опробовав различные параметры тега <IMG> для видеоизображений.<br> На третьей странице предлагается создать таблицу из нескольких строк и столбцов, а также вставить изображение с диаграммой к этой таблице. Данные предлагается взять из следующей таблицы:<br> Таблица 1.1. Доля отдельных развитых стран в ВВП мира (%) <table border=1><br> <tr><td><b>Страна</b></td><td><b>1970</b></td><td><b>1980</b></td><td><b>1995</b></td></tr> <tr><td>США</td><td>23,7</td><td>21,4</td><td>20,9</td></tr> <tr><td>Япония</td><td>6,2</td><td>7,6</td><td>8,6</td></tr> <tr><td>Германия</td><td>5,6</td><td>5,0</td><td>4,6</td></tr> <tr><td>Франция</td><td>3,8</td><td>3,7</td><td>3,4</td></tr> <tr><td>Великобритания</td><td>4,3</td><td>3,5</td><td>3,2</td></tr> <tr><td>Италия</td><td>3,9</td><td>3,6</td><td>3,3</td></tr> </table><br> В качестве дополнительного задания в таблице предлагается применить перекрытие нескольких строк и столбцов, а также использовать графическое изображение в качестве данных одной из ячеек.<br> Примерные тексты первой, второй и третьей страниц приведены ниже:<br> <u>Первая страница</u><br> <html><br><br> <head> <link rel="canonical" href="https://www.e-lave.ru//index.htm"/><br><br> <title>Общие сведения





    Язык гипертекстовой маркировки HTML



    Общие сведения



    Среди общедоступных средств Internet для предоставления информации система WWW занимает особое место.

    Система WWW была разработана несколько лет назад в одном из крупнейших европейских центров ядерных исследований CERN (EuropeanCenterforNuclearResearch, Швейцария), и предназначена для объединения документов и файлов по всей сети Internet с помощью гипертекстовых связей.

    Язык гипертекстовой маркировки HTML является одним из составных компонентов WWW. Он был основан на стандарте ISO 8879-1986 SGML.


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

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

    Документ HTML представляет собой не что иное, как обычный ASCII-файл, с добавленными в него управляющими HTML-кодами (тегами). Каждый тег начинается с левой угловой скобки ''<'' и заканчивается правой угловой скобкой ''>''. Между скобками записывается идентификатор тега и, если необходимо, дополнительные аргументы. Все теги по их назначению и области действия можно разделить на пять основных групп:

  • общего назначения;


  • определения структуры текста;


  • определения атрибутов текста;


  • навигации и гипертекстовых ссылок;


  • задания специальных эффектов и форматов данных.





  • Вторая страница
    Животные

    Животные, обитающие в России

    Тигр: Данная картинка является ссылкой! Щелкните по ней мышью и увидите... Зубр: Песец:


    Третья страница
    Экономика Таблица Доля отдельных развитых стран в ВВП мира (%)
    США 23,7 21,4 20,9
    Япония 6,2 7,6 8,6
    Германия 5,6 5,0 4,6
    Франция 3,8 3,7 3,4
    Великобритания 4,3 3,5 3,2
    Италия 3,9 3,6 3,3

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

    Заглавие HTML-страницы

    Заглавие показывает общий смысл HTML-страницы, его не следует путать с именем файла. При просмотре HTML-страницы в графическом броузере (например, NetscapeNavigator) заглавие появляется в полоске заголовка окна броузера. Для определения заглавия HTML-страницы применяется тег с закрывающей парой .
    Заглавие всегда помещается в секцию головы. Например, чтобы назвать страницу Моя любимая страница, нужно создать следующий HTML-текст:
    Моя любимая страница

    Защищенный протокол SSL

    Средства SecureSocketsLayer (SSL) обеспечивают более высокий уровень защиты, чем базовая аутентификация.
    Разработанная фирмой Netscape спецификация SSL 2.0 призвана обеспечить безопасность каналов связи между клиентами и серверами с помощью шифрования данных. К другим достоинствам SSL относятся гарантированная сохранность сообщений и опознавание сервера. В настоящее время для того, чтобы использовать SSL, вы должны заплатить за сертификат сервера, выдаваемый такой уполномоченной организацией, как VeriSign. Это разумная мера для узлов Internet, где требуется высокая надежность, но для интрасетей - это стрельба из пушек по воробьям. В ближайшем будущем появятся продукты, которые дадут возможность выпускать внутренние сертификаты.
    Все известные Web-серверы, за исключением изделия фирмы Novell, удовлетворяют требованиям SSL 2.0. В версии SSL3.0 фирма Netscape упорядочила спецификацию SSL и добавила средства опознавания клиента. С помощью SSL 3.0 серверы получат возможность идентифицировать клиента, пытающегося получить доступ к ресурсам. В настоящее время только программа NetscapeEnterpriseServer полностью соответствует требованиям SSL 3.0.
    Пакет NetscapeEnterpriseServer рассчитан для большого коммерческого предприятия и предполагает, что несколько человек или подразделений будут совместно создавать страницы Web и управлять ими. Эта программа, функционирующая в среде WindowsNTServer, показала отличные результаты на тестах производительности, располагает всеми функциями и характеристиками, необходимыми для создания и обслуживания крупного информационного центра Web. В их числе - средства защиты SSL 3.0 с возможностью проверки подлинности сертификата клиента, встроенный процессор поиска фирмы Verity, возможность работы с протоколом SNMP, усовершенствованные средства управления содержательными материалами узла Web и великолепные инструментальные средства для подключения к базам данных.
    С помощью процессора MKSIntegrityEngine пакета EnterpriseServer можно организовать систему регистрации и контроля использования файлов, которая гарантирует, что сотрудники, привлеченные к созданию содержательного материала, не уничтожат Web-страницы своих коллег. MKS также сохраняет на сервере все предварительные версии Web-документов, позволяя легко найти их при необходимости. И наконец, EnterpriseServer может функционировать на множестве платформ, в том числе в среде различных версий UNIX и WindowsNT.

    Защита

    И Navigator, и InternetExplorer имеют обширные встроенные механизмы защиты на основе SecureSocketsLayer 3.0 и системы шифрования RSA с использованием открытого ключа.

    

        Работа с информацией: Безопасность - Защита - Софт - Криптография