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

         

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


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

<AHREF="/SAMPLES/IMAGES/sample.map"> <IMGSRC="SAMPLES/IMAGES/sample.gif" border=0 ALIGN="BOTTOM" ISMAPBORDER=0></A>

Важнейшее слово здесь - ISMAP, которое сообщает броузеру Web, что это карта изображения. Первая часть строки, <AHREF="/SAMPLES/IMAGES/sample.map">, обозначает имя файла с картой (sample.map); к данному файлу Web-сервер будет обращаться для выбора гипертекстовой ссылки, зависящей от того, в каком месте изображения пользователь щелкнул кнопкой мыши. Вторая часть строки, <IMGSRC="SAMPLES/IMAGES/sample.gif" border=0 ALIGN="BOTTOM" ISMAPBORDER=0>, сообщает броузеру имя графического файла (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).

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

<IMG SRC=imagemap.gif USEMAP=#MY_MAP> <MAP NAME=MY_MAP> <AREA SHAPE=circle COОRDS="110,107,204,107" HREF=/samples/circle.htm> <AREA SHAPE=oval COORDS="15,215,197,274" HREF=/samples/oval.htm> <AREA SHAPE=poly COORDS="248,23,462,54,334,78, 342,184,510,184,502,244,226,278" HREF=/samples/polygon.htm> <AREA SHAPE=rect COORDS="356,110,516,173" HREF=/samples/rect.htm> </MAP>

Другой способ поддержки карт на клиенте, не нашедший широкого распространения, основан на применении контейнера 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 позволяет пользователю или прикладной программе изменять содержимое базы данных путем вставки новых данных, удаления или модификации существующих данных.



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


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

Пример использования маркированного списка:

<UL> <LI>Первый элемент маркированного списка <LI>Второй элемент маркированного списка <LI>... <LI>... <LI>Последний элемент маркированного списка </UL>



Массивы


Первый тип новых объектов, которые появились в 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-документа с различными сетевыми ресурсами и документами используется тег <A> и его закрывающая пара </A>. У данного тега есть несколько атрибутов, основным из которых является атрибут HREF , указывающий местонахождение сетевого ресурса и специфицирующий коммуникационный протокол (значение этого атрибута фактически представляет собой URL).

Примеры гипертекстовых ссылок:

<AHREF=http://home.netscape.com:/disk1/smith/docs/first.doc> Clickhere</A> <AHREF=file:///c /disk1/smith/docs/picture.gif >Clickhere</A>

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

Для упорядоченного списка применяется два типа тегов: весь список обрамляется тегом <OL> и его закрывающей парой </OL>, а каждому элементу списка предшествует тег <LI>, у которого закрывающей пары нет, т.е. ее использовать не обязательно.

Пример использования нумерованного списка:

<OL> <LI>Первый элемент нумерованного списка <LI>Второй элемент нумерованного списка <LI>... <LI>... <LI>Последний элемент нумерованного списка </OL>



Объект 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;

с помощью свойства 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<x;i++) { if (i==10) thrownewNewException (i); System.out.println ("i="+i+"."); } } publicstaticvoidmain (Stringargs[]) { try { culc (9); culc (20); } catch (NewExceptione) { System.out.println ("NewException."); } } }



В этом примере представлено 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 формы расширен и может содержать указание на событие и функцию его обработки.

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

<TAGeventHandler="JavaScriptCode">

Здесь 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 для выдачи сообщения.

<SCRIPT> functionsalut (name) { alert ("Здравствуйте, ", name, " !"); } </SCRIPT> <BODY> Введите Ваше имя: <FORM> <INPUTtype="text" name="user" onBlur="salut(this.value)" value=""> </FORM> </BODY>

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

<FORM> <INPUTtype="button" name="btn1" value="Выход" onClick="confirm('Вы желаете покинуть страницу')"> </FORM>

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


<INPUTNAME="Button1" TYPE="BUTTON" VALUE="ClickHere" OnClick='MsgBox " Wonderfultobehold."'>

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

Также можно написать скрипт в контейнере <SCRIPT>, указав явным образом элемент формы и событие:

<SCRIPTLANGUAGE="VBScript" EVENT="OnClick" FOR="Button1"> MsgBox " Wonderfultobehold." </SCRIPT>

В этом случае, после того как Вы определили в контейнере <SCRIPT> событие и элемент управления, к которому оно относиться, уже не надо пользоваться выражениями Sub и EndSub.

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

<HTML> <HEAD><TITLE>SimpleValidation</TITLE> <SCRIPTLANGUAGE="VBScript"> SubSubmit_OnClick   DimTheForm SetTheForm = Document.ValidForm IfIsNumeric(TheForm.Text1.Value) Then IfTheForm.Text1.Value < 1 OrTheForm.Text1.Value > 10 Then MsgBox "Pleaseenteranumberbetween 1 and 10." Else MsgBox "Thankyou." TheForm.Submit' Datacorrect; sendtoserver. EndIf Else MsgBox "Pleaseenteranumericvalue." EndIf EndSub </SCRIPT> </HEAD> <BODY> <H3>SimpleValidation</H3><HR> <FORMNAME="ValidForm"> Enteravaluebetween 1 and 10: <INPUTNAME="Text1" TYPE="TEXT" SIZE="2"> <INPUTNAME="Submit" TYPE="BUTTON" VALUE="Submit"> </FORM> </BODY> </HTML>

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

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

TheForm.Submit


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


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



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


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

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

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

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

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

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

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

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

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

Работу с документами, выполненными в соответствии с соглашениями языка HTML, осуществляют специальные программы клиента WWW - так называемые броузеры (WWWBrowser).



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


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



Обзор языков и средств программирования 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-файле. Обычно она выглядит так:

<!- #INCLUDEVIRTUAL="/scripts/samples/foo.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 и т.п.) переносятся в корпоративную сеть.