Разработка INTRANET приложений
Активные серверные страницы ASP
Новая технология фирмы Microsoft - активные серверные страницы ActiveServerPages (ASP)- позволяет использовать языки сценариев VBScript и JavaScript для создания динамичного, интерактивного содержимого WorldWideWeb. Применение технологии ASP дает возможность выполнять сценарии на сервере и отображать результат с помощью любого Web-броузера независимо от того, поддерживает он языки сценариев или нет.До недавнего времени создание динамичного, интерактивного содержимого в Internet/Intranet требовало использования CGI или ISAPI/NSAPI-интерфейсов. В этом случае клиенты посылали HTTP-запросы, которые адресовались не статическим HTML-страницам, а серверным программам, написанным с помощью специальных средств, которые бы обрабатывали параметры и отсылали клиенту результат в виде потока HTML-тегов. Недостатком такого подхода является то, что создание программ такого рода - дело довольно затруднительное, никак не связанное с непосредственным написанием HTML-страниц.
Что предлагает технология ASP? С ее помощью можно создавать сценарии, выполняемые в контексте сервера. Такие программы интегрируются непосредственно в HTML-страницы и не требуют каких-либо дополнительных средств разработки. Самое важное, что создание HTML-страниц и создание серверных программ - это единый процесс.
Следует отметить, что указанная технология базируется на двух проверенных временем решениях: ActiveXScripting - для поддержки языков сценариев на уровне внутрипроцессорных CJM-серверов и OLEAutomation - для выполнения серверных компонентов ActiveX. Существует, однако, некоторое ограничение на тип этих компонентов. Так как они выполняются в контексте сервера, то не должны иметь пользовательский интерфейс.
Активные серверные страницы хранятся на сервере в файлах с расширением ASP. Каждый файл представляет собой ASCII-файл, в котором объединяются текст, отображаемый в клиентском броузере, теги языка HTML, служащие для форматирования текста, и программа на языке сценария. Последняя выделяется с помощью пары специальных тегов: <%
Здесь располагается сценарий %>
Анимация
Простой способ обогатить анимационными эффектами Web-страницу, не прибегая к программированию, - это сформировать анимационные GIF-файлы. Один анимационный GIF-файл содержит множество изображений, а движение персонажей обусловлено тем, что загрузка следующего кадра происходит в тот момент, когда предыдущий еще на экране. Это означает, что пока идет загрузка файла по линии связи, пользователь наблюдает за процессом в режиме анимации. В настоящее время средствами работы с анимационными GIF-файлами оснащены броузеры NetscapeNavigator 2.0 и MicrosoftInternetExplorer. Также возможна реализация анимационных эффектов другими способами, например, с помощью программ на языках Java и MacromediaShockwave, но для них требуются модули расширений или серверные сценарии, и обычно их на много труднее реализовать. Правда, в отличие от некоторых других типов анимации GIF-файлы не интерактивны.Архитектура Internet/Intranet-приложений
Для анализа архитектуры Internet/Intranet-приложений необходимо рассмотреть основные информационные ресурсы и потоки, классификацию средств для разработки, эксплуатации и сопровождения подобных приложений, а также основные схемы взаимодействия компонентов системы.Архитектура клиент-сервер, сервера БД и инструментальные средства
Архитектура клиент-сервер спроектирована, чтобы разрешить проблемы файл-серверных приложений путем разделения компонент приложения и размещение их там, где они будут функционировать более эффективно. Существует несколько возможных схем построения такой архитектуры.Особенностью архитектуры клиент-сервер является использование выделенных серверов баз данных, понимающих запросы на языке структурированных запросов SQL и выполняющих поиск, сортировку и агрегирование информации на месте без излишней перекачки данных на рабочие станции. Клиенты серверов БД получают последовательно и порциями только результаты запросов.
Другая отличительная черта серверов БД - наличие справочника данных, в котором записаны структура БД, ограничения целостности данных, форматы вывода и даже серверные процедуры обработки данных по вызову или по событиям в программе.
Для реализации серверов БД используются системное ПО реляционных СУБД, понимающих язык запросов SQL, например: Oracle, Informix, Sybase, MSSQLServer. Многие из этих СУБД работают на различных аппаратных платформах и в средах разных ОС.
Объектами разработки в приложениях клиент-сервер, помимо диалога и логики обработки, являются, прежде всего, реляционная модель данных и связанный с ней набор SQL-операторов для типовых запросов для этой БД.
Большинство конфигураций клиент-сервер используют двухзвенную модель, состоящую из сервера и клиента, который обращается к услугам сервера. Для эффективной реализации такой схемы часто используют неоднородную сеть.
В классической схеме клиент-сервер значительная часть приложения располагается на клиенте, а СУБД - на сервере. Поскольку эта схема предъявляет наименьшие требования к серверу, она обладает наилучшей масштабируемостью. Однако сложные приложения, вызывающие большое взаимодействие с БД, могут жестко загрузить как клиента, так и сеть. Результаты SQL-запроса должны вернуться к клиенту для обработки, потому что там находится логика принятия решения. Такая схема возлагает дополнительное бремя администрирования приложений, разбросанных по различным клиентским узлам.
Можно сократить нагрузку на клиента и сеть, переместив целиком прикладную обработку на сервер, при этом вся логика обработки, оформленная в виде триггеров и хранимых процедур, выполняется на сервере БД. Триггер является обработчиком событий изменения (обновлений, добавлений и удалений) данных. Хранимая процедура - процедура с операторами SQL для доступа к БД, вызываемая по имени с передачей требуемых параметров и выполняемая на сервере БД. Компиляция повышает скорость выполнения хранимых процедур и сокращает нагрузку на сервер. Но, перегрузив хранимые процедуры прикладной логикой, можно потерять преимущества по производительности. Хранимые процедуры улучшают целостность приложений и БД, гарантируют актуальность коллективно используемых операций и вычислений. Улучшается сопровождение таких процедур, а также безопасность (нет прямого доступа к данным).
Группу инструментальных средств для создания информационных приложений с архитектурой клиент-сервер можно разделить на следующие подгруппы:
Среды разработки приложений для серверов БД представляют собой системы программирования четвертого поколения 4GL или инструментальные средства быстрой разработки приложений RAD (RapidApplicationDevelopment). Особенностями этой подгруппы средств являются:
В качестве примера можно назвать инструменты Informix/4GL, Oracle*Forms и др.
Независимые инструментальные средства, ориентированные на многие платформы СУБД, представлены в виде средств быстрой разработки приложений RAD. Для таких средств создания приложений клиент-сервер характерны:
Известными примерами независимых инструментальных средств разработки являются: PowerBuilder, JAM, Uniface и др.
Общим недостатком всех средств разработки приложений первого поколения является невозможность создания с их помощью больших и сложных приложений масштаба предприятия. Другая проблема - минимальные программные возможности: макроязыки и языки сценариев, которые хороши для решения только простых задач. Как увидим в дальнейшем, многие проблемы сняты в новых версиях инструментальных средств.
Средства поддержки распределенных приложений относятся к категории промежуточного программного обеспечения middleware для организации серверов приложений. Сюда входят разнообразные библиотеки и наборы инструментальных средств:
Самостоятельную группу инструментальных средств составляют объектно-ориенти-рованные базы данных, которые используют для хранения объектов реляционные БД или применяют специальные хранилища объектов.
Аудио и видео
Наиболее распространенный способ воспроизведения видео на ПК связан с обработкой файлов в формате MPEG. Он позволяет демонстрировать видеофильмы, записанные на CD-ROM или жесткий диск, на полном экране монитора с частотой развертки 30 кадр./с. Существует два основных подхода к решению задачи передачи "живого" видео по Internet/Intranet: распространение файлов MPEG или AVI (AudioVideoInterleaved), как обычных данных; передача отдельных потоков звуковых или видеоданных, которые декодируются клиентским ПО в режиме реального времени. Преимущество второго метода для пользователя - исключается необходимость загружать многомегабайтный видеоклип в свой компьютер, на что при использовании обычного модема уходит не один час. Трудность реализации этого подхода не только в том, что Internet не обеспечивает такую же высокую пропускную способность, как внутренняя магистраль ПК. Помехи или задержки при передаче любого из множества пакетов данных, составляющие один кадр видео, могут нарушить весь поток. Не менее важно, чтобы клиентская рабочая станция справлялась с поступающим потоком. Технология потокового видео для Internet подразумевает подготовку видео или аудиопотоков, их компрессию и рассылку по сети клиентам, которые декомпрессируют их и воспроизводят результаты на экране или акустической системе компьютера. Подготовить аудио и видеопотоки можно с помощью любых средств подготовки мультимедийных файлов. Чтобы компенсировать чрезвычайно ограниченную полосу пропускания аналогового модема, производители ПО разрабатывают такие способы восстановления потерянных или искаженных пакетов и кадров, которые в любом случае гарантировали бы воспроизведение окончательного изображения - пусть с более низким качеством. При распространении по сетям IP такие программы обычно опираются на стандарт UserDatagramProtocol (UDP), позволяющий передавать данные быстрее, чем TCP: от клиентской станции не требуется подтверждения приема пакетов. Недавно заявившая о себе компания Vosaic предложила новый протокол VideoDatagramProtocol (VDP), согласно которому, как она утверждает, скорость доставки видеопотоков возрастает по сравнению со скоростью UDP или TCP в 44раза.Базовая структура HTML-страницы
HTML-файлы всегда начинаются с тега , который указывается в начале файла. Этот тег сообщает считывающему файл броузеру, что он имеет дело с HTML-файлом. Последней строкой в документе должна быть закрывающая пара , которую можно интерпретировать как "конец HTML-страницы". Таким образом, каждая HTML-страница должна содержать строкиСледующие теги разделяют документ на две секции: голову и тело. Для определения головы добавляется тег с закрывающей парой . С учетом этого HTML-страница принимает вид:
В секции тела вводится текст и все то, что фактически должно появится на HTML-странице. Для определения тела применяется тег с закрывающей парой , помещаемые после тегов головы:
Броузеры и серверы Intranet
Броузеры и Web-серверы являются краеугольными камнями WWW-технологии, они формируют Run-time среду соответственно для клиентских и серверных частей Internet/Intranet-приложений. Многие языковые возможности встроены в эти компоненты или реализуются за счет расширений клиентов и серверов.Броузеры NetscapeNavigator и MicrosoftInternetExplorer
На сегодняшний день лучшими коммерческими броузерами являются NetscapeNavigator и MicrosoftInternetExplorer. Остальные броузеры не могут с ними сравниться, поскольку они либо не поддерживают последние расширения HTML, либо не имеют некоторых других крайне важных возможностей.Чтение страниц Web
При просмотре большинства узлов Web не будет заметно никаких различий между возможностями отображения обоих броузеров. Однако, InternetExplorer 3.0 добавляет несколько усовершенствований: новое расширение HTML позволит узлам Web отображать кадры без рамок, придавая странице менее загроможденный вид. Дизайнеры узлов Web также смогут предоставлять посетителям возможность перемещать кадры и даже минимизировать для удобства некоторые из них. Кроме того, InternetExplorer поддерживает шрифты TrueType, так что авторы могут использовать на своих Web-страницах различные начертания символов.В третью версию InternetExplorer, в отличие от Navigator, входит поддержка стилей HTML (CSS). Netscape обещает включить CSS лишь в следующую, четвертую версию своего броузера. Оба навигатора могут воспроизводить видео- и аудиофайлы, размещенные на странице Web, не пользуясь вспомогательными приложениями. Кроме того они позволяют просматривать трехмерные узлы Web, созданные при помощи VirtualRealityMarkupLanguage.
CorelOffice
Появление пакета CorelOfficeforJava корпорации Corel - написанного на языке Java, доказывает возможность создания подобных продуктов и готовит почву для перехода к платформонезависемым вычислительным процессам. После окончательной доработки пакет позволит создавать документы, доступные для любого Web-броузера, поддерживающего Java.В настоящее время пакет содержит рабочие версии текстового процессора WordPerfect и электронные таблицы QuattroPro. Ожидается, что кроме процессора WordPerfect и QuattroPro окончательная версия CorelOfficeforJava будет содержать приложения демонстрационной графики, программу создания диаграмм, приложения для рисования, личную информационную систему (PIM), а также клиентскую программу электронной почты.
Для CorrelOffice forJava необходимо наличие JavaVirtualMachine (виртуальные машины языка Java), работающей на платформах Windows, Macintosh и Unix, либо Web-броузера, поддерживающего Java, например Navigator 3.0 NetscapeCommunications или InternetExplorer3.0 корпорации Microsoft. Приложения пакета CorelOfficeforJava создавались с использованием оригинального программного средства Сontainer-СomponentFramework, которое должно быть выпущено в ближайшее время. Это средство представляет собой библиотеку классов и интерфейсов Java и предназначается для ускорения развертки приложений. Поскольку библиотека написана полностью на языке Java, приложения на его основе могут работать с любыми виртуальными машинами Java и являются кросс-платформными. Одним из интересных примеров создания и размещения на Web-страницах Internet и корпоративных интрасетей авторских произведений с применением компьютерной графики, анимации и виртуальной реальности является графический пакет для Internet- CorelWeb.GraphicsSuite.
Этот набор программ прост в работе, поэтому им могут пользоваться и новички. CorelWeb.GraphicsSuite состоит из шести компонентов:
Динамическая публикация отчетов из БД
Помимо статической публикации отчетов из БД, в Intranet находит применение динамическая публикация отчетов из БД на основе запроса пользователя. Такой метод можно реализовать через CGI или с помощью специальных средств на основе API для Web-серверов. Ряд фирм предлагает такие средства, часто в них используются HTML-шаблоны для подстановки значений полей из записей БД. Примером средства динамической публикации может служить компонент InternetDatabaseConnector (IDC) для сервера MicrosoftIIS. IDC позволяет по SQL-запросу обращаться через интерфейс ODBC к настольным и реляционным СУБД. Рассмотрим подробнее процесс динамической публикации, обеспечиваемый IDC. На InternetInformationServer полный цикл работы IDC состоит из шести шагов, которые показаны ниже на схеме.Добавление новых строк в таблицу
Процедуру создания первой строки нужно повторить для создания следующих строк таблицы:| One | Two | Three |
| Red | Green | Blue |
| 1990 | 1995 | 2000 |
Достоинства и недостатки спецификации CGI
Применение CGI-программ сопряжено с высокими накладными расходами. В результате извлечение данных из БД выполняется медленно, так как каждый раз при генерации запроса требуется подключение к базе данных. Определенные трудности возникают и при обработке транзакций посредством интерактивных Web-страниц. Например, интерактивная система заказа товаров по каталогу, расположенному на Web-узле, не сможет правильно отследить, какие позиции выбраны покупателем, если связь с БД прервется между двумя запросами на разные виды товаров. А поскольку в такой системе не предусмотрена фиксация транзакций, необработанные запросы просто теряются.Однако то, что CGI-программы после обработки каждого запроса разрывают связь с базой данных, сильно осложняет деятельность хакеров, так как при отсутствии постоянного подключения к корпоративной системе проникнуть в нее гораздо сложнее. Существенным достоинством этих программ является и то, что связь с Web-сервером устанавливается только на короткий промежуток времени: в результате он не перегружается и может выполнять другие задания.
На сегодняшний день имеется множество продуктов, которые дают возможность пользователям создавать собственные программы в стандарте CGI (на языках С, С++ или PERL). Они по-разному решают проблемы CGI и реализуют достоинства этой спецификации. Вот несколько примеров.
Доступ к базе данных на стороне клиента
Видимо, наиболее мощные средства обеспечения доступа к базам данных на стороне Web-клиента обеспечивает язык Java. Java - это объектно-ориентированный язык программирования, являющийся, по сути дела, "безопасным" подмножеством языка С++. В частности, Java не содержит средств адресной арифметики, не поддерживает механизм множественного наследования и т.д. Поэтому утверждается, что корректность Java-программы можно проверить до ее реального выполнения (это абсолютно недоказанное утверждение). Различают:Для обеспечения доступа к базам данных на стороне Web-клиента наиболее существенно наличие языка Java. Технология разработки HTML-документа позволяет написать произвольное количество дополнительных Java-программ, откомпилировать их в мобильные коды и поставить ссылки на соответствующие коды в теле HTML-документа. Такие дополнительные Java-программы называются апплетами (Java-applets). Получив доступ к документу, содержащему ссылки на апплеты, клиентская программа просмотра запрашивает у Web-сервера все мобильные коды. Коды могут начать выполняться сразу после размещения в компьютере клиента или быть активизированы с помощью специальных команд.
Поскольку апплет представляет собой произвольную Java-программу, то, в частности, он может быть специализирован для работы с внешними базами данных. Более того, система программирования Java включает развитый набор классов, предназначенных для поддержки графического пользовательского интерфейса. Опираясь на использование этих классов, апплет может получить от пользователя информацию, характеризующую его запрос к базе данных, в том же виде, как если бы использовался стандартный механизм форм языка HTML, а может применять какой-либо другой интерфейс.
Для взаимодействия Java-апплета с внешним сервером баз данных разработан специализированный протокол JDBC, который, фактически, сочетает функции шлюзования между интерпретатором мобильных Java-кодов и ODBC, а также включает ODBC.
В заключение сравним достоинства и недостатки двух рассмотренных подходов. Использование CGI-скриптов на стороне Web-сервера позволяет иметь на стороне клиента только сравнительно простые программы просмотра. Вся хитроумная логика работы с базами данных (возможно, с обработкой полученных данных) переходит на сторону Web-сервера. Это легкий способ построения трехзвенной архитектуры приложения. (В последнее время разгрузку клиента от логики приложения называют решением проблемы "толстого" клиента.) Отрицательным моментом является то, что при необходимости подключения нового CGI-скрипта, вообще говоря, требуется (относительная) модификация кода сервера.
Использование Java-апплетов, вообще говоря, обеспечивает более гибкое решение. Апплет - это часть HTML-документа. Для включения нового апплета нужно всего-навсего перекомпоновать документ. Web-cервер трогать не нужно. С другой стороны, клиент должен быть толще. Что бы там ни говорили, клиент должен быть достаточно "толстым", чтобы в приемлемое время справиться с интерпретацией всех апплетов. Но, конечно же, сервер по-прежнему должен быть "толще" клиента.
На самом деле и при применении первого подхода, и при использовании второго остается нерешенной одна организационно-производственная проблема: кто должен проектировать, писать, отлаживать и сопровождать процедурный код? Web-мастера, производящие HTML-документы, обычно считают себя, скорее, дизайнерами нежели программистами. А здесь требуется чисто программистская работа.
Доступ к базе данных на стороне сервера
Механизм доступа к БД на стороне сервера реализуется за счет наличия стандартизованных средств:При реализации на основе CGI общая схема реализации доступа к базе данных на стороне Web-сервера выглядит следующим образом:
При использовании CGI вся интерпретация пользовательского запроса производится серверной программой. Она может быть предельно жесткой, ориентированной на выполнение запроса к фиксированной таблице фиксированной базы данных, или относительно гибкой, способной выполнить произвольный запрос к одной или нескольким таблицам базы данных, идентифицируемой в параметрах клиента.
API - это, фактически, дешевый, но небезопасный способ выполнить в адресном пространстве сервера WWW программу, которая соответствует спецификациям на языке HTML. Такая программа должна быть заранее подготовлена и включена в библиотеку, из которой сервер может производить динамическую загрузку (DLL-модули в Windows или разделяемая библиотека sharedlibrary в Unix).
Доступ к БД через интерфейс JDBC
Апплеты Java не позволяют напрямую связываться с базами данных. Для разработчиков, использующих язык Java в среде клиент/сервер, разработан прикладной программный интерфейс APIJDBC, обеспечивающий доступ к базам данных из языка Java.Спецификация JDBC представляет собой прикладной программный интерфейс и разработана в подразделении JavaSoft корпорации Sun. Стандарт пока еще не утвержден. JDBC базируется на интерфейсе уровня вызовов X/OpenSQLCLI - основе ODBC. Прикладной программный интерфейс JDBC реализуется поверх других SQL-API, включая ODBC. Это означает, что все базы данных, допускающие работу с ODBC, будут взаимодействовать с JDBC без изменений.
JDBC использует двухуровневую архитектуру для связи апплетов и баз данных. Этот процесс прост - Internet- или Intranet-пользователи, использующие броузеры, подключаются к локальному или удаленному Web-серверу и загружают HTML-документ с включенным апплетом. Апплет выполняется на клиентской ЭВМ в среде броузера и устанавливает обратную связь с сервером базы данных. Механизм связи с базами данных является стандартным классом Java, поэтому средства безопасности, обеспечиваемые языком Java, поддерживают безопасную связь с базами данных.
Архитектура JDBC состоит из двух уровней: JDBCAPI, который обеспечивает связь между приложением и менеджером JDBC, и драйвер JDBCAPI, который поддерживает связь между JDBC менеджером и драйвером. Разработчики имеют возможность взаимодействовать напрямую с ODBC посредством моста JDBC-ODBC. Согласно JavaSoft, производительность при использовании моста не ухудшится.
При необходимости доступа к базе данных, апплет получает объект java.sql.Connection непосредственно из слоя управления JDBC и менеджера драйвера java.sql.DriverManager. Менеджер драйвера использует строку URL в качестве аргумента и уровень управления JDBC обнаруживает и загружает соответствующий драйвер для целевой базы данных, с которой пытается соединиться апплет. Менеджер драйвера выполняет это, опрашивая каждый драйвер, для выявления драйвера, который может соединиться с указанным адресом URL. Драйвер определяет, требует ли данный URL субпротокол, поддерживаемый драйвером. После этого драйвер подключается к удаленной базе данных, возвращая правильный объект java.sql.Connection, являющийся методом доступа апплета к сервисам базы данных.

Рис. 4.1. Механизм доступа JDBC к базам данных из Java-апплетов
JDBC не может выполнить свою работу без драйвера и уровень управления JDBC должен знать о размещении всех доступных драйверов баз данных. Существуют два способа, которыми JDBC может это выполнить. Первый способ - во время инициализации класс java.sql.DriverManager ищет свойства sql.drivers в системных свойствах. Если он существует, DriverManager класс загрузит его. Второй способ заключается в явном вызове определенного драйвера, тем самым отпадает необходимость в поиске.
Доступ к данным.
SQL обеспечивает доступ к хранимым данным из приложений.Единая платформа разработки приложений для Internet и Intranet от Netscape
Корпорация Netscape Communication предлагает основанную на стандартах единую платформу для разработки приложений клиент/сервер нового поколения для Internet и интрасетей. NetscapeONE поддерживает такие стандарты как HTTP, HTML, LDAP, Java. В нее включены язык JavaScript, иерархия Java-классов NetscapeInternetFoundationClasses, а также распределенная объектная модель, основанная на протоколе InternetInter-ORBProtocol (IIOP). Документацию, исходный код и NetscapeONESDK можно загрузить со страницы компании.Платформа NetscapeONE объединяет открытые стандарты, лежащие в основе ведущих программных продуктов Netscape с широким набором базирующихся на языке Java инструментов, что позволяет корпоративным разработчикам быстро строить распределенные кроссплатформенные приложения для Internet и интрасетей.
Netscape анонсировала также, расширенную версию JavaScript своего открытого и бесплатно лицензируемого языка сценариев, который предназначен для быстрого построения сетевых приложений. JavaScript включает поддержку технологии LiveConnect, обеспечивающей взаимодействие между такими активными элементами, как Plug-in, Javaapplets, сценарии JavaScript и компоненты HTML.
Чтобы упростить создание коммерческих приложений на языке Java, компания Netscape выпустила системно-независимую библиотеку классов NetscapeInternetFoundationClasses. В нее вошли классы UserInterface, разработанные корпорацией Netcode, недавно приобретенной Netscape. Бета-версия NetscapeInternetFoundationClasses доступна разработчикам уже сегодня.
Модель распределенных объектов в NetscapeONE базируется на IIOP. Полностью совместимый с этим протоколом брокер объектных запросов (ORB) в следующих версиях. NetscapeONE содержит инфраструктуру IIOP, прозрачно поддерживающую распределенный вызов методов Java-классов, и, в частности, в состав пакета войдет совместимая с этим стандартом библиотека NetscapeInternetFoundationClasses.
Формы для организации диалога
Форма FORM служит для организации диалога по выбору и вводу данных, по нажатию экранных кнопок. Обработка введенных данных осуществляется серверной программой, заданной в атрибуте ACTION. Обмен данными между броузером и сервером производится через интерфейс CGI с помощью методов GET (через переменные среды) и POST (через входной и выходной потоки), задаваемые атрибутом METHOD. В обмене участвуют пары "имя=значение" для диалоговых переменных.При наличии нескольких форм на HTML-странице необходимо их именовать (атрибут NAME).
Основными элементами формы являются элемент ввода INPUT, многострочная область текста TEXTAREA и меню SELECT (рисунок 3.2).
Рис. 3.2. Основные элементы HTML-формы
Элемент INPUT является наиболее универсальным, реализует наибольшее число диалоговых элементов, тип которых определяется атрибутом TYPE.
Поля ввода имеют типы:
Для полей выбора различают типы:
В формах поддерживаются экранные кнопки следующих типов:
Каждый элемент INPUT обязательно имеет имя переменной, задаваемое атрибутом NAME, оно служит для идентификации переменной при обмене данными с обрабатывающей программой.
Для полей ввода можно задавать значения по умолчанию с помощью атрибута VALUE. Этот же атрибут для текстовых кнопок определяет надписи на них. Начальное состояние полей выбора задается атрибутом CHECKED.
Атрибут SIZE определяет размер видимой части поля ввода, а MAXLENGTH - максимальное число символов, которое можно ввести в поле. С помощью атрибута ALIGN обеспечивается выравнивание введенного значения.
Специальный тип HIDDEN позволяет скрыть элемент диалога, а также может служить для хранения значений рабочих переменных.
Для графических кнопок атрибут SRC задает адрес изображения.
Элемент TEXTAREA предназначен для ввода строк длинного текста. Каждая область поименована (атрибут NAME) и имеет два параметра для определения ее размера: число видимых строк ROWS и ширина области COLS. Текст внутри контейнера TEXTAREA отображается на экране.
Элемент SELECT с вложенными элементами OPTION предназначены для организации меню разных типов: выпадающих, с множественным выбором и графических (определяется атрибутом TYPE).
В некоторых броузерах поддерживаются дополнительные атрибуты, упрощающие контроль данных. Так параметры MIN и MAX позволяют контролировать вводимое числовое значение по диапазону допустимых значений. В атрибуте ERROR приводится текст сообщения об ошибке при неправильном вводе. Для создания нередактируемых полей вывода или запрета редактирования используется атрибут DISABLE.
Фреймы и окна
При работе с фреймами и окнами в предыдущих версиях JavaScript постоянно приходилось отслеживать последовательность открытия окон и фреймов для того, чтобы аккуратно их потом закрывать. На некоторых неточностях работы с окнами были основаны так называемые mail-bombs. Суть этих "подарков" заключалась в том, что если пользователь по почте принимает документ, который состоит только из одной команды:window.close (),
то система, не спрашивая пользователя, закрывала текущее окно, а в этот момент таким окном является окно электронной почты. Теперь, перед тем как что-либо закрыть, система будет спрашивать разрешения. Правда, если в момент получения команды на закрытие окна на экране только одно окно Navigator, то система его закроет без каких-либо комментариев.
Работа с окнами и фреймами на этом не исчерпывается. В систему введено новое свойство opener, которое определено для текущего окна или фрейма, и методы blur и focus распространены на работу с окнами.
Свойство opener определяет окно документа, который вызвал открытие окна текущего документа. Свойство определено для любого окна и фрейма. Если необходимо выполнить некоторые функции по отношению к окну, открывшему данное окно, то можно использовать выражение типа:
window.opener.[method]
Например, если требуется закрыть окно-предшественник, то можно просто выполнить метод close:
window.opener.close ()
Точно таким же способом можно изменить содержание этого окна при помощи методов write или writeln.
Можно менять и другие свойства объектов в окне-предшественнике. Следующий пример взят из дополнений к спецификации JavaScript:
window.opener.document.bgColor="СcyanТ"
В данном случае для окна-предшественника определен светло-голубой цвет в качестве цвета фона.
Но самым замечательным является то, что предшественника можно менять. Это значит, что автор получает возможность открывать и закрывать окна не в строго иерархической последовательности, а в произвольном порядке. Управление многооконным интерфейсом в этом случае становится более гибким:
window.opener = new_window window.opener = null
Первый пример переназначает окно-предшественник, в то время как второй вообще защищает предшественника от каких-либо действий.
Все, что было сказано об окнах, распространяется и на фреймы, которые являются просто частным случаем окна.
Фрейм часто может быть порожден путем разбиения другого фрейма на части. Если при этом потребуется обратиться к окну фрейма-предшественника, то свойство opener в этом случае незаменимо.
Кроме обращения к различным свойствам окон и фреймов разработчики расширили действие методов blur и focus с фреймов до окон. Теперь не только фрейм, но и окно может быть сделано текущим с использованием метода focus или, наоборот, переведено в фон при помощи метода blur. В ряде случаев, например, при порождении нескольких страниц, обращение к этим функциям бывает довольно полезным.
Графические форматы
В WWW стандартизированы всего два формата, а именно GIF и JPEG. Формат GIF (GraphicInterchangeFormat) занимает в WWW исключительное положение. Все графические броузеры поддерживают этот формат и без проблем выводят внутри HTML-страницы изображения, представленные в этом формате.Формат JPEG (JointPhotographicExpertsGroup) становится в последнее время все более популярным. Главное достоинство JPEG-файлов состоит в том, что они короче GIF-файлов и на их загрузку требуется меньше времени. К сожалению, встроенные изображения в формате JPEG поддерживают только некоторые броузеры, например Netscape и Mosaic.
Графический тег ![]()
Кодом HTML, который заставляет броузер выводить изображения, является тег Здесь SRC означает источник (Source), а имя файла представляет собой имя выводимого графического файла. Предположим, к примеру, что у Вас есть изображение picture.gif. Для добавления его на страницу HTML применяется такая строка:
Графика в текстовых броузерах
Некоторые броузеры работают только с текстом и не могут выводить графические файлы. Поэтому в том месте, где имеется тегздесь альтернативный текст означает тот текст, который появляется вместо графики. Применима и такая конструкция:
Графика
Как было сказано ранее, самым распространенным графическим форматом в Web является GIF-формат. Для того, чтобы вставить изображение в Web-страницу, необходимо либо нарисовать его, либо взять уже готовое. В любой программе рисования несложно нарисовать простое изображение и сохранить его в формате GIF. Если программа не поддерживает этот формат, то необходимо преобразовать файл. Существует множество программ, предназначенных для преобразования одного графического формата в другой. Позаимствовать же картинки можно из многих программных пакетов, например MicrosoftOffice, и большинства программ рисования, в которых поставляются библиотеки художественных клипов (клипартов - cliparts). Клипарт представляет собой произведение профессионального качества, которое уже готово для вставки в Web-страницу. Также возможно заимствование изображений со страниц Web. Когда броузер выводит страницу Web с изображением, соответствующий графический файл временно хранится в памяти компьютера. В большинстве броузеров есть команда, позволяющая сохранить файл на локальном диске. Существует множество других вариантов получения графических файлов.Изображения очень полезны и придают Web-странице профессиональный вид. Приведем наиболее распространенные случаи применения изображений:
Теперь рассмотрим, как вставить изображение в страницу Web. Кодом HTML, который заставляет броузер выводить изображение, является метка
Здесь SRC означает источник (SouRCe), а имя_файла представляет собой имя выводимого графического файла. Например, для вывода изображения logo.gif на страницу Web применяется такая строка:
Некоторые броузеры работают только с текстом и не могут выводить графические файлы. Вместо них такие броузеры выводят только [IMAGE], что делает страницу несколько некрасивой. Для предотвращения этого метка
Здесь альтернативный текст означает тот текст, который применяется вместо графики. В качестве такого текста можно определить краткую фразу, описывающую изображение, но многие пользуются вместо описания просто символом пробела, например:
Кроме этого существует еще одна причина применения расширения ALT. Дело в том, что большинство графических броузеров позволяют выключать вывод изображений, что позволяет гораздо быстрее выводить страницу с удаленного Web-сервера.
Изображения страницы Web предназначены не только для просмотра, но могут использоваться в качестве гипертекстовых связей, как и обычный текст. Читатель Web-страницы щелкает на изображении и отправляется на другую страницу. Для обозначения изображения как гипертекстовой метки используется та же метка , что и для текста, но между и вставляется метка
Например, в качестве ссылки может выступать домашняя страница на том же диске:
Clickonthishouse
Группы тегов HTML
Все теги HTML по их назначению и области действия можно разделить на следующие основные группы:HAVING
позволяет отобрать из множества сгруппированных строк только те, которые удовлетворяют указанному условию.ORDERBY позволяет определить условие упорядоченности строк в результирующем отношении. Такое условие представляет собой список колонок, по которым необходимо упорядочить строки. Для каждого из атрибутов можно выбрать убывающую или возрастающую последовательность.
Два или более SELECT-предложения могут образовывать общую результирующую таблицу с использованием реляционных операций соединения (UNION), пересечения (INTERSECT) и деления (DIFFERENCE).
HoTMetalPro
HoTMetalPro 3. фирмы SoftQuad располагает такими мощными функциями, как вставка графики с помощью механизма drag-and-drop, графический редактор кадров и возможность работы с тегами проекта HTML 3.2. Однако в ней отсутствуют мощные средства управления информационными узлами, и, несмотря на WYSIWYG-интерфейс, она требует глубоких знаний HTML. Программа не содержит средств управления информационным узлом, однако фирма SoftQuad обещает выпустить отдельную программу управления информационным узлом.В HoTMetalPro нет таких функций, как "мастера" для построения форм. Однако, программа располагает десятками шаблонов и образцов графики, а также исчерпывающим самоучителем и системой подсказок.
HoTMetalPro 3. поддерживает механизм drag-and-drop для вставки графики, редактор навигационных карт, создающий объекты произвольной формы, возможность отменить все изменения, внесенные после момента, когда файл был последний раз сохранен, сохраняемые макрокоманды, средства конвертирования из основных форматов текстовых процессоров, проверку синтаксиса импортированных HTML-файлов и соответствие последнему проекту стандарта HTML 3.2.
Окно редактирования обычно показывает создаваемый документ в форме, приближенной к режиму полного соответствия (WYSIWYG), с отображением текста HTML в виде небольших пиктограмм. Можно "спрятать" пиктограммы управляющих кодов и другие отвлекающие детали, чтобы работать исключительно в среде WYSIWYG.
Превосходный табличный редактор программы HoTMetal позволяет добавлять и удалять строки и столбцы, объединять несколько ячеек в одну и легко выполнять множество других операций над таблицами. Модуль управления изображениями создает каталоги миниатюр, представляющих графические образы, хранящиеся на диске, а инструмент картографирования составляет навигационные карты для клиентской или серверной стороны. Редактор кадров позволяет нарисовать структурную схему кадрового документа и перетащить файл, который будет отображать кадр, из Explorer, но не отображает содержательный материал в кадрах.
Слабое место HoTMetal - функции управления информационным узлом.
HTML-редакторы и визуальные редакторы гипертекста
Графические редакторы отличаются от программных тем, что обеспечивают более или менее точное соблюдение принципа WYSIWYG, то есть страница предстает такой, какой она будет в окне броузера. Программа встроена в страницу, но скрыта от автора, который не работает с ней напрямую. В свою очередь программные редакторы выводят на экран в качестве основного представления страницы исходный текст на языке HTML, предоставляя при этом в распоряжение автора мощные средства генерации кода, избавляющие от необходимости писать его вручную.В обоих типах программ предлагаются в сущности похожие средства создания и редактирования страниц. Кнопки инструментальной панели дают возможность быстрого доступа к таким элементам, как изображения, списки и связи, или к кодам, служащим для создания и размещения этих элементов на странице; как правило, они вызывают диалоговые окна, которые помогают на всех этапах проектирования. Многие продукты содержат "мастеров", автоматизирующих по крайней мере базовые процедуры создания страниц и способных помочь при построении форм, навигационных карт и выполнении других сложных операций.
Несомненно, пользоваться редакторами WYSIWYG легче, поскольку они изолируют автора от непростого синтаксиса HTML. Почти все популярные редакторы этого типа кроме MicrosoftFrontPage и NetscapeNavigatorGold, позволяют также выполнять непосредственное редактирование текста HTML. Недостаток графических инструментов заключается в том, что они дают приблизительное, часто лишь отдаленное представление о том, какой страница предстанет в окне броузера.
Программные редакторы предоставляют более мощные и гибкие средства. Они заставляют уделять большее внимание тексту программы, который стоит за документом. Однако в этом случае необходимо владеть языком HTML. По мере того как язык HTML становится все более сложным, он перестает быть пригодным для чтения человеком, и привлекательность средств, открывающих доступ к исходному тексту, уменьшается.
Однако HTML - лишь часть общей проблемы. Сложнее обстоит дело с построением интерактивных страниц. Интерактивность в Web по-прежнему базируется в основном на формах, которые собирают информацию от пользователей и затем, через связь с CGI-сценарием на сервере, обрабатывают данные и выдают результат. В настоящее время многие продукты позволяют создавать сложные формы. Так MicrosoftFrontPage имеет встроенные обработчики форм, которые устраняют необходимость вручную готовить сценарии для множества тривиальных задач. Интерактивные функции перемещаются на сторону клиента, где исполнимое содержимое создается с помощью таких технологий, как Java фирмы Sun или элементов управления ActiveX фирмы Microsoft.
Инструментальные средства разработки Intranet-приложений
Языки разработки интерактивных страниц поддержаны инструментальными средствами разработки Intranet-приложений.Наиболее широко представлены средства программирования мобильных приложений на языке Java.
Инструментальные системы для языков сценариев менее развиты, особенно это касается отладки сценариев.
Инструментальный набор JDK
Комплект разработчика JDK может быть бесплатно загружен с узла Web компании Sun по адресу http://java.sun.com. Данная страница Web позволяет загружать Windows-версии Java (для Windows 95 или WindowsNT, но не для Windows 3.1), а также версии для компьютеров Macintosh и различных UNIX-систем.Таблица 3.6. Основные программы SDK
| Программа | Назначение |
| java | Интерпретатор Java |
| javac | Компилятор Java |
| javadoc | "Генератор документации" Java |
| javah | Генератор файлов-описаний для языка С, который создает файлы заголовков и исходные файлы для определения классов |
| javap | Дизассемблер классов Java |
| jdb | Отладчик Java |
Комплект JDK содержит компилятор Java, предназначенный для создания апплетов. Кроме того, этот комплект предоставляет несколько утилит, таких, как appletviewer, которая позволяет запускать и тестировать апплеты; отладчик, который поможет в поиске и устранении ошибок в апплетах; а также "генератор документации" (documentgenerator), который облегчает усилия по документированию программ. Таблица 3.6 суммирует сведения о нескольких программах, которые можно найти в комплекте разработчика Java.
Кроме компилятора и различного рода утилит, комплект разработчика Java содержит в себе множество примеров апплетов, исходный код которых может помочь в освоении языка.
Инструментарий для других служб Internet
Утилиты электронной почты и в InternetExplorer, и в Navigator включают в себя адресные книги и поддержку MIME, распространенного способа передачи двоичных файлов, содержащих изображения или исполняемые программы. Немаловажна способность продуктов к работе с корреспонденцией в формате HTML. Единственное, что имеется в Navigator и отсутствует в InternetExplorer, так это группировка адресов и планирование сеансов снятия сообщений электронной почты.Группы новостей - еще одна популярная служба Internet. Прекрасно организованный, многопанельный модуль чтения новостей в Navigator позволяет быстро перемещаться на начало нового сообщения. Модуль чтения новостей InternetExplorer мало чем отличается от этого модуля в Navigator.
Таблица 2.1. Сравнение возможностей InternetExplorer 3.0 и Navigator 3.0
| Стандартные возможности | InternetExplorer 3.0 | Navigator 3.0 |
| Поддержка Windows 95 | да | да |
| Другие платформы | Mac, NT | Mac, NT, Unix |
| Удобство использования | очень хорошо | очень хорошо |
| Поддержка списка посещенных узлов | очень хорошо | удовлетворительно |
| Отметка страниц | хорошо | отлично |
| Навигация | очень хорошо | отлично |
| Система помощи | очень хорошо | хорошо |
| Производительность | отлично | отлично |
| Совместное исполнение задач | да | да |
| хорошо | очень хорошо | |
| Таблицы HTML | да | да |
| Кадры | да | да |
| Анимационные файлы GIF | да | да |
| Поддержка OLE-компонент ActiveX | да | да |
| Интерпретация программ Java и сценариев JavaScript | да | да |
| Интерпретация сценариев VBScript | да | нет |
| Возможность использования модулей расширения Plug-in | да | да |
| Инструментарий для рабочих групп | очень хорошо | хорошо |
| Грифельная доска | отлично | очень хорошо |
| Internet-телефон | хорошо | хорошо |
| Коллективное использование приложений | да | нет |
| Защита | очень хорошо | отлично |
| Инструментарий для других служб Internet | очень хорошо | очень хорошо |
| Клиент электронной почты | хорошо | очень хорошо |
| Посылка форм по электронной почте | нет | да |
| Модули чтения групп новостей | очень хорошо | очень хорошо |
| Возможности FTP | удовлетворительно | удовлетворительно |
Инструментарий для организации коллективной работы
InternetExplorer лучше подходит для рабочих групп. Такие приложения, как "белая доска" (whiteboard), "переговоры" (chat) и Internet-телефон, имеются в обоих продуктах. Оба броузера позволяют вам и вашим удаленным сотрудникам просматривать одни и те же изображения, снабжать их комментариями и сохранять на локальных жестких дисках непосредственно во время их обсуждения - и все по Internet. Однако, Navigator не допускает, чтобы более двух абонентов одновременно пользовались телефоном. Приложения InternetExplorer, напротив, позволяют принимать участие в работе сразу нескольким людям. Благодаря новой возможности совместного использования приложений в NetMeeting можно передавать другим сотрудникам управление приложением или папкой на вашем локальном жестком диске. Однако технология NetMeeting компании Microsoft сложнее, чем CoolTalk фирмы Netscape, которая допускает возможность одновременной работы только для двух пользователей.Интеграция Intranet-технологий и СУБД
Основой для построения информационных Intranet-приложений служит интеграция Intranet-технологий и СУБД.Хотя средств доступа Intranet-приложений к БД множество, основных способов организации такого взаимодействия не так много: доступ со стороны клиента и доступ со стороны сервера.
Интеграция офисных пакетов с Internet/Intranet
Новые версии офисных пакетов имеют средства импорта-экспорта гипертекстовых файлов. Это позволяет организовать статическую публикацию документов, электронных таблиц и т.д. Такие пакеты по существу выступают в качестве конверторов файлов в гипертекст и обратно. Кроме того, в них встроена поддержка гиперссылок, поэтому с их помощью можно создавать гипертекстовые страницы и Web-структуры.Отдельное направление развития офисных пакетов связано с реализацией их в виде мобильных приложений на языке Java.
5.1.1. MicrosoftOffice 97 в Web
В популярном комплекте офисных приложений Office 97 фирмы Microsoft наряду со стандартными предлагаются Web-ориентированные редакции, специально предназначенные для использования дома, в корпоративном секторе и в профессиональной деятельности. Дополнительно входят средства Web-издательской деятельности (Publisher 97).
Панель WebToolbar обеспечивает доступ из текущего приложения ко всем функциям стандартного Web-броузера, в том числе к навигации во взаимосвязанных гипертекстовых документах.
Броузер InternetExplorer производства Microsoft может использоваться для просмотра как в Internet, так и в корпоративной интрасети. Благодаря технологии ActiveX реализована интеграция всех функций и компонентов, из броузера можно просматривать как HTML-, так и Office-документы.
Web-расширения, ранее представленные в виде дополнительных компонентов (InternetAssistant для текстового процессора Word), теперь полностью встроены в основные продукты Office; появилось множество дополнительных заполнений фона, элементов оформления списков и средств графического дизайна на основе горизонтальных линий, которые доступны из любых Office-приложений. Утилита-мастер WebPageWizard помогает в создании Web- страниц.
MicrosoftWord 97 - мощный интеллектуальный текстовый процессор, удобный и простой в использовании инструмент создания профессионально оформленных документов и публикации материалов в Internet/Intranet.
Автокоррекция имеет много новых свойств, в том числе, функцию автоматического создания гипертекстовых ссылок.
MicrosoftWord 97 позволяет легко создавать красочные страницы в формате HTML, готовые для публикации на Web-сервере. Специальные знания о языке HTML не требуются. Достаточно просто сохранить готовый документ как HTML-страницу.
При создании таких страниц удобно использовать стандартные атрибуты Web-страниц:
В Word предусмотрено автоматическое преобразование графики и OLE-объектов в изображения форматов JPEG и GIF (допускается присоединение гипертекстовых ссылок и к графическим элементам), поддерживаются новейшие HTML-теги.
В Word доступны те же текстуры для заполнения фона, что и в Publisher и PowerPoint, поэтому при создании Web-страниц средствами Word выбор значительно шире.
MicrosoftExcel содержит встроенные функции, позволяющие легко помещать на Web-сервер документы, созданные в среде Excel, включая графику. К их числу относятся: мастер сохранения документа в формате HTML, средство просмотра содержимого документов Excel97 для пользователей, не работающих с этим приложением и ряд других.
Excel 97 позволяет импортировать данные из HTML-документов, найденных на Web-сервере, восстанавливая при этом формат и оформление таблицы. После импорта данные доступны для выполнения любых операций в MicrosoftExcel.
В MicrosoftExcel 97 имеется операция создания запроса к данным, хранящимся на Web-сервере. Можно создать постоянную ссылку на страницу в Internet, и данные в таблице будут обновляться автоматически.
Версия Excel, входящая в комплект Office 97, предусматривает публикацию деловой графики в формате GIF, а также импорт данных из HTML-страниц при помощи специально составленного запроса.
PowerPoint 97 - инструмент подготовки и проведения презентаций. В качестве средства отображения используют проецирование на экран через жидкокристаллическую панель, 35мм слайды, цветные и черно-белые "прозрачки", страницу Web-сервера.
Специальный мастер автосодержания (AutoContentWizard) помогает быстро создавать качественные профессионально оформленные презентации, включает около 30 новых шаблонов. Система подготовки презентаций MicrosoftPowerPoint 97 имеет встроенный мастер сохранения презентаций в формате HTML для публикации на Web-сервере.
Специальное средство просмотра презентаций (PowerPointAnimationPlayer) позволяет просматривать презентации на Web-сервере.
Новые Web-ориентированные возможности в PowerPoint включают трехмерные кнопки ActionButton, помещаемые на слайды презентации. Они могут определять гипертекстовые ссылки на Web-страницы точно так же, как и на другие слайды презентации или документы. Слайды PowerPoint можно экспортировать в формате HTML-страниц. Таким способом можно создавать анимационные ролики для Web-страниц.
В MicrosoftAccess 97 включены свойства, позволяющие публиковать данные из Access на Web-сервере. Так, HTML включен в список форматов, в которых можно создавать отчеты. Теперь очень просто публиковать данные в виде отчета MicrosoftAccess на сервере.
Новая Web-функция в Access позволяет сохранять сгенерированные Access отчеты в формате HTML. В Access можно создавать и Web-формы. Новый тип поля Hyperlink своим значением может иметь ссылку на любой Web-узел, либо документ Office.
В MicrosoftAccess имеется специальный мастер быстрого перемещения информации из базы данных на Web-сервер. Среди новинок возможность генерации Web-приложений, доступ к FTP-серверу, использование ActiveX-компонент, синхронизация БД с информацией на Web-сервере, поддержка полей hyperlink в БД, ссылок в таблицах данных, формах и отчетах.
MicrosoftOutlook 97 - настольный информационный менеджер, основанный на продуктах MicrosoftExchangeClient (клиент электронной почты) и MicrosoftSchedule+ (персональный менеджер расписаний). Outlook объединяет следующие функции:
Outlook автоматически проверяет набранный адрес почтового сообщения в адресной книге.
Outlook может выступать как клиент для любой почтовой системы, поддерживающей интерфейс программирования приложений электронной почты MAPI.
Outlook может работать с предшествующими версиями MicrosoftMail, MicrosoftExchangeClient и Schedule+, причем никакого обновления сервера не требуется. Outlook является клиентом MicrosoftExchangeServer для 32-разрядных Windows.
Из Outlook можно набрать телефонный номер, послать почтовое сообщение, факс, перейти на личную Web-страницу.
Outlook является клиентской программой для связи с Internet, предоставляя полный набор функций, которые могут быть использованы как с MicrosoftExchangeServer, так и при непосредственном соединении с поставщиком услуг Internet.
Пользователи Outlook могут посылать и принимать почтовые сообщения через Internet. В теле почтового сообщения можно помещать ссылки на ресурсы Internet. Нажатие кнопки мыши на такой ссылке автоматически запускает MicrosoftInternetExplorer или другую программу просмотра.
Outlook предоставляет возможность планировать встречи и посылать запросы на их проведение через Internet другим пользователям Outlook или Schedule+.
Используя Outlook, удаленные пользователи могут соединяться с MicrosoftExchangeServer через Internet для того, чтобы иметь полный доступ к электронной почте, расписаниям, общим папкам в сети их стационарного офиса.
TeamManager 97 - тесно интегрированное со средой Office 97. Это новое приложение для управления коллективной работой. Официально эта программа корпорации Microsoft входит в состав интегрированного комплекта, однако продается и отдельно. Она служит связующим звеном между средствами для работы с электронной почтой, приложениями Office и системой MicrosoftProject и обеспечивает членов коллектива и менеджеров самой свежей информацией о ходе работ.
TeamManager может тесно взаимодействовать с программой Outlook, которая превращается в данном случае в интерфейс управления коллективными проектами. С помощью Outlook можно определять и модифицировать выполняемые задания - эта информация будет передана TeamManager автоматически.
Программа MicrosoftPublisher интересна тем, что пользователь невысокой квалификации может создавать с ее помощью материалы профессионального качества.
Publisher 97 позволяет работать не только с печатными, но и с Web-материалами. Благодаря "мастеру" WebSiteWizard, Web-страница оказывается для пользователя Publisher просто еще одним типом документа наряду с календарями, визитными карточками, логотипами, фирменными бланками, резюме и другими формами деловых бумаг. Можно опубликовать в Web любой документ, подготовленный средствами Publisher.
При создании нового Web-узла, можно обратиться к утилите-мастеру PageWizard, выбрав в качестве типа создаваемого документа WebSite. При создании многостраничных узлов Publisher добавит перекрестные ссылки между отдельными страницами автоматически. Выбор варианта BusinessSite (коммерческий узел), приводит к тому, что "мастер" предлагает на выбор несколько заготовок страниц, которые, по его разумению, могут пригодиться.
Можно быстро подготовить каркас многостраничного Web-узла. "Мастер" помогает рационально разместить текстовый и графический материал. Все редактирование осуществляется в WYSIWYG-среде Publisher. Предусмотрено размещение на Web-страницах таблиц.
Реорганизованная библиотека графики ClipGallery поддерживает 256-цветные изображения. Дополнительные картинки для нее можно получить из Web с помощью функции MicrosoftClipGalleryLive.
Интерфейс связи с БД JDBC
JavaSoft, подразделение компании SunMicrosystems, в начале 1996 года анонсировало интерфейс прикладного программирования JDBC, который обеспечивает доступ к базам данных из переносимых, независимых от платформы приложений, написанных на языке Java. Предусмотренная в нем функция управления драйверами БД автоматически загружает в память компьютера требуемый JDBC-совместимый драйвер, что позволяет приложениям, использующим новый интерфейс от JavaSoft, взаимодействовать с разными БД. Описанная функция будет включена и в будущие пакеты Sun на языке Java. Кроме того, фирма намерена выпустить программный мост между JDBC и продуктами, основанными на спецификациях ODBC фирмы Microsoft.О поддержке интерфейса JDBC и начале разработки ПО на его основе уже заявили IBM, Informix, ObjectDesign, Oracle, Sybase, а также поставщики инструментальных средств BorlandInternational, Gupta (Centura), Intersolv, OpenLinkSoftware, SASInstitute и Visigenic.
|
Интерпретируемые загружаемые Intranet-приложения
Предложенная фирмой Sun технология Java ориентирует взаимодействие между клиентом и сервером на поток команд, а не данных. В ходе сеанса обеспечивается фоновая подкачка через сеть на компьютер клиента программных агентов - апплетов, которые берут на себя функции обеспечения гибкого взаимодействия. Все, что нужно для этого - встроить в Web-броузер исполняющую систему для апплетов.Для исполнения апплетов на любой архитектуре необходимо обеспечить их выполнение на абстрактной архитектуре. Конкретизацией занимается Web-броузер. Апплеты представляют собой переносимый бинарный код, способный функционировать на любой архитектуре, где реализована виртуальная Java-машина, интерпретирующая байт-коды, порожденные соответствующим компилятором. Байт-коды были впервые реализованы при создании переносимых Pascal-программ и получили название P-кодов.

Рис. 1.3. Схема интерпретации загружаемых Intranet-приложений
Схема, используемая при реализации языка Java, во многом схожа с принципами P-кодов. Исходный текст на языке Java транслируется специальным конвертером (JavaCompiler) в Java-байт-код. При использовании в Internet/Intranet этот код передается по каналам связи на удаленную машину, где попадает в загрузчик байт-кодов (BytecodeLoader). Затем он подвергается специальной динамической проверке, которую осуществляет верификатор байт-кодов (BytecodeVerifier). Предварительные проверки, возложенные на верификатор, гарантируют корректность типов параметров всех пришедших байт-инструкций, отсутствие переполнения стека операндов и, наконец, корректность доступа к полям объекта с учетом атрибутов. Это предпринято с целью обеспечить безопасность исполняемого кода, а также для проведения скрытой оптимизации. Затем проверенный байт-код передается интерпретатору, который посредством исполняющей системы виртуальной Java-машины осуществляет привязку к конкретной архитектуре.
При построении информационных приложений с использованием Java-технологии получается классическая двух- или трехзвенная архитектура клиент-сервер (рисунок 1.3), а гипертекст уходит на задний план и выполняет лишь роль инициатора апплетов. Существенным достоинством такой технологии является независимость приложения от аппаратной платформы. Но есть и немало недостатков: невысокое быстродействие вследствие интерпретации байт-кодов, возврат к оконной метафоре "рабочего стола", остаются те же проблемы организации связи с БД.
Intranet-приложения с доступом к БД
Наличие диалоговых свойств в HTML и интерфейса CGI позволяет строить Intranet-приложения с доступом к БД (рисунок 1.2). Наиболее распространена схема динамической публикации отчетов. При этом в качестве CGI-процедуры используется параметризуемый генератор отчетов. Однако это не единственная схема, возможно применять программы ввода информации в БД. Для контроля вводимых данных лучше применять сценарии на клиентской стороне, а не серверные процедуры. В последнем случае замедляется реакция, и диагностика ошибок носит отложенный пакетный характер.Если используются традиционные статичные страницы гипертекста, то в ответ на запрос клиента Web-сервер передает страницу в формате HTML. Однако при работе Intranet-приложения с базой данных адрес URL указывает не на страницу гипертекста, а на серверную программу или сценарий. Серверная процедура получает введенные пользователем данные, формирует и передает SQL-запрос (определяющий логику управления данными DL) и, возможно, данные к СУБД. Сервер БД по запросу выполняет обновление, вставку, удаление или выборку записей из БД. CGI-процедура полученные результаты преобразует в формат HTML или в формат диалоговых переменных. Затем Web-сервер посылает полученную HTML-cтраницу или значения диалоговых переменных броузеру для отображения. Так как этот процесс основан на технологии Web, клиентской платформой может стать любой компьютер, на котором исполняется Web-броузер, а серверной платформой - любая ЭВМ под управлением Web-сервера.
Использование CGI-процедур имеет ряд недостатков - статичное представление информации, преобразование результата-отчета в HTML-файл, отсутствие динамического просмотра изменения информации в базе данных, процедура "не помнит состояний запросов" - каждое обращение к БД требует повторного установления соединения. Кроме того, такой принцип работы перегружает коммуникационную среду.
Рассмотренная схема по существу является трехзвенной архитектурой клиент-сервер, где Web-сервер выступает в качестве сервера приложений.

Рис. 1.2. Схема Intranet-приложения с доступом к БД
ISAPI и NSAPI
Ведущие поставщики, такие как Netscape, BorlandInternational, Microsoft и Sun, устраняют недостатки, присущие спецификации CGI, используя вместо нее собственные API-интерфейсы. Netscape предлагает NetscapeServerAPI, компания Microsoft разрабатывает технологию ActiveX и интерфейсы InternetServerAPI (ISAPI), которые взаимодействуют с совместимыми OLE-серверами для выполнения распределенных вычислений. Sun занимается созданием интерфейса JDBC, который позволит устанавливать непосредственную связь между Web-страницами, написанными на языке Java, и базой данных. Некоторые API-интерфейсы из набора JDBC уже предлагаются пользователям, но большая их часть находится в стадии разработки.Microsoft выпустила Web-сервер InternetInformationServer (IIS), поддерживающий ISAPI, который входит в состав WindowsNT и тесно интегрирован с СУБД SQLServer. Запрос передается серверу IIS, который использует ISAPI для извлечения данных из БД и передачи их пользователю в формате HTML. Представители Microsoft считают, что такое решение намного проще в использовании, чем CGI, и работает на порядок быстрее.
Oracle предлагает ПО WebServer, который также использует API-интерфейсы Oracle. С его помощью можно разрабатывать приложения на языках PL/SQL, C и C++, которые исполняют запросы к базе данных, написанные на языке PL/SQL. В дальнейшем компания намерена дополнить WebServer поддержкой спецификаций JDBC.
Кроме риска, связанного с защитой данных, CGI присущи ограниченные возможности масштабирования и невысокое быстродействие. Каждая реализация CGI-сценария запускается в своем собственном адресном пространстве, а не в адресном пространстве Web-сервера. Для 32-разрядных систем Windows это означает, что каждое обращение к CGI-сценарию требует запуска приложения WinExec, загрузки с диска новой копии исполняемой программы и, возможно, новой копии сценария, а также создания нового адресного пространства с новым процессом и новой структурой указателей. Часто сам сценарий делает очень мало, поэтому непроизводительные затраты на создание процесса составляют большую часть времени выполнения сценария CGI.
Один из способов улучшить эту ситуацию - создать расширение Web-сервера, которое запускается как динамическая библиотека DLL и выполняет обработку каждого вызова сервера по отдельной структуре. Это равнозначно созданию структуры указателей в адресном пространстве Web-сервера для каждого клиентского запроса, что значительно проще, чем создание процесса для каждого клиентского запроса.
Два ведущих производителя Web-серверов, Netscape и Microsoft, опубликовали свои собственные патентованные схемы расширения Web-сервера, основанные на DLL. Интерфейс NSAPI компании Netscape работает на платформе Unix, которая поддерживает совместно используемые объекты. Интерфейс ISAPI корпорации Microsoft не будет работать в Unix, поскольку сервер IIS этой же корпорации запускается только на системе WindowsNTServer.
DLL-библиотеки ISAPI имеют две необходимые точки входа - GetExtensionVersion и HttpExtensionProc. Первый вызов позволяет серверу узнавать номера версий расширений DLL и строку описания при инициализации, а второй эквивалентен процедуре main расширения. Информация в HttpExtensionProc передается при помощи единственного параметра и указателя управляющего блока расширения. Структура этого блока несет главную информацию, которая должна быть направлена в переменные среды CGI-программы.
ISAPI может следующее:
Дополнительную информацию по ISAPI вы можете найти в IISSDK корпорации Microsoft по адресу: http://www.microsoft.com/intdev/.
Дать резюме для NSAPI нелегко. Будучи аналогичным ISAPI, интерфейс NSAPI все же является более сложным и теснее привязан к конфигурации сервера, хотя и более гибок. Конфигурация каждой функции NSAPI должна быть задана в объектной базе данных конфигурации Netsite. Блоки параметров NSAPI базируются на парах name-value, что во многом аналогично переменным Web-форм. Дополнительную информацию по NSAPI можно найти по адресу: http://www.netscape.com/newsref/std/server_api.html.
Когда каждый компьютер в мире наконец получит свой Web-сервер, возникнет интересный потребительский рынок для расширений серверов. Любопытно, найдутся ли желающие провести опрос, чтобы получить возможность предсказать, когда же это произойдет?
Использование интерфейса CGI для связи с СУБД
Первым технологическим решением, обеспечивающим создание интерактивных страниц Web, стал API-интерфейс CGI. Эта спецификация позволяет строить программы, расширяющие возможности Web-сервера, которые позволяют разработчикам обращаться к HTTP-серверам, чтобы оперативно выводить информацию в ответ на запросы пользователя. CGI-программа исполняется на сервере, обеспечивая обработку данных и запросов пользователя. Программы, поддерживающие CGI, могут осуществлять обычные операции обработки данных, включая вычисления, исполнение запросов к базе данных, обновление БД и взаимодействие с другими сетевыми приложениями. Кроме того, CGI-программы автоматически определяют, какие HTML-форма, шаблон или документ должны быть выведены на экран в ответ на запрос пользователя.Программы, поддерживающие спецификацию CGI, можно писать на различных языках программирования, в том числе С, С++ и PERL. Они могут обращаться к реляционным БД, считывать и выводить данные, собирать информацию с других компьютеров и исполнять многие другие функции. Множество CGI-программ самого различного назначения бесплатно распространяются по Internet. По мнению аналитиков, принципиальные ограничения на функциональные возможности CGI-совместимых продуктов отсутствуют. Эти программы могут взаимодействовать практически с любой реляционной базой данных и Web-сервером. Однако CGI-продукты имеют один существенный недостаток: не поддерживают непрерывную связь между БД и Web-сервером. Они подключаются к базе данных, исполняют запрос пользователя Web-страницы, а затем отключаются от БД. При следующем запросе весь процесс подключения к БД повторяется.
На сленге Web-мастеров любая внешняя программа, запускаемая Web-сервером в соответствии со спецификациями CGI, называется CGI-скриптом. CGI-скрипт может быть написан на языке программирования (С, С++, Паскаль и т.д.) или на командном языке (языки семейства shell, perl и т. д.). CGI-скрипт, выполняющий роль посредника между Web-сервером и другими видами серверов (например, сервером баз данных), называется шлюзом (видимо, более правильно было бы использовать термин CGI-шлюз). Наличие CGI-скриптов на стороне Web-сервера позволяет, в частности, перенести часть логики приложения из клиента на сервер. CGI-шлюзы представляют собой средство для организации трехзвенной (в общем случае, многозвенной) архитектуры клиент-сервер.
В спецификациях CGI предусмотрены четыре способа взаимодействия Web-сервера и CGI-скрипта (по крайней мере, в среде ОС Unix). Первый способ состоит в использовании создаваемых сервером переменных окружения, через которые передается как общая информация, независящая от функциональных особенностей CGI-скрипта (например, имя и версия Web-сервера), так и специфические данные, определяющие поведение CGI-скрипта (скажем набор значений, введенных в форму на стороне клиента). Второй способ заключается в формировании параметров argc и argv, которые передаются функции mainCGI-скрипта (как если бы CGI-скрипт вызывался командной строкой в интерактивном режиме). Этот способ применяется для реализации ограниченного класса запросов ISINDEX. Наконец, входные параметры могут передаваться CGI-скрипту через файл стандартного ввода, а CGI-скрипт может передавать Web-серверу результирующие данные через файл стандартного вывода.
Использование комплексов защиты сетей
Всего несколько месяцев назад типичная программа-брандмауэр представляла собой не очень тщательно отделанное UNIX-приложение, основанное на использовании какой-то одной довольно простой технологии. При его разработке удобство пользования стояло в списке приоритетов явно ближе к концу, чем к началу.Нынешнее поколение брандмауэров демонстрирует, насколько значителен прогресс в данной области и насколько быстро он достигнут. Лучшие из современных продуктов предлагают сложные настраиваемые схемы управления доступом, позволяющие очень подробно расписать, кому разрешен доступ в корпоративную сеть и при каких условиях. Многие из них оснащены графическим пользовательским интерфейсом, делающим управление многочисленными параметрами более удобным, благодаря чему сокращается вероятность возникновения ошибок, любая из которых может впоследствии очень дорого обойтись. Растет число продуктов, ориентированных в первую очередь на платформу WindowsNT.
По мере того, как все больше предприятий открывают свои сети для Internet-трафика, брандмауэры приобретают статус ПО первой необходимости. Это один из важнейших "бастионов безопасности", защищающих локальную сеть или интрасеть корпорации от большинства попыток несанкционированного проникновения, хотя ни одна из этих программ не гарантирует той надежности, какой можно было ожидать от ПО с таким названием. Было бы неосторожно полагаться только на брандмауэр, необходимо дополнять его другими средствами обеспечения безопасности.
Место брандмауэра обычно между внутренними локальными и глобальными сетями с одной стороны и внешними сетями, такими как Internet, с другой. Основное его назначение - ограничение доступа. По существу, такая программа представляет собой контрольно-пропускной пункт, где у каждого проверяют документы. Брандмауэру предъявляются имена пользователей, идентификаторы приложений, IP-адреса и другие характеристики проходящей информации. Затем к этим данным применяются правила, заданные администратором системы.
Если раньше в типичном брандмауэре использовалась какая-либо одна технология, то теперь все чаще встречаются гибридные системы, а администратору предоставляется широкий выбор методов обеспечения безопасности. Например, он может разрешить некоторой группе абонентов сети неограниченный доступ, а другой - использовать лишь систему LotusNotes, и то только в установленные часы.
Но расширение возможностей ведет к усложнению работы с системой. К счастью, многие продукты оснащаются графическим пользовательским интерфейсом, что значительно облегчает администратору принятие и реализацию многих решений.
Хотя количество брандмауэров, предназначенных для среды UNIX, остается весьма значительным, все большую популярность приобретает платформа WindowsNT, а некоторые продукты позволяют осуществлять и с рабочих станций "легкой весовой категории", функционирующих под управлением Windows 95.
Еще недавно брандмауэры в зависимости от применяемого метода управления доступом делили на четыре большие категории: фильтры пакетов, шлюзы уровня приложения, шлюзы низкого уровня и серверы-посредники (proxy). Большинство же современных продуктов - это гибриды, не укладывающиеся ни в одну из названных категорий.
Метод фильтрации пакетов состоит в том, что все поступающие в маршрутизатор пакеты проверяются на соответствие адресов отправления/назначения и запрашиваемых/предо-ставляемых сервисов тем или иным условиям. Этот метод - самый простой в администрировании, зато построенную на его основе защиту и преодолеть легче. Процесс задания правил, на основе которых предоставляется или не предоставляется доступ, отнимает много времени и чреват ошибками. Необходимо перечислить все типы пакетов, пропуск которых не разрешен. Каждая ошибка - это серьезная пробоина в вашем оборонительном щите.
Шлюзы уровня приложения представляют собой специализированные программы, ограничивающие трафик, связанный с определенным приложением, например, с системой электронной почты или с LotusNotes. В этих системах применяются особые коды для каждого приложения, а не для сетевого трафика в целом. Такие шлюзы считаются надежными благодаря тому, что администратору, формулирующему правила доступа, приходится учитывать значительно меньшее количество вариантов. У средств этой группы хорошая репутация.
Шлюзы низкого уровня предназначены для соединения внешнего TCP/IP-порта с каким-либо внутренним устройством, например, с сетевым принтером. Эти шлюзы функционируют как интеллектуальные фильтры, определяющие допустимость сеансов связи по протоколу TCP или UDP. Конкретное приложение, участвующее в обмене, не идентифицируется.
Серверы-посредники образуют отдельный класс продуктов, но могут выполнять, в частности, и функции брандмауэра. На таком сервере обычно хранят тиражируемые копии некоторых Web-страниц, чтобы упростить доступ к ним отдельных категорий пользователей. Так, можно разместить на нем информацию, предназначенную для свободного доступа, а конфиденциальную упрятать в недра корпоративной сети подальше от точки входа.
Современные системы являются, как правило, гибридными. Даже если основной продукт основан на технологии одного типа, к нему обычно предлагаются факультативные компоненты. Такие гибриды позволяют более гибко задавать ограничения доступа.
Помимо перечисленных выше, существует еще одна технология, называемая контролем отклонений, используя ее, выявляют характеристики содержимого пакетов при нормальной работе с системой и на этой основе формируют правила для проверки. Указанная технология реализована в пакете FireWall-1, где различные наборы правил создаются в зависимости от контекста обмена: источника и пункта назначения. Например, правило, сформированное на основе собранной информации о характеристиках взаимодействия с некоторым приложением благонадежного клиента, может затем применяться для контроля за работой с тем же приложением других клиентов. При таком подходе пакет работает на самом нижнем уровне протокола OSI, так что контроль проходящих сообщений осуществляется прежде, чем они успеют вступить во взаимодействие с операционной системой.
Еще одна важная административная функция - регистрация. Эффективная стратегия обеспечения безопасности требует регистрировать все попытки проникновения через брандмауэр, включая и неудавшиеся. Зная источник опасности, администратор сможет своевременно принять соответствующие меры по укреплению "обороны". Немедленное уведомление администратора о происходящем очень важно. Некоторые продукты используют для этого телефонную связь, другие - пейджинговую или систему электронной почты. Но у электронной почты есть один недостаток - сообщение остается непрочитанным, пока адресат не заглянет в свой почтовый ящик. Пейджеру обычно удается быстрее привлечь внимание.
Web-сервер может быть отрезан от сети, когда какой-то злоумышленник, используя архитектуру протокола TCP/IP, посылает запрос с фальшивым IP-адресом. В результате Web-сервер не в состоянии установить соединение, так как приемник сообщения не может получить подтверждения от отправителя, которого не существует. Дело в том, что согласно протоколу TCP/IP, при подключении конечного пользователя к Internet его компьютер обменивается сообщениями с хост-машиной на другом конце связи. Если пользователь присваивает своему компьютеру фальшивый IP-адрес, то хост-машина некоторое время сохраняет связь и тщетно ждет подтверждения. Если число таких обращений достаточно велико, хост-машина будет заниматься только их обработкой и не сможет реагировать на нормальные запросы.
Однако поставщики брандмауэров, защищающих интрасети от вторжений извне, не дремлют. Они выпускают для своих продуктов дополнительные модули, которые предохраняют Web-серверы от фальшивых запросов. В различных продуктах данная проблема решается по-разному. Например, программа SYNDefender компании CheckPoint проверяет все запросы на соединение до того, как они поступят в хост-машину.
Продукт N.O.A.H (NoAttackHere) фирмы LivermoreSoftwareLaboratories выявляет повторяющиеся запросы на связь, сокращает время, в течение которого хост-машина ждет подтверждения от инициатора запроса, исключает все предыдущие записи в очереди на подключение и сообщает системному администратору о проблеме.
Брандмауэр Guardian компании LanOptics проверяет каждый поступающий пакет на всех семи уровнях сетевого протокола, чтобы обнаружить какие-либо отклонения от нормы.
Однако, по мнению некоторых экспертов, полностью обезопасить Web-серверы практически невозможно. Можно только максимально затруднить злоумышленнику путь к успеху, защитив ядро системы и тщательно выполняя ее мониторинг. Пользователи должны внимательно отнестись к этой проблеме, так как, с одной стороны угроза атаки вполне реальна, а с другой - средства для ее решения уже существуют.
История развития HTML. Диалекты и стандарты
Изначально HTML, как и положено SGML-приложению, разделял все особенности идеологии SGML. Из сорока с небольшим тегов HTML версии 1.2 (датированной июнем 1993 г.) всего три, да к тому же и не рекомендованных к использованию, тега осмеливались намекать на физические параметры представления документа. Вся разметка была чисто логической, и лишь в описательной части стандарта, сопровождающей формальное определение тегов, можно было прочесть что-нибудь вроде "в графических броузерах действие этого тега может передаваться курсивным начертанием".А первым (и долгое время единственным) графическим броузером в те далекие времена была программа Mosaic, разработанная, как и собственно WWW, в научном учреждении - Национальном центре суперкомпьютерных приложений США (NationalCenterforSupercomputerApplications, NCSA; http://www.ncsa.uiuc.edu). Так что нет ничего удивительного в том, что в этот "золотой век" никаких противоречий между официальными стандартами и их реализацией в броузерах еще не существовало. HTML неторопливо развивался, оставаясь в рамках парадигмы структурной разметки, и в апреле 1994 г. началась подготовка спецификации следующей версии языка - 2.0. Этим занимался образованный в том же году Консорциум W3 (W3 Consortium, сокращенно W3C; http://www.w3.org/pub/WWW), унаследовавший от CERN верховную власть и авторитет в мире WWW.
В настоящий момент консорциум, имеющий статус "международной некоммерческой организации", объединяет свыше 150 организаций-членов, в том числе фирмы Netscape, Microsoft и множество других. Однако в 1994-1995 г.г. его членами были почти исключительно университеты и научные учреждения. Столь "академический" состав W3C сказывался как на самих документах, публикуемых консорциумом, так и на процедуре (и особенно на сроках) их принятия. Достаточно сказать, что окончательный вариант HTML 2.0 (http://ds.internic.net/rfc/rfc1866.txt), единственным серьезным усовершенствованием в котором был механизм бланков (форм) для отсылки информации с компьютера пользователя на сервер, был официально утвержден лишь в сентябре 1995 г., когда в W3C уже полным ходом шло обсуждение HTML 3 (или, как его называли поначалу, "HTML+").
Пожалуй, проект HTML 3 (http://www.w3.org/pub/WWW/MarkUp/html3/) - самая яркая и неоднозначная страница в истории языка. Работа над ним началась в марте 1995 г., и первоначальный вариант стандарта включал в себя много интересных нововведений - теги для создания таблиц, разметки математических формул, вставки обтекаемых текстом рисунков, примечаний и др. Но самое главное - HTML 3.0 был попыткой разрешить уже достаточно очевидное к тому времени противоречие между идеологией структурной разметки и потребностями пользователей, заинтересованных в первую очередь в гибких и богатых возможностях визуального представления.
Чтобы разрешить это противоречие, не оскверняя заветов отцов-основателей HTML, авторы версии 3 ввели в ней поддержку нового средства - так называемых иерархических стилевых спецификаций (CascadingStyleSheets, CSS; http://www.w3.org/pub/WWW/TR/REC-CSS1). Система CSS формально независима от HTML, имеет совершенно иной синтаксис (более того, HTML 3 можно стыковать с разными реализациями CSS, обладающими разным синтаксисом и возможностями), не наследует никаких идеологических ограничений и позволяет, уже в совершенно иных терминах, задавать параметры визуального представления для любого тега HTML. С помощью CSS автор может наконец с чистой совестью указать, каким шрифтом какого кегля набирать заголовки такого-то уровня. И, что самое важное, достигнуто это было не введением новых тегов, а разработкой механизма, позволяющего влиять на интерпретацию уже существующих тегов логической разметки, причем с учетом контекста их употребления. Броузеры с текстовым интерфейсом или с синтезатором речи смогут с легкостью проигнорировать эту дополнительную информацию и использовать для оформления свои обычные средства.
Слово cascading в названии системы CSS служит напоминанием о том, что в действительности на вывод каждого тега в документе могут оказывать влияние сразу несколько стилевых спецификаций, образующих иерархическую систему: например, поверх спецификаций, относящихся к конкретному документу, может действовать стилевой файл, общий для всех документов на сервере. Кроме того, пользователь броузера, поддерживающего CSS, может указать свои собственные параметры вывода для тех или иных тегов. Конфликты, которые при этом возникают, разрешаются в пользу более частных, узких спецификаций: то, что указано для конкретного документа, берет верх над спецификациями для всего сервера, а параметры вывода тега в данном контексте имеют преимущество перед параметрами для того же тега "вообще", без учета контекста. В случае же конфликта спецификаций, заданных пользователем, с установками автора страницы побеждают последние, хотя пользователь может при желании изменить эту ситуацию на обратную.
Нет сомнения, что CSS - почти идеальное средство избавить HTML от наследственных дефектов и перевести его развитие на принципиально новые рельсы. Тем досаднее то, как сложилась судьба этого замечательного изобретения. Поскольку спецификацию CSS увязали с другими нововведениями HTML 3, W3C долго не утверждал ее в качестве официального стандарта; задерживалось доведение до более или менее завершенного вида, при котором стала бы возможной ее реализация в коммерческих продуктах.
А между тем коммерческое освоение WWW не заставило себя долго ждать. В начале 1994 г. группа разработчиков броузера Mosaic под предводительством Джеймса Кларка, который за несколько лет до того создал и "вывел в люди" компанию SiliconGraphics, основала корпорацию NetscapeCommunications и вскоре выпустила первую версию коммерческого броузера NetscapeNavigator. Вскоре после этого начался экспоненциальный рост WWW, продолжающийся по сей день. Не менее впечатляющие темпы показала при этом и Netscape, которая в конце 1995 г. объявила, что достигнутые результаты делают ее самой быстрорастущей компанией в мировой истории (!). Чтобы закрепить лидерство (на которое, впрочем, тогда еще мало кто покушался) и привлечь новых пользователей, Netscape, увы, вводила в HTML все новые и новые усовершенствования, - и эти усовершенствования поддерживались только броузером NetscapeNavigator.
Практически все новые теги, в изобилии предлагавшиеся Netscape, были направлены на улучшение внешнего вида документа и расширение возможностей его форматирования. Причины этого понятны: чтобы убедить, скажем, бизнесмена, что ему пора обратить внимание на новое средство коммуникации и рекламы, прежде всего нужно показать ему это средство в привлекательном, "товарном" виде. Поставив себе целью завоевание корпоративного рынка, разработчики Netscape не могли (да и не хотели, по-видимому) уделять должное внимание сложившимся традициям развития языка. В результате тот вариант HTML, который поддерживала выпущенная в январе 1996 г. версия NetscapeNavigator 2.0, представлял собой довольно странную смесь старых логических тегов с беззастенчиво вломившимися новыми, ориентированными на графическое экранное представление документа и затрудняющими его воспроизведение на других устройствах вывода.
Такая политика компании, с одной стороны, принесла ей быстрый и впечатляющий успех (одно время версии NetscapeNavigator составляли более 90% всех используемых броузеров), а с другой - вызвала ожесточенное сопротивление наиболее сознательной части HTML-сообщества. Энтузиасты неустанно разъясняли каждому, кто согласен был их слушать, что HTML по природе своей не имеет права зависеть от какого-то конкретного броузера и что заявления типа, "эту страницу лучше всего смотреть в NetscapeNavigator", являются насмешкой над здравым смыслом. Движение "борцов за чистоту HTML" существует и сейчас, однако ощутимого влияния не имеет.
Многие Web-дизайнеры, даже признавая справедливость аргументации "HTML-пуристов", считают использование новых тегов практически оправданным. Неудобства при этом будут испытывать лишь несколько процентов пользователей других броузеров, для которых страницы с этими тегами будут выглядеть совсем не так, как задумал автор (хотя текст в большинстве случаев все равно останется читабельным). Вероятно, аргументы противников Netscape звучали бы более убедительно, если бы сам по себе "официальный" HTML не был столь неимоверно беден изобразительными возможностями. Меня, к примеру, пробирает дрожь при мысли, что для миллионов страниц в современной "паутине", путешествие по которой способно порой принести подлинное эстетическое наслаждение, были бы доступны лишь возможности HTML 2.0.
Помимо использования "плохих" Netscape-ориентированных тегов, широко распространена также практика "злоупотребления" средствами HTML ради сопутствующих им визуальных эффектов. Скажем, вместо того чтобы использовать тег TABLE только для оформления настоящих ("логических") таблиц, Web-дизайнеры сплошь и рядом применяют таблицы без рамок для управления размещением обычного текста и иллюстраций, регулируют с их помощью ширину полей и т.п. Нет нужды объяснять, что оформление в виде таблицы того, что по сути своей таблицей совсем не является, есть прямое нарушение идеологии структурной разметки. "Борцы за чистоту HTML" сломали немало копий, доказывая недопустимость этого и многих других дизайнерских приемов. Но времена постепенно меняются, и теперь любой желающий может увидеть пример такого "злоупотребления" прямо на заглавной странице сервера W3C (http://www.w3.org/pub/WWW).
В конце 1995 г. ситуация в мире HTML была довольно смутной. Популярность броузера Netscape неуклонно росла; программисты этой фирмы готовили к выпуску версию 2.0, которая должна была утвердить господство Netscape на вечные времена благодаря неслыханному набору новшеств, таких как интерфейс подключаемых модулей, поддержка языка Java, встроенный язык сценариев JavaScript, возможность разбивки окна на кадры (frames) и многое другое. К этому времени W3C окончательно завяз в своем проекте HTML 3, который был слишком сильно оторван от реального мира, и на завершение которого у консорциума попросту не хватало ни сил, ни средств. HTML 3 по сравнению с HTML 2.0 был важным шагом вперед, однако он развивался по-прежнему в рамках идеологии структурной разметки, а инструмент, дающий возможность выйти за эти рамки, - система CSS - был еще далек от завершения.
В этот переломный момент в игру вступил новый участник - всемогущая корпорация Microsoft. Долгое время эта компания, привыкшая монопольно владеть своим сектором рынка, недооценивала перспективы Internet и не собиралась как-либо участвовать в развитии этой информационной среды, считая ее, по-видимому, слишком демократичной и непредсказуемой. Однако невероятный взлет Netscape (число копий броузера Navigator измерялось к этому времени уже десятками миллионов) заставил Microsoft изменить мнение.
И именно на броузерном фронте, где господство Netscape оставляло меньше всего шансов конкурентам, корпорация Microsoft нанесла свой главный удар. Поначалу мало кто верил, что броузер MicrosoftInternetExplorer, который тогда существовал в версии 2.0 и не представлял собой ничего выдающегося, сможет составить конкуренцию Netscape. Тем не менее, выпущенная летом 1996 г. версия InternetExplorer 3.0, которая поддерживала почти все расширения Netscape и обладала оригинальным и привлекательным интерфейсом, вызвала настоящий бум и очень быстро утвердилась в качестве "второго главного броузера". Сейчас Microsoft и Netscape делят рынок броузеров почти поровну, и окончательный исход их битвы не берется предсказать никто.
Одновременно с разработкой конкурентоспособного броузера Microsoft решила "навести порядок" и в мире HTML. Взяв под свою опеку W3C, она напитала его денежными и людскими ресурсами и тем самым заработала право едва ли не решающего голоса в этой организации. Проект HTML 3 был заморожен, а вместо него в сжатые сроки создан стандарт HTML 3.2, который, по сути, всего лишь описывает большинство расширений Netscape (с тем же успехом их можно назвать теперь "расширениями Microsoft"). Пройдя обычный в W3C процесс обсуждения и внесения поправок, спецификация HTML 3.2 (http://www.w3.org/pub/WWW/TR/REC-html32.html) была утверждена совсем недавно (в январе этого года) и является, таким образом, последним на настоящий момент официальным стандартом языка. Спираль развития HTML завершила свой первый виток - как и в "золотой век", расхождения между предписаниями стандарта и реализацией HTML в броузерах вновь сведены к минимуму.
Однако HTML сегодня уже совсем не тот, что вначале. Становится все более очевидным, что язык этот в его теперешнем состоянии практически исчерпал перспективы развития, и что добавление новых тегов вряд ли выведет его на принципиально иной уровень. Это особенно понятно тем, кто занимается практическим дизайном: из-за того, что HTML с самого начала не ориентировался на описание внешнего вида документа, он не в состоянии удовлетворительно выполнить эту задачу даже сейчас, при наличии множества визуально-ориентированных тегов. Прямым следствием этого является огромное количество расхождений в интерпретации тегов броузерами. Как бы строго вы ни следовали стандарту, HTML-файл приходится обязательно тестировать по меньшей мере в двух броузерах - NetscapeNavigator и InternetExplorer, и чаще всего такое тестирование не обходится без неприятных сюрпризов: отступы, пробелы, размеры элементов оформления и логика их размещения на странице даже для простейших тегов различаются довольно сильно.
Изображения в качестве гипертекстовых связей
Изображения на HTML-страницах можно использовать не только для просмотра, но и в качестве гипертекстовых связей, как и обычный текст.Обозначение изображения в качестве гипертекстовой связи не отличается от текста. Для этого применяется тот же тег , но между и вставляется тег
При этом броузер выводит вокруг изображения рамку, чтобы идентифицировать ее как связь. Чтобы подавить вывод рамки можно добавить BORDER=0 в тег
Язык гипермедиа VRML
VRML отвечает требованиям аппаратной независимости, расширяемости и способности работы с низкоскоростными сетями. Объекты виртуального мира, созданного с помощью VRML, могут содержать объекты из других миров, документов HTML или типов MIME. При выборе объекта загружается либо соответствующий визуализатор MIME, либо программа просмотра VRML.Стандарт языка содержит определение шести разделов спецификации языка VRML: основные конструкции, базовая координатная система, поля, узлы, размножение, расширение.
Язык гипертекста HTML
Разработчики HTML пытались решить две задачи:Первая задача была решена за счет выбора теговой модели описания документа. Такая модель широко применяется в системах подготовки документов для печати. К моменту создания HTML существовал стандарт языка разметки печатных документов - StandardGeneralisedMarkupLanguage, который и был взят в качестве основы HTML.
Такой подход предполагает наличие еще одной компоненты технологии - интерпретатора языка. В WWW функции интерпретатора разделены между сервером гипертекстовой базы данных и клиентом.
Язык гипертекстовой разметки HTML
Гипертекст играет роль своеобразного клея, который соединяет различные информационные ресурсы.Статический гипертекст, хранящийся на Web-сервере, отображается и служит для навигации, может поддержать диалог с пользователем - ввод данных по электронной форме с пересылкой на сервер.
Возможна генерация динамического гипертекста с использованием данных из других ресурсов (например, БД).
Для представления гипертекста служит язык разметки HTML, обеспечивающий независимость описания Web-структур от броузеров и их однозначная интерпретация на разных платформах.
Язык программирования Java
Java - это современный язык для разработки приложений, созданный специально для распределенных сред. Java является простым объектно-ориентированным языком, не требующим длительного обучения программистов. Для работы в сетецентрической среде возрастающей сложности система программирования должна соответствовать объектно-ориентированной концепции.Java является знакомымязыком программирования, так как синтаксис Java во многом напоминает C++. Исключение адресной арифметики по мнению создателей должно обеспечить более надежный код по сравнению с С++. Надежность программ обеспечивается проверками на этапе компиляции и последующей проверкой во время выполнения.
Средствабезопасности, встроенные в Java, обеспечивают защиту как от внешнего проникновения в файловую систему, так и от модификации кода вирусами. Другими важными свойствами Java является независимость от платформы, переносимость, многопоточность и динамическая сборка программы.
Многопоточность встроена на уровень языковых примитивов. Достаточно объявить некоторый метод синхронным, чтобы на время его работы с объектами они автоматически блокировались. Снимается блокировка также автоматически, независимо от того, нормально или аварийно завершилась работа метода. Блокировки сделаны реентерабельными, что исключает возможность зависания при повторном блокировании объекта одним и тем же процессом.
Java-технология состоит из следующих основных частей: программирования на объектно-ориентированном языке Java в классическом смысле этого слова и разработки мобильных Java байт-кодов. Сюда часто относят и программирование на JavaScript.
Система программирования в среде Java позволяет компилировать программы для компьютерной платформы, на которой она стоит в том же ключе, как и любая другая, например, С или С++. В этом случае главным отличием Java-программ является использование Java-классов, обеспечивающих разработку безопасных, распределенных систем. При этом утверждается, что язык позволяет делать гораздо меньше ошибок при разработке программ, главным образом, из-за отсутствия адресной арифметики.
Концепция мобильных Java байт-кодов (апплетов) была специально разработана для использования в WWW. Для использования апплетов в язык гипертекстовой разметки HTML был введен тег APPLET, указывающий имя апплета и параметры его вызова. При этом обработка HTML-документов выполняется броузером также, как и при обработке встроенной в документ графики. Сначала запрашивается документ, анализируется его содержание, а потом, если имеются теги APPLET, подгружаются апплеты. После получения всех апплетов они могут быть выполнены. Из этой схемы ясно, что броузер является одновременно и интерпретатором байт-кодов. Используя библиотеку классов, можно разработать эффектные динамические мультимедийные страницы. Кроме того, применение байт-кодов позволяет организовать распределенные процедуры вычислений с использованием различных серверов, с которыми можно взаимодействовать по разным протоколам.
В настоящее время выпущено несколько систем визуальной разработки программ на Java. Наиболее известными являются:
Язык сценариев JavaScript
Язык программирования сценариев JavaScript, разработанный фирмой Netscape совместно с Sun,- это компактный, объектно-ориентированный язык, предназначенный для создания небольших клиентских и серверных Internet/Intranet-приложений. В целом язык ориентирован на встроенные объекты NetscapeNavigator: окна, формы, поля форм, элементы рабочих областей Navigator. Это сильно облегчает обучение языку и позволяет сразу писать интересные и полезные программы.Сценарии, написанные на языке JavaScript, включаются в состав HTML-документов, размещаются на Web-сервере и вместе с ними передаются клиентам по запросам. Броузеры распознают встроенные в текст документа программы и выполняют их путем интерпретации. Используя JavaScript, можно организовать многооконный интерфейс с локальной справочной системой и встроенной графикой, возложив при этом многие вопросы проверки вводимых пользователем данных на JavaScript. По своим функциональным возможностям JavaScript довольно сильно уступает Java: можно организовать прокрутку текста, организовать открытие нового окна, запрограммировать калькулятор, но не более того.
Примерами программ на JavaScript могут служить сценарии, проверяющие введенные пользователем данные, выполняющие какие-либо действия по открытию и закрытию документа. Такие сценарии могут быть обработчиками диалоговых событий - распознавать и реагировать на действия пользователя - нажатие кнопок мыши, ввод данных в форме и перемещение по странице. Помимо этого с помощью сценария можно управлять самим броузером и атрибутами документа.
Язык SQL
SQL является наиболее мощным и популярным языком манипулирования данными реляционных систем управления базами данных (СУБД). Основные возможности языка, доступные в SQL-ориентированных СУБД, определены в рамках специального стандарта ANSI/ISO. SQL-стандарт признан с 1982 года, а формально определен как ANSI-стандарт Х3.135 в 1986 году и как ISO-стандарт - в 1987. Стандартизация возможностей SQL продолжается и сейчас. На смену стандарту SQL2, реализованному в большинстве коммерческих СУБД, приходит новый вариант - SQL3.SQL сочетает в себе возможности языка определения данных, языка манипулирования данными и языка запросов. При этом он реализует и основные функции реляционных СУБД:
Язык виртуальной реальности VRML
После создания HTML естественным было создание открытого, общепринятого языка, позволяющего описывать трехмерные сцены и увязывать их с гиперсвязями, принятыми в WWW - что-то типа HTML, но применительно к виртуальной реальности. Так возник термин VirtualRealtyMarkupLanguage (VRML), где слово Markup было позднее заменено на Modelling, для того, чтобы подчеркнуть его графическую сущность. Первая версия VRML появилась в 1994г. на основе формата OpenInventorASCIIFileFormat (IFF) фирмы SGI. Подмножество IFF, расширенное сетевыми возможностями, было положено в основу базовых форм VRML.Языки и средства разработки Intranet-приложений
Для разработки Internet/Intranet-приложений используется широкий спектр языков и средств программирования:Языки разработки интерактивных страниц гипертекста и гипермедиа
Для оживления статического гипертекста и придания страницам интерактивных свойств применяются языки сценариев, такие как JavaScript, VBScript. Тексты сценариев встраиваются непосредственно в страницы гипертекста и интерпретируются броузером.Особую нишу занимает объектно-ориентированный язык Java для написания мобильных Internet/Intranet-приложений. Страница содержит только ссылки на Java-модули, они независимо загружаются и выполняются броузером на клиентской стороне.
Языки сценариев JavaScript
Язык JavaScript разрабатывался компанией Netscape как язык сценариев просмотра HTML-страниц. JavaScript является объектно-ориентированным языком. В целом язык ориентирован на встроенные объекты NetscapeNavigator: окна, формы, поля форм, элементы рабочих областей Navigator. Это сильно облегчает обучение языку и позволяет сразу писать интересные и полезные программы.Используя JavaScript, можно организовать многооконный интерфейс с локальной справочной системой и встроенной графикой, возложив при этом многие вопросы проверки вводимых пользователем данных на JavaScript. По своим функциональным возможностям JavaScript довольно сильно уступает Java: можно организовать прокрутку текста, организовать открытие нового окна, запрограммировать калькулятор, но не более того.
Электронные архивы и Internet
Электронные архивы могут строиться с привлечением FTP-архивов, средств поиска для Web, а также за счет предоставления Web-интерфейса к традиционным системам управления документами. При этом основной задачей остается организация эффективного контекстного поиска информации.Карты изображений
Известно, что изображения могут выступать в качестве гипертекстовых ссылок. Каждое изображение может представлять собой одну гипертекстовую ссылку. При щелчке на изображении броузер запрашивает гипертекстовую страницу, на которую указывает ссылка, связанная с данными изображением. Если необходимо организовать ссылки на разные документы, то это делается при помощи нескольких изображений, каждое из которых предлагает свой выбор. При использовании карт изображений переход по ссылке зависит от того, на какую часть изображения пользователь указывает при щелчке. Таким образом, одно изображение оказывается вектором с указанием на несколько возможных путей. Применение карт изображений предполагает, что броузер Web каким-то образом взаимодействует с процессором на сервере Web: он должен передавать координаты местоположения курсора при щелчке. Карта изображения состоит из двух файлов: графического файла *.gif, который содержит собственно изображение, и обычного текстового файла *.map в кодировке ASCII, содержащего карту, т.е. перечисление координат областей изображения и вызываемых при выборе данной области URL (гипертекстовых ссылок). Если пользователь щелкает кнопкой мыши, когда курсор располагается на графике, то броузер посылает запрос серверу Web. Упоминаемый в запросе URL - это имя файла с картой (*.map) для использования выполняющейся на сервере Web программы обработки карты изображения. Координаты задаются в пикселях (элементах картинки), причем верхний левый угол изображения имеет координаты (0,0). Кроме того, броузер присоединяет к URL координаты курсора в момент щелчка. Чтобы определить попадание координат в одну из заданных областей, программа обработки карты изображения (программа CGI на сервере Web) берет указанные координаты и обращается к файлу с картой. В случае попадания программа смотрит (также в файле с картой) URL соответствующего документа, извлекает его и передает броузеру.На рисунке 3.4 приведен пример карты изображения, как она видится в окне броузера, сохраненной в GIF-формате в файле sample.gif.

Рис. 3.4. Пример карты изображения
Приведенный рисунок разбит на несколько областей - например, CIRCLE и RECT. Белый фон также является областью. В броузере Web пользователь может переместить курсор в одну из областей и щелкнуть кнопкой мыши. Так как это карта изображения, щелчок на круге приведет к переходу по ссылке к HTML-документу circle.htm. Если, вместо этого, пользователь щелкает на многоугольнике , то он переходит в документ polygon.htm и т.д. Пример составлен таким образом, что если пользователь щелкает на графике вне выделенных областей, то он получает документ по умолчанию, который называется misc.htm. Заметим, что выбирать имена документов в соответствии с формой области вовсе необязательно. Теперь рассмотрим как же вставить карту изображения в Web страницу. Это делается следующей HTML-строкой:
Важнейшее слово здесь - ISMAP, которое сообщает броузеру Web, что это карта изображения. Первая часть строки,
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-сервер посылает его броузеру.
Создав изображение, необходимо составить его карту. Рассмотрим основные этапы создания карты изображений:
Данный пример подходит к требованиям InternetInformaitionServer компании Microsoft. Не всякий сервер поддерживает карты изображений, так что это необходимо проверить в документации Web-сервера. Разные Web-серверы используют разные каталоги по умолчанию для хранения таких файлов, как карты изображений.
Приведенное выше описание карты изображений соответствует формату группы CERN, другой распространенный формат - от центра NCSA.
В настоящее время помимо серверной поддержки карт изображений (способ ISMAP) броузеры могут описывать с помощью HTML 3.2 и обрабатывать карты на стороне клиента (способ USEMAP). Клиентский вариант обработки карт более эффективен, не требует вызова программы на сервере и сокращает время отклика на действия пользователя.
Для задания карты изображений используется контейнер MAP и тег AREA. Контейнер MAP содержит описание активных областей и ссылок. Имя контейнера служит для указания его в атрибуте USEMAP тега включения изображения IMG. Тег AREA определяет форму области (атрибут SHAPE), координаты характерных ее точек (COORDS) и гиперссылки (HREF).
Для нашего примера описание карты изображений будет иметь следующий вид:
Другой способ поддержки карт на клиенте, не нашедший широкого распространения, основан на применении контейнера FIG и расширении гиперссылки за счет указания формы области.
Кириллизация при подготовке и конвертировании гипертекста
При подготовке документов используется кодировка, основная для редактора, а размножение текстов в разных кодировках выполняется с помощью специальных программ перекодировки. Можно воспользоваться способностью редактора загружать и сохранять текст в различных форматах, например, для Windows и MS-DOS. Также возможно применить драйвер Generic/Textonly в Windows95 для "печати файла" в файл, предварительно настроив таблицу перекодировки.При конвертировании русскоязычных документов с помощью WordAssistant возникают проблемы с преобразованием фонтов SmallCaps и AllCaps. Все русские буквы конвертируются в названия спецсимволов, начинающиеся с &. Иногда для прочтения таких текстов требуется выполнить программу перекодировки из спецсимволов в нужный код. В приведенном примере можно просто заменить все неподходящие фонты на другие перед конвертированием.
Классификация средств подготовки гипертекста
Инструменты разметки гипертекста на языке HTML, позволяющие создавать Web-странички, называются HTML-редакторами. Так как исходный код HTML - это текст в стандарте ASCII, то для создания файлов HTML годен практически любой текстовый редактор. Кроме того, поскольку HTML является интерпретируемым языком сценариев, то нет необходимости обрабатывать исходный код каким-нибудь компилятором. Для написания кода HTML можно использовать как какой-нибудь простой редактор, например Notepad, поставляемый вместе с Windows, так и любой специализированный. Некоторые средства позволяют даже генерировать код HTML без его фактического написания.HTML-редакторы делятся на две крупные категории: графические и программные редакторы. Внешне редакторы обоих типов выглядят очень похоже: и те, и другие напоминают современные графические текстовые процессоры. Различия заключаются в методах визуального представления элементов, составляющих Web-страницу. Графические редакторы представляют страницу такой, какой она будет в окне броузера. Программа (код HTML) встроена в страницу, но скрыта от автора, который не работает с ней напрямую.
В свою очередь программные редакторы выводят на экран в качестве основного представления страницы исходный текст на языке HTML, предоставляя при этом в распоряжение автора мощные средства генерации кода, избавляющие от необходимости писать его вручную.
Наряду с начальным написанием HTML-документов, существует возможность создания документов Web из уже существующих документов. Примером может служить созданный компанией Microsoft набор программных средств - InternetAssistantsforOffice, с помощью которого можно преобразовать файлы, созданные продуктами из пакета MicrosoftOffice (Word, Excel, PowerPoint, Access или Schedule+) в страницы Web. Другим примером является драйвер печати MicrosoftHTMLDriver, который позволяет печатать в формате HTML. Такие программные средства называются конверторами файлов в формат HTML. Также существует большое количество других программных средств для преобразования форматов файлов.
Страницы Web могут содержать не только текстовую, но и графическую информацию. Существует множество графических форматов, но формат, который занял исключительное положение в Web, называется GIF (GraphicInterchangeFormat - формат для обмена графикой). Все графические броузеры поддерживают формат GIF и без проблем выводят внутри страницы Web изображения, представленные в этом формате. Сейчас в Web становится все более популярным стандарт JPEG (JointPhotographicExpertsGroup - объединенная экспертная группа по фотографии). Главное достоинство JPEG-файлов состоит в том, что они короче GIF-файлов и на загрузку их требуется меньше времени. К сожалению, встроенные изображения в формате JPEG поддерживают только некоторые броузеры, например, Netscape и Mosaic, поэтому пока рекомендуется применять только изображения в формате GIF. На основе графических файлов можно с помощью специального программного обеспечения создавать анимационные ролики и видео ролики. Также возможно использование звукового сопровождения при просмотре Web-страничек.
Коллекция Properties
Объекты ADO имеют два типа свойств: встроенные и динамические. Встроенные свойства - это свойства, реализованные в ADO и доступные для любого нового объекта. Кроме того, встроенные свойства не являются объектами Property в коллекции Properties, поэтому пользователь может изменять их значения, но не может изменять их характеристики или удалять их. Многие провайдеры OLEDB предоставляют дополнительные свойства объектов. Такие дополнительные свойства называются динамическими и являются объектами Property в коллекции Properties. Объекты Property имеют четыре встроенных свойства:Каждый объект 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 реализуема на разных платформах; она может использоваться на компьютерах 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:Lotus включила в SmartSuite 97 расширенный набор средств поддержки коллективной работы в интрасетях и Internet, с помощью которых пользователи смогут обмениваться информацией, совместно осуществлять календарное планирование, сообща работать с документами и презентациями. Например, функция OpenandSavetotheInternet позволяет легко обмениваться файлами с любым FTP- или Web- сервером, а BrowserAccess дает возможность пользователям, не имеющим SmartSuite, получать доступ к файлам, созданным приложениями этого пакета, с помощью стандартных Web-броузеров. Мастер-функция DB2 WebAssistant, автоматически преобразует приложение базы данных DB2 в Web-приложение, обеспечивающее доступ к БД из Web-броузера. Утилиты TeamReview, автоматизирующая распределение и просмотр файлов сотрудниками, и TeamConsolidate, интегрирующая изменения, внесенные отдельными участниками рабочей группы, очень удобны в работе. TeamMail позволяет одновременно передавать всем членам коллектива данные и сообщения, а также маршрутизировать их последовательно с помощью LotusNotes или любого почтового пакета, совместимого со стандартами VIM, CMC или MAPI. Более того, утилита VersionManager, входящая в состав 1-2-3, облегчает управление различными версиями электронных таблиц. В программы WordPro 97 и FreelanceGraphics 97 входят средства поддержки языка Java, с помощью которых можно встраивать активные объекты Java (applet) в документы или презентации. Тем, кто предпочитает выполнять текущую работу с помощью Web-броузеров, предназначены готовые бизнес-приложения LotusComponentsfortheInternet, упрощающие создание интерактивных прикладных систем, ориентированных на работу с Internet и интрасетями. Lotus выпустила набор LotusComponents 1.0 forNotes, который позволяет дополнить системы на базе Notes новыми возможностями, и аналогичные программы для работы с Internet. Элементы этого набора представляют собой программируемые активные объекты (компоненты), которые могут встраиваться в Web-приложения или использоваться автономно. Наряду с этим Lotus уделяет серьезное внимание технологии Java. В настоящее время компания разрабатывает комплект бизнес-приложений на базе технологии JavaBeans фирмы Sun. JavaBeans - это набор интерфейсов прикладного программирования (API), позволяющих создавать на языке Java программные компоненты и интегрировать их с приложениями, поддерживающими различные форматы и объектные технологии. Таким образом, новый комплект Java-приложений Lotus даст возможность строить не зависящие от платформ прикладные системы, которые будут взаимодействовать с Web-броузерами, серверами Notes, приложениями SmartSuite или сетевыми ПК.
Такое разнообразие продуктов для работы с Internet указывает на то, что Lotus последовательно выполняет свое намерение предоставить пользователям широкие возможности использования преимуществ Всемирной сети и даже открывает возможности, которых нет в Web: работу с документами, тиражирование и защиту. Многие начали интегрировать свои базы данных Notes в Web с помощью входящего в Notes 4.0 средства InterNotesWebPublisher, которое переводит документы Notes в формат HTML, используемый в системе Web. С ее помощью разработчики создают Web-документы и управляют ими из среды Notes. Lotus планирует включить функции поддержки HTML и HTTP в NotesServer. Некоторые пользователи применяют Notes в сочетании с Web, полагая, что Notes - это та среда, в которой можно распространять важную информацию с высокой степенью защиты. С точки зрения пользователя Notes, Web-сервер - это обычное место хранения документов, а Web-броузер - просто клиентская платформа. Любое приложение Notes можно легко перенести в Web.
Манипулирование данными.
SQL позволяет пользователю или прикладной программе изменять содержимое базы данных путем вставки новых данных, удаления или модификации существующих данных.Маркированные списки
Для наглядного изображения небольшого числа элементов удобно вместо нумерованных применять маркированные списки (в таких списках броузер сам выводит слева от каждого элемента кружок или квадратик). Теги маркированного списка практически аналогичны нумерованному, с той лишь разницей, что для маркированного списка вместо тега и закрывающей пары применяется тег и его закрывающая пара .Пример использования маркированного списка:
Массивы
Первый тип новых объектов, которые появились в JavaScript 1.1,- массивы. Тип "Array" введен в JavaScript 1.1 для возможности манипулирования самыми разными объектами, которые отображаются Navigator-ом. Это - список всех гипертекстовых ссылок данной страницы Website, список всех картинок на данной странице, список всех апплетов данной страницы, список всех элементов формы и т.п. Пользователь может создать и свой собственный массив, используя конструктор Array (). Делается это следующим образом:new_array = newArray () new_array5 = newArray (5) colors = newArray ("red","white","blue")
Размерность массива может динамически изменяться. Можно сначала определить массив, а потом присвоить одному из его элементов значение. Как только это значение будет присвоено, изменится и размерность массива:
colors = newArray () colors[5] = "red"
В данном случае массив будет состоять из 6 элементов, т.к. первым элементом массива считается элемент с индексом 0.
Для массивов определены три метода: join, reverse, sort. Join объединяет элементы массива в строку символов, в качестве аргумента в этом методе задается разделитель:
colors = newArray ("red","white","blue") string = acolors.join (" + ")
В результате присваивания значения строке символов string мы получим следующую строку:
string = "red + white + blue"
Другой метод, reverse, изменяет порядок элементов массива на обратный, а метод sort отсортировывает их в порядке возрастания.
У массивов есть два свойства: length и prototype. Length определяет число элементов массива. Если нужно выполнить некоторую рутинную операцию над всеми элементами массива, то можно воспользоваться циклом типа:
color = newArray ("red","white","blue") n = 0 while (n != colors.length) {.... операторы тела цикла ...}
Свойство prototype позволяет добавить свойства к объектам массива. Однако наиболее часто в программах на JavaScript используются встроенные массивы, главным образом графические образы (Images) и гипертекстовые ссылки (Links).
рассматривается как стратегический ход
Выпуск Exchange 5. 0 рассматривается как стратегический ход Microsoft, направленный на расширение своего присутствия на рынке Internet. Главное - это приверженность открытым стандартам.Сначала предполагается выпустить в продажу Exchange 5.0 с поддержкой тех же протоколов (HTTP, POP3, MIME и NNTP), а в дальнейшем - с дополнительными компонентами, обеспечивающими поддержку S/MIME, IMAP4 и LDAP. Последний протокол особенно важен с точки зрения совместимости с модернизированной службой каталогов и новыми распределенными службами WindowsNT 5.0.
Большинство возможностей ExchangeServer будет доступно для использования как из клиентского компонента Exchange, так и из различных программ для работы с электронной почтой, поддерживающих протокол POP3, и Web-броузеров. Однако оптимальным клиентом для ExchangeServer окажется, видимо, программа Outlook.
Общедоступные папки на сервере ExchangeServer во многом подобны группам новостей Internet, но обеспечивать их функционирование проще; более того, можно организовать взаимодействие между этими папками и настоящими группами новостей. Служба InternetNewsService сервера ExchangeServer использует для такого обмена протокол NetworkNewsTransferProtocol (NNTP).
Возможна организация и более сложного взаимодействия с указанными группами, обеспечивающего как получение информации из них, так и передачу ее в обратном направлении по каналам электронной почты. Соответствующая информация размещается в общедоступных папках.
Администраторам серверов ExchangeServer, несомненно, понравятся утилиты-мастера InternetMail и InternetNewsWizard, предназначенные для автоматизации конфигурирования и администрирования подсистем на базе POP3 и групп новостей Internet. Можно составить общее расписание сеансов связи с поставщиком услуг Internet как для доступа к новой корреспонденции электронной почты, так и для обмена информацией с новостными группами.
Одно из усовершенствований адресной книги ExchangeServer состоит в поддержке протокола LDAP. Теперь ограничения на доступ к каждому из объектов, функционирующих под управлением ExchangeServer, устанавливаются администратором в индивидуальном порядке.
Клиентские приложения Exchange прежних версий и программы для работы с электронной почтой, использующие протокол MAPI, по-прежнему могут применяться для доступа к ExchangeServer 4.5, однако в полной мере всеми его возможностями удастся воспользоваться лишь обладателям новой системы управления информацией Outlook корпорации Microsoft. В частности, только Outlook и новый клиентский компонент Exchange позволяют использовать в личной переписке встроенную систему шифрования с открытым ключом.
Весьма развита поддержка программирования на VBScript как в ExchangeServer, так и в Outlook. Кроме того, предусмотрено включение в формы Exchange элементов управления ActiveX.
Надо отметить серьезное отношение к вопросам взаимодействия с другими почтовыми системами и перехода с них на Exchange. В частности, предусмотрены новые средства, которые помогут перейти на MicrosoftExchange пользователям ОС Unix и таких программ, как CollabraShare и GroupWise. Система дополнена новым модулем для связи с системой электронной почты cc:Mail, который обеспечивает, в частности, синхронизацию каталогов. Имеются и другие аналогичные утилиты, например для систем на базе протокола SMTP. Они обеспечивают передачу почтовой корреспонденции между Exchange и соответствующей платформой в обоих направлениях.
Программа Outlook не только перекрывает все возможности стандартного клиентского компонента Exchange, но и предлагает множество дополнительных, в частности, обеспечивает доступ к системе электронной почты и функциям планирования, что позволяет отказаться от программы Schedule+; кроме того, Outlook имеет выигрышный пользовательский интерфейс.
Подсистема поддержки Web может работать на ПК под управлением Windows 95, оснащенном броузерами InternetExplorer корпорации Microsoft и Navigator фирмы NetscapeCommunications. Для обмена почтой с ExchangeServer используется поддержка протокола POP3 в NetscapeNavigator и клиент электронной почты EudoraLite компании Qualcomm.
MicrosoftFrontPage
MicrosoftFrontPage позволяет создавать HTML-страницы быстро и легко, хотя невозможно получить прямой доступ к исходному тексту.MicrosoftFrontPage - новаторский, многофункциональный инструмент WYSIWYG, который представляет завершенную авторскую среду, позволяющую быстро и легко создавать, размещать и управлять сложными информационными узлами Web. Это программа отвечает требованиям последних стандартов Web и содержит шаблоны и "мастера", которые помогают авторам начать работу. Создание интерактивного содержания оказывается несложным благодаря перетаскиваемым компонентам WebBot программы FrontPage, позволяющим наделять страницы такими функциями, как возможность устраивать многопотоковые дискуссии, не прибегая к сложному программированию через интерфейс CGI. Персональный Web-сервер дает возможность разработать и на месте протестировать Web-узел, скопировать целиком всю информацию узла на сервер и просматривать и обновлять узел с помощью графических средств по мере необходимости.
MicrosoftFrontPage - 32-разрядная программа для WindowsNT и Windows 95, которая позволяет встраивать формы, таблицы, навигационные карты, кадры и процессоры поиска в страницы Web, а также легко создавать обычные связи, изображения и текст. Компонента PersonalWebServer позволяет автономной машине выполнять роль http-сервера. PersonalWebServer предоставляет FrontPage возможность навигации по созданным информационным узлам точно так же, как броузер позволяет перемещаться среди удаленных серверов.
Средства редактирования, имеющиеся в программе MicrosoftFrontPage, представлены двумя взаимосвязанными компонентами: Explorer, который служит для создания и управления полными узлами Web, и Editor - для построения страниц и связей. Explorer показывает организацию узла в двух подокнах: одно - для иерархической структуры, другое - для связей, где отображаются связи отдельных страниц в виде радиальных лучей, расходящихся из центра.
"Паутина" в Explorer создается при помощи одного из входящих в состав пакета "мастеров", который выполняет всю основную работу по созданию корпоративных узлов Web или специализированного узла Web для дискуссионных групп. Множество отдельных шаблонов служат для организации персональных узлов и узлов поддержки потребителя. Узел настраивается на конкретные задачи с помощью автоматизированных агентов ("bots"), которые обновляют связи и заносят адреса корпоративных экспертов Web-мастеров в поле "обратной связи" mailto и другие аналогичные поля. "Паутины" защищаются паролем, легко копируются и перемещаются группами на удаленные компьютеры, на которых установлена программа FrontPage.
Программа редактирования Web-страниц Editor работает в режиме полного соответствия (WYSIWYG) и не позволяет вносить изменения в создаваемый ею HTML-код, хотя вспомогательные средства дают возможность вручную вводить отдельные управляющие коды. Для создания и форматирования текста используются инструментальные панели, меню и оперативные комбинации клавиш, как в MicrosoftWord. Программа FrontPage импортирует файлы в форматах ASCII, HTML и RTF, но не может преобразовывать файлы текстовых процессоров (даже процессора Word). Практически любой файл, содержащий растровое изображение, автоматически преобразуется в формат GIF или JPEG, в зависимости от глубины цвета оригинала. В пакете предусмотрена обширная система помощи для программ редактирования, но лишь лаконичная подсказка для PersonalServer.
Таблицы создаются также легко, как в текстовом процессоре и FrontPage может построить форму вокруг любого вставленного поля. Когда к страницам добавляются изображения, связи, таблицы или формы, FrontPage вставляет подходящие элементы по умолчанию. Впоследствии эксперты могут видоизменить выбираемые по умолчанию элементы, используя новейшие расширения Netscape и предложенные теги HTML.
FrontPage может выполнять CGI-сценарии, но в них нет нужды, поскольку встроенная функция обработки форм сохраняет результаты в разнообразных форматах, пригодных для передачи в базу данных, просмотра с помощью броузера и т.д. Для создания навигационных карт на клиентской стороне нужно просто нарисовать рамку на графическом изображении, и на экране появится диалоговое окно для определения связи.
FrontPage - самый полный и новаторский редактор информационных узлов Web и к тому же один из самых простых в эксплуатации. Он идеально подходит для создания большого Web-узла с единообразной организацией при минимуме усилий.
MicrosoftInternetInformationServer
Продукт MicrosoftInternetInformationServer (IIS) отличается превосходной процедурой установки и тесной интеграцией с WindowsNT - а его цена просто недостижима для конкурентов. IIS можно бесплатно получить с Web-сервера фирмы Microsoft, хотя для того, чтобы воспользоваться пакетом, вам придется приобрести WindowsNTServer. В отличие от фирмы Netscape, предлагающей серверы для самых разнообразных платформ, IIS функционирует только в среде WindowsNTServer. Однако IIS показывает в целом очень хорошие результаты на тестах производительности, незначительно опережая обе версии серверов для WindowsNT фирмы Netscape.В IIS предусмотрены средства управления на базе Web-броузера и программа MicrosoftFrontPage - набор авторских инструментальных средств Web и средств управления информационными узлами.
Сервер IIS очень тесно интегрирован с WindowsNTServer. Процедура инсталляции с помощью "мастеров" протекает безболезненно, занимая всего несколько минут. IIS создает на сервере WindowsNT обобщенную регистрационную запись (формуляр) пользователя, дающую право читать (но не записывать) файлы в каталоге IIS сервера. Если вы собираетесь организовать общедоступный Web-сервер, то надо просто поместить файлы с содержательным материалом в соответствующий каталог.
В дополнение к HTTP-серверу пакет IIS содержит серверы Gopher и FTP. "Мастер" инсталляции по умолчанию устанавливает все три сервера, которые функционируют в качестве служб WindowsNT. ServiceManager, диспетчер служб Internet, входящий в комплект IIS - простая программа типа "Панели управления", позволяет запускать, останавливать работу и настраивать конфигурацию каждой из трех служб. Вы можете установить его на любом подключенном к локальной сети ПК с WindowsNT и использовать для управления любым из этих серверов.
InternetServiceManager дает возможность контролировать доступ, указывать на конкретные каталоги сервера и задавать параметры для регистрации. В IIS предусмотрен журнал регистрации пользователей, который можно сохранить как текстовый файл или записать напрямую в базу данных ODBC, однако сервер не формирует усложненные статистические отчеты, подобные выводимым программой NetscapeEnterpriseServer.
В IIS предусмотрены хорошие средства безопасности, тесно интегрированные с WindowsNT. Существует возможность настроить IIS таким образом, чтобы программа требовала ввести имя пользователя и пароль для доступа к Web-серверу либо к любой странице или каталогу на сервере. Также можно разрешать или запрещать доступ пользователям с IP-адресами, лежащими в определенном диапазоне, или пользователям с конкретными IP-адресами. IIS использует пользовательскую базу данных WindowsNT, а это означает, что управлять списком пользователей Web-сервера можно с помощью инструментов, имеющихся на сервереNT. Необходимость в ведении отдельной базы данных пользователей Web-сервера при этом отпадает.
Для пользователей с более строгими требованиями к безопасности в IIS предусмотрены средства защищенных коммуникаций SSL 2.0. Можно хранить зашифрованные и незашифрованные страницы вперемешку на одном сервере. Для упрощения процесса получения сертификата аутентификации фирма Microsoft предлагает программу генерации SSL-ключа.
С помощью диспетчера InternetServiceManager можно назначить конкретным каталогам NT-сервера различные IP-адреса. Эта функция позволяет организовать несколько виртуальных серверов на одном физическом. Пользователи воспринимают виртуальные узлы Web так, как будто они расположены на разных компьютерах, и каждый Web-сервер может иметь уникальное имя узла и(или) домена. Такая возможность, имеющаяся и у некоторых других серверов, рассматриваемых в данном обзоре, должна понравиться поставщикам услуг Internet и пригодится любой другой организации, которой требуется разместить несколько серверов на одной машине.
Сервер IIS совместим не только со сценариями CGI и Perl для разработки простых прикладных программ, но и с интерфейсом InternetServerAPI (ISAPI), мощным API, разработанным фирмами Microsoft и ProcessSoftware и позволяющим программистам создавать сложные прикладные программы Web.
Microsoft предоставляет также InternetDatabaseConnector (IDC), программу на базе ISAPI, обеспечивающую доступ к MicrosoftAccess, MicrosoftSQLServer, Oracle, Sybase, Informix и другим ODBC-совместимым базам данных. IIS не предусмотрены какие бы то ни было инструменты для управления содержательными материалами, но сервер хорошо работает с программой MicrosoftFrontPage.
MicrosoftSQLServerWebAssistant
В состав MicrosoftSQLServer 6.5 входит SQLWebAssistant - довольно простая в использовании утилита, не требующая знания HTML и серьезной практики работы с SQL. WebAssistant имеет интерфейс мастера (wizard), т.е. состоит из ряда последовательных форм с вопросами, отвечая на которые администратор может сэкономить время по выполнению рутинного HTML-кодирования и получить готовую (в HTML-кодах) страницу, содержащую результаты опубликования произвольного запроса к базе. Полученная страница не является активной в строгом смысле этого слова, так как публикуется при помощи push-метода, т.е. обновление происходит по инициативе сервера, и не допускает обновления со стороны клиента. Однако сервер может производить обновление (перегенерацию) страницы на триггерной основе или на основе расписаний задач под управлением SQLExecutive. Мастер работает только с базами данных MSSQLServer и использует три хранимых процедуры sp_makewebtask, sp_runwebtask и sp_dropwebtask. При необходимости они могут использоваться самостоятельно в кодах T-SQL.Модификация данных
Для изменения содержимого базы данных SQL предусматривает три операции INSERT (вставка строк в таблицы), DELETE (удаление строк из таблицы) и UPDATE (обновление значений в существующих строках таблиц).Операция вставки INSERT может быть единичной либо групповой. Для единичной вставки необходимо явным образом определить значения колонок новой строки. Если указан неполный перечень колонок таблицы. то оставшиеся колонки получают неопределенное значение (NULL).
Операция групповой вставки предполагает добавление строк в таблицу из некоторой другой таблицы, указанной явно или с помощью SELECT-предложения.
Операция удаления DELETE является групповой, т.е. применяется ко всем строкам таблицы, удовлетворяющим требуемому условию. В отличие от запись-ориентированных языков манипулирования данными, SQL не использует понятия текущей строки в таблице, предполагая. что любая строка может быть однозначно идентифицирована в таблице с помощью значения первичного ключа. Если условие отсутствует, то удаляются все строки таблицы. Условие может использовать функцию проверки вхождения значения в некоторую другую таблицу, заданную с помощью SELECT-конструкции.
Операция обновления значений в строках таблицы UPDATE также является групповой. Условие определяет, к каким строкам требуется применить операцию обновления. В условии, аналогично DELETE, можно использовать SELECT-конструкции.
В SQL большое внимание уделяется обеспечению целостности данных при выполнении операций обновления данных. Предусмотрена возможность учета специальных ограничений целостности. Любые операции, нарушающие такие ограничения, отклоняются.
Наиболее часто используемым примером ограничения целостности является ограничение на диапазон допустимых значений в таблицах. Очень часто значения в таблице являются корректными только в том случае, когда они присутствуют в одной или нескольких других таблицах, логически связанных между собой.
При выполнении удаления или обновления строк для обеспечения целостности данных иногда необходимо выполнять определенные сопутствующие операции в других логически связанных таблицах. Например, удаление строк в одной таблице может сопровождаться удалением связанных строк в одной или нескольких других таблицах. Может также возникнуть необходимость заменить определенные значения связанных строк другой таблицы на неопределенные. При этом такие действия могут выполняться рекурсивно для достаточно сложных многотабличных структур.
Такого рода ограничения целостности определяются при создании отдельных таблиц и определении структуры базы данных.
Группу операций модификации данных, имеющих логически законченный смысл, после полного выполнения которых база данных останется корректной, называют транзакцией. В SQL предусмотрены средства управления транзакциями, позволяющие отслеживать выполнение транзакций, обрабатывать возникающие ошибки и координировать обработку базы данных несколькими приложениями или пользователями в параллельном режиме.
Утверждение COMMIT означает удачное окончание текущей транзакции и начало новой. Утверждение ROLLBACK указывает на необходимость выполнения обратного отката, т.е. автоматического восстановления состояния базы данных на момент начала транзакции.
В большинстве случаев координация работы в многопользовательском режиме выполняется с помощью механизма блокировок монопольного захвата некоторой части базы данных. Выполнять блокировки можно автоматически, блокируя данные некоторой транзакцией, как только к ним происходит обращение, и освобождать их при обработке COMMIT и ROLLBACK.
В SQL можно блокировать таблицы в монопольном режиме (чтение и запись со стороны других транзакций откладываются до момента окончания транзакции) или в режиме разделения (откладываются только обновления со стороны других транзакций).
Модули расширения Plug-In
Броузер NetscapeNavigator допускает работу с модулями расширения (Plug-In). Для приведения того или иного модуля Plug-In в действие броузер контролирует поступающую из сети информацию и устанавливает тип данных, которые содержатся в этом модуле. Примерами таких данных могут служить файл Acrobat, видеофильм VDOLive или звуковой файл из RealAudio. Затем броузер создает "экземпляр" объекта модуля Plug-In для работы с конкретным типом данных.Комплект средств разработки программ позволяет разрабатывать модули Plug-In трех видов: встроенные в состав локальных HTML-страниц, полноэкранные и скрытые модули. Некоторые примеры модулей расширения приведены в таблице 2.2.
Таблица 2.2. Примеры модулей расширения
| Продукт | Изготовитель | Адрес | Назначение |
| WebFX | PaperSoftware | http://www.paperinc | Объемные изображения |
| QuickTime | Apple | http://www.apple.com.com | Кинофильмы QuickTime |
| Amber | Adobe | http://www.adobe.com | Файлы Acrobat |
| VRScout | Chaco Communication | http://www.chaco.com/products/#vrscout | Объемные изображения |
| RealAudio | Progressive Network | http://www.realaudio.com | аудио в реальном времени |
| Shockware | Macromedia | http://www.macromedia.com | мультимедиа-презентации |
| EnvoyPlug-In | TumbleweedSoftware | http://www.twcorp.com/plugin.htm | документы Envoy |
MSInternetExplorer
InternetExplorer 3.0 - проводник Internet, поддерживающий расширения HTML, включая таблицы и фреймы, он позволяет прослушивать аудиосопровождение страниц, выполнять программы Java с использованием JIT (JustInTimecompile). Он полностью поддерживает OLE, с его помощью можно просматривать документы, созданные офисными приложениями, выполнять программы ActiveX. Используя InternetExplorer, можно работать с интерактивными страницами, в составе которых имеются сценарии на VBScript или JavaScript. InternetExplorer поддерживает такие стандарты шифрования, как SSl 2.0 и SSL 3.0, PCT 1.0, помимо этого реализована возможность пересылки данных с цифровой подписью.В комплект программ InternetStarterKit, основой которого является InternetExplorer, входит клиент электронной почты, поддерживающий стандартные протоколы InternetPOP и SMTP. Почтовый сервер при использовании клиента InternetMail обслуживается поставщиком услуг Internet, и пользователи не имеют проблем с конфигурацией и поддержкой своего собственного почтового сервера.
Вместе с InternetStarterKit пользователи глобальных сетей получают в свое использование также и возможность чтения новостей с помощью программы InternetNews. Пользователи, имеющие прямой (online) доступ в Internet, могут иметь доступ ко всем конференциям Internet и к любой статье в каждой конференции.
MSVisualJ++
При создании Jakarta (кодовое название проекта VisualJ++) был учтен опыт других создателей Java-инструментов - фирм Symantec, Borland и Sun.Направления развития броузеров Netscape и Microsoft
Очередные версии NetscapeNavigator и MicrosoftInternetExplorer наполняют понятие броузера новым содержанием. Microsoft интегрирует InternetExplorer в среду Windows, а Netscape делает Navigator одним из компонентов нового программного пакета для коллективной работы.В подготовленный компанией Netscape коммуникационный пакет CommunicatorStandardEditionSuite входят Navigator 4.0, почтовая программа Messenger, работающая в локальных сетях и Internet, средство создания частных и общественных дискуссионных форумов Collabra, простой редактор HTML-документов Composer и переработанная версия NetscapeCoolTalk - программы для ведения конференций и телефонных переговоров в Сети. Расширенная версия пакета - CommunicatorProfessionalEdition - будет включать также средство ведения групповых рабочих планов и набор инструментов для сетевого администратора.
В Navigator 4.0 введено много усовершенствований. Новая версия позволяет распределять закладки по разным папкам (в Navigator 3.0 требуется сохранить URL, а затем вернуться и переместить его в заданную папку). Интерфейс в целом стал лучше настраиваемым, чем раньше. Пользователь может теперь держать на экране только те кнопки и значки, которыми постоянно пользуется, и не выводить остальные. Панель задач (Taskbar), размещаемая вверху или внизу экрана, позволяет, щелкнув кнопкой мыши, переходить из Navigator в другие программы пакета Communicator. Появилась также новая автоматизированная программа установки, призванная облегчить конфигурирование дополнительных модулей.
В версии 4.0 InternetExplorer стал значительно мощнее, и теперь Microsoft предназначает ему роль одного из основных механизмов, определяющих развитие операционной системы Windows.
Броузер становится компонентом Рабочего стола: он обеспечивает не только перемещение по Web, но и работу с файлами (копирование, удаление, просмотр и т. п.) и документами. Экран разбит на две части: левая панель показывает локальную машину и Internet в представлении Проводника Windows 95, а правая, называемая View (просмотр), - либо Web-страницу, либо документ Word или Excel, либо стандартный вид папки со значками файлов. Панель задач динамически изменяется в зависимости от содержания панели View: во время редактирования документов, например, она становится инструментальной панелью Word, а при перемещении по "Паутине" - инструментальной панелью InternetExplorer.
Наследование кода скриптов различными страницами
У контейнера SCRIPT появился атрибут SRC. Это дает возможность авторам строить своеобразную библиотеку функций, к которым можно обращаться из любой страницы, в которой будет ссылка на такую библиотеку. При этом вовсе не обязательно размещать саму библиотеку на том же сервере, где размещены и гипертекстовые страницы Website. Можно использовать и чужие функции на JavaScript.В атрибуте SRC используется обычный URL. Внутри файла скриптов теги SCRIPT не используются. Это обычный файл с использованием определений функций и переменных.
Другой новой возможностью работы с функциями стало введение нового объекта Function. Объект Function порождается конструктором Function:
new_Function = newFunction (arg1,arg2,...,argn, function_body)
Главное отличие от обычного декларирования функции заключается в том, что в данном случае порождена переменная new_Function, с которой можно работать, как с любым другим объектом. При обычном определении функции, такой переменной не порождается.
Как любой объект, Function имеет свои свойства, но не имеет методов. В качестве свойств функции выступают аргументы и возможность назначения новых свойств через prototype.
При обращении к объектам страницы-родителя можно использовать свойство opener окон и фреймов, что позволяет компенсировать отсутствие наследования и глобальных переменных в JavaScript.
Навигация и гипертекстовые ссылки
Структура WWW-сети задается гипертекстовыми ссылками. Гипертекстовая ссылка - это адрес другого HTML-документа или информационного ресурса Internet который тематически, логически или каким-либо другим способом связан с документом, в котором эта ссылка определена.Для записи гипертекстовых ссылок в WWW-сети была разработана специальная форма UniverseResourceLocator (URL).
Эта форма представляет собой запись следующего вида:
access://host.somewhere.dom:port/apath/other/doc#anchorname
где
access - спецификация протокола, например, http, gopher, file, mailto, news и др.;
host.somewhere.dom - имя хоста;
:port - номер порта (необязательно);
/apath/other/doc - полный путь к объекту на указанном хосте;
#anchorname - наименование гипертекстовой связи (необязательно).
Для задания связи HTML-документа с различными сетевыми ресурсами и документами используется тег и его закрывающая пара . У данного тега есть несколько атрибутов, основным из которых является атрибут HREF , указывающий местонахождение сетевого ресурса и специфицирующий коммуникационный протокол (значение этого атрибута фактически представляет собой URL).
Примеры гипертекстовых ссылок:
При этом фраза Clickhere будет особым образом выделена броузером при просмотре 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-страниц и управление ими. К их числу относятся:
Оба пакета рассчитаны на применение в среде WindowsNT и множества различных вариантов UNIX, в том числе HP-UX, IBMAIX, SGIIrix и SunSolaris. Все серверы Netscape поставляются в комплекте с программой NetscapeNavigatorGold 2.0 и дают возможность использовать метод put из HTTP 1.1, позволяющий авторам HTML просматривать существующие страницы, вносить в них изменения и сохранять страницы на сервере.
В обоих продуктах предусмотрены возможности использования языков Java и JavaScript, а также интерфейса NetscapeServerAPI (NSAPI), позволяющего разработчикам создавать специализированные программы, пересылающие в ответ на HTTP-запросы динамически изменяющуюся информацию.
Показатели быстродействия Web-серверов в среде WindowsNT превосходные и мало отличаются друг от друга.
Производительность, которая была получена для пакетов в среде Solaris при малом числе клиентов, не была столь же впечатляющей. Но UNIX-серверы, работающие на тестовой машине SunNetra, продемонстрировали значительно лучшие возможности масштабирования, чем их аналоги для платформы Intel. Производительность Netscape-серверов Solaris стабильно повышалась по мере увеличения числа клиентов до 44, тогда как результаты Netscape-серверов на базе Intel начали падать после достижения максимума при 6 и 12 клиентах.
Инсталляция обоих пакетов была несложной. Для установки сервера на базе WindowsNT нужно было щелкнуть на единственном исполнимом файле, который запустит простую программу инсталляции; задав несколько основных вопросов, она автоматически установила наш Web-сервер. В случае с продуктами Solaris понадобилось распаковать единственный архивированный файл, в котором хранилась программа установки нескольких других файлов.
После того как пакет установлен, процесс настройки конфигурации Web-сервера одинаков на всех платформах: конфигурирование как FastTrack, так и EnterpriseServer происходит из Web-броузера NetscapeNavigator с помощью программы-администратора NetscapeServerManager (NSM). Благодаря этому вам не приходится иметь дело с деталями настройки конфигурации конкретной операционной системы, и вы получаете возможность дистанционного управления всеми своими Web-серверами: достаточно знать URL и пароль Web-сервера, которым вы собираетесь управлять.
Например, формировать учетные записи для пользователей и групп пользователей легко, но для ограничения доступа к каталогам потребуется прибегнуть к сложной и продолжительной процедуре. Кроме того, ни в одном из пакетов Netscape не предусмотрено обращение к информации WindowsNT или Solaris о пользователях и группах, поэтому, если вы применяете любой из этих серверов для внутренних нужд, вам придется вести раздельные списки пользователей и паролей.
В остальном программа NetscapeServerManager дает вам исчерпывающий контроль над конфигурацией Web-сервера. NSM позволяет устанавливать виртуальные серверы, которые допускают размещение локальных страниц на одном сервере в отдельных доменах. Программа NSM - единственная, дающая возможность создать общий нижний колонтитул для всех принадлежащих вам страниц Web. Можно настроить свой Web-сервер для управления несколькими процессами и потоками входящих запросов. У вас есть возможность заблокировать или разрешить доступ к серверу и отдельным страницам на основании их IP-адресов или имени узлового компьютера, а также предоставить пользователям права доступа к индивидуальным каталогам только для чтения или для чтения/записи.
Имеющиеся в FastTrack средства регистрации следует признать достаточными. Сервер формирует стандартные журналы доступа и журналы регистрации ошибок в виде отдельных файлов. Можно просматривать содержимое этих журналов из программы-администратора, используя Navigator, что особенно удобно. Однако в отличие от таких пакетов, как WebSite, FastTrack не позволяет регистрировать события типа исполнения программ CGI, прием полей заголовков HTTP и сетевые операции ввода-вывода. Но в пакете EnterpriseServer предусмотрено ведение журнала событий CGI и иные действия при помощи методов расширенного настраиваемого протоколирования.
Помимо стандартных сценариев CGI (и WinCGI в среде Windows NT) FastTrack и EnterpriseServer позволяют программистам, работающим на С, непосредственно использовать интерфейс NetscapeServerAPI. Вдобавок оба продукта обеспечивают исполнение Java-программ и поставляются вместе с NetscapeNavigatorGold, WYSIWYG-редактором HTML-страниц, объединенным со стандартным броузером Navigator.
В состав пакета EnterpriseServer входит программа NetscapeLiveWire (поставляется с пакетом FastTrack), служащая для расширения возможностей Web-сервера. С помощью FastTrack и LiveWire разработчики могут создавать компилируемые прикладные программы, используя JavaScript. LiveWire содержит превосходные средства управления информационным узлом (отсутствующие в FastTrack), например способна выявлять разорванные связи с внешними узлами Web.
EnterpriseServer входит в состав пакета SuiteSpot (Netscape) наряду с серверами Mail, News, Proxy и Catalog. В SuiteSpot содержится также модуль для разработчиков LiveWirePro (LiveWire поставляется вместе с сервером InformixOnlineWorkgroupServer).
EnterpriseServer явно выделяется на фоне остальных программ. В тех организациях, где подготовкой информационного наполнения занимаются несколько подразделений, сотрудники могут воспользоваться процессором MKSIntegrityEngine - составной частью EnterpriseServer - для контроля прохождения HTML-документов. "Прописав" документ у себя, пользователь не позволяет остальным видоизменить его прежде, чем документ не "выписан". Кроме того, MKS позволяет сохранять на сервере все предыдущие версии документа. Авторы информационного наполнения могут просмотреть список версий, в котором указаны имена создавших их лиц, и даже отредактировать ранние версии документа для их дальнейшего использования. Поисковый процессор Verity дает пользователям возможность проводить полнотекстовый поиск в узле Web, используя простые логические операторы. Он допускает работу как с HTML, так и с простыми текстовыми документами. Можно воспользоваться процессором поиска "как есть", подготовить специализированный модуль CGI или HTML, создав свой собственный интерфейс с процессором поиска, или встроить процессор в какую-либо страницу HTML. Функция AutoCatalog ведет учет всей имеющейся на сервере информации, предоставляя пользователям возможности отыскивать документы по названию, автору, времени последнего изменения и частоте обращений.
Благодаря возможности сертификации клиента и средствам поиска и управления документами, пакет EnterpriseServer представляет собой мощное решение для Internet и интрасетей масштаба предприятия. FastTrack - отлично подходит для быстрой организации узлов Web среднего и малого размеров.
NetscapeNavigator
Navigator 3.0 представляет собой продолжение успешного развития технологии фирмы Netscape, фактически устанавливающей стандарты в этой области. Политика Netscape в области создания клиентских приложений включает в себя три основных компонента: программные модули (Plug-In), представляющие собой небольшие расширения Navigator, загружаемые Java-приложения и язык JavаScript. В отличие от ActiveX эти компоненты работают на любой платформе (Unix/ XWindow, Macintosh и MSWindows).Navigator и InternetExplorer во многом схожи. Оба предлагают набор базовых возможностей, удовлетворяющий стандарту HTML 3.0, благодаря чему можно воспользоваться любым из них, чтобы увидеть основной текст Web, заголовки, изображения, списки, таблицы и "горячие" ссылки. Для работы с широким диапазоном типов файлов, используемых на многих узлах, оба броузера для отображения или воспроизведения данных применяют вспомогательные приложения. Оба имеют привлекательный, простой интерфейс, позволяющий легко вернуться к пройденным ранее узлам Web.
В отличие от обычной редакции
В отличие от обычной редакции NetscapeNavigator версия Gold располагает WYSIWYG-редактором, встроенным в броузер. Это не самый совершенный редактор, и не стоит использовать его для создания корпоративного центра Web, но если нужно просто создать несколько небольших страниц, то никакой другой редактор не позволит выполнить работу быстрее. Открыть окно редактора можно из файлового меню броузера или из командной строки с помощью ключа, который вызывает редактор без обращения к броузеру.Вводимый текст просто набирается на клавиатуре в окне редактирования и форматируется с помощью стандартных функций инструментальной панели либо с помощью функций из ниспадающих меню. Кнопка на инструментальной панели удаляет из выбранного текста все стили.
Импорт изображений на страницу осуществляется простым перетаскиванием их из окна броузера в окно WindowsExplorer; связи с удаленными узлами создаются простым перетаскиванием пиктограммы связи из окна броузера.
Текст, связи и графику можно буксировать по всему окну редактирования, при этом в любой момент времени можно открыть несколько окон редактирования. Редактор таблиц имеет интуитивно понятный интерфейс.
Когда открываются файлы, в которых есть формы и другие элементы, напрямую не рассчитанные на обработку данным редактором, то ответственные за создание этих элементов управляющие коды HTML отображаются в виде "гардинных" пиктограмм (garmenttabs). Двойной щелчок на пиктограмме тега открывает окно, в котором можно редактировать необработанный исходный текст HTML; можно вставить исходный текст в любое место файла, открыв это же самое окно из меню. Единственная функция кнопки "верификация" данного меню - проверить, чтобы каждый управляющий код был заключен в угловые скобки. Редактор не будет блокировать коды в угловых скобках, даже если он не распознает их; он просто выведет неизвестный код на экран с пиктограммой "одеяние" (clothingtag). Редактор генерирует лишь минимальный исходный текст HTML, необходимый для отображения файла в броузере.
NavigatorGold создает таблицы, но не работает с формами и кадрами. В пакете нет "мастеров" для создания страниц или шаблонов, но Web-узел фирмы Netscape располагает оперативными "мастерами" и образцовыми шаблонами, которые можно использовать для создания страниц, а впоследствии усовершенствовать их с помощью NavigatorGold или любого другого HTML-редактора. Когда создание страниц будет завершено, NavigatorGold загрузит их через FTP или http на удаленный сервер.
NetWareWebServer
Пакет NetWareWebServer фирмы Novell может стать естественным выбором для пользователей, имеющих сети с установленной в них ОС NetWare и желающих построить надежный сервер интрасети масштаба предприятия. Он показывает превосходную производительность на тестах, слегка опережая самые быстродействующие продукты для WindowsNTServer. Однако NetWareWebServer имеет ограниченные возможности контроля доступа, не рассчитан на работу с SSL, виртуальными серверами и использование виртуальных путей и не располагает средствами управления информационным узлом, хотя компания Novell и утверждает, что все эти функции будут реализованы в следующей версии. Пробную версию текущего продукта можно загрузить из сети бесплатно.NetWareWebServer представляет собой набор модулей NLM, работающих на сервере NetWare 4.x. В состав пакета входит исполнимая версия NetWare 4.1. Чтобы запустить WebServer, необходимо также инсталлировать модуль TCP/IP, входящий в рабочую конфигурацию NetWare.
Функции администрирования очень просты. Для управления сервером применяется утилита WebManager, которую программа NetWareWebServer заносит в каталог Public на сервере, чтобы ее можно было вызывать с любого Windows-компьютера в сети. Прикладной модуль NLM позволяет вести журнал текущего контроля и протоколировать отчеты, но они не отличаются подробностью.
Для обеспечения безопасности сервера используется адресная база данных NetWare (NetWareDirectoryServices, NDS). С помощью WebManager вы можете предоставлять пользователям или их группам права доступа к каталогам, но не к отдельным файлам; вы также можете разрешать или запрещать доступ по IP-адресу или имени домена (но не имени узла). WebManager, однако, не позволяет исключать конкретных пользователей или адреса. Например, если вы хотите предоставить права всем пользователям сети, за исключением одного временного, то вам придется занести в список также всех пользователей, которым доступ разрешен.
Во всем, что не касается администрирования, NetWareWebServer наделен вполне добротными возможностями. В дополнение к стандартным средствам работы со сценариями CGI и Perl предусмотрен интерпретатор Бейсика NetBasic, который исполняет встроенные в текст HTML прикладные сценарии и совместим с фирменным локальным интерфейсом LCGI (LocalCommonGatewayInterface) компании Novell. В отличие от стандартного интерфейса CGI, работающего через гнезда TCP/IP, LCGI действует через модуль STREAMS.NLM. С помощью LCGI можно составлять прикладные программы, которые взаимодействуют с другими NLM на сервере, такими, как базы данных. В пакет NetWareWebServer входит NDS-броузер, который позволяет любому клиенту исследовать NDS-объекты и методы, и который написан с использованием LCGI.
К сожалению, NetWareWebServer не предусматривает прямого соединения с отличными от NetWare, базами данных. Пользователь должен либо подготовить свою программу LCGI, либо ждать выхода следующей версии NetWareWebServer, в которой по обещаниям Novell будут иметься некоторые средства для подключения к базам данных. Руководство программиста, поставляемое фирмой Novell вместе с продуктом, дает хорошее представление об LCGI, а также о других средствах разработки, использование которых предусматривает NetWareWebServer. В руководстве приводятся многочисленные примеры программ и сценариев, созданных с помощью CGI, Perl, NetBasic и LCGI.
Нумерованные списки
Для того, чтобы включить в HTML-страницу нумерованный список, не обязательно нумеровать строки. Можно воспользоваться так называемым упорядоченным списком, а номера сформирует сам броузер.Для упорядоченного списка применяется два типа тегов: весь список обрамляется тегом и его закрывающей парой , а каждому элементу списка предшествует тег
Пример использования нумерованного списка:
Объект Command
Объект Command можно создавать независимо от ранее созданных объектов Connection, определив его свойство ActiveConnection в строке команды. Когда ADO создает объект Connection, он не устанавливает соответствие между этим объектом и переменными объекта. Кроме того, когда ставится в соответствие составной объект Command соединению, необходимо отдельно создать и открыть объект Connection; это назначит свойство для переменной объекта. Если не установить свойство ActiveConnectionобъекта Command в переменную объекта, то ADO создаст новый объект Connection для каждого объекта Command, даже при использовании той же строчки. Объекты Command используются для получения записей и создания объектов Recordset, для выполнения больших операций или для изменения структуры БД. Используя коллекции, методы и свойства объекта Command можно производить следующие действия:Объект Command содержит коллекцию Parameters. Используя метод Refresh коллекции Parameters можно получить информацию о параметрах хранящихся процедур или для параметризации запроса, определенным в объекте Command. Если не определен объект Parameter и обращение идет к коллекции Parameters перед вызовом метода Refresh, то ADO автоматически вызывает этот метод и заполняет коллекцию Parameters. Зная имена свойств параметров хранимой процедуры или параметризированного запроса, который нужно вызвать, можно создать объекты Parameter с соответствующими свойствами и, используя метод Append, добавить их в коллекцию Parameters. Это позволит устанавливать и возвращать значения параметров без вызова метода Refreshдля коллекции Parameters для получения от провайдера информации о параметрах. Для удаления объектов Parameter из коллекции Parameters используется метод Delete.
Используя различные коллекции, методы и свойства объектов Parameter можно выполнять следующее:
Для обращения к объекту Parameter по его порядковому номеру или имени можно использовать следующие варианты:
command.Parameters(0) command.Parameters("name") command(0) command("name") command![name]
Объект Connection
Объект Connection представляет соединение с источником данных OLEDB. Объекты Connection можно создавать независимо от ранее созданных объектов. Объект Connection представляет собой выделенный сеанс связи с источником данных. В случае архитектуры клиент/сервер этот объект может выступать эквивалентом соединения с сервером. Используя коллекции, методы и свойства объекта Connection, можно выполнять следующее:
Коллекция Errors содержит в себе все объекты Error, которые относятся к одиночным операциям. Любая операция ADO может генерировать одну или несколько ошибок. При появлении ошибки один или несколько объектов Error могут быть помещены в коллекцию Errors. Когда другая операция генерирует ошибку, то коллекция Errors очищается, и в нее могут быть помещены новые объекты Error. Для принудительной очистки коллекции Errors используется метод Clear. Некоторые свойства и методы возвращают предупреждения, которые не прерывают выполнение программы. Для получения детального описания каждой ошибки можно воспользоваться следующими свойствами:
В таблице приведены три примера используемых ошибок:
| Имя константы | Номер ошибки | Описание |
| AdErrInvalidArgument | 3001 | Неправильный аргумент |
| AdErrNoCurrentRecord | 3021 | Нет текущей записи для операции |
| AdErrIllegalOperation | 3219 | Неправильная операция |
Объект Recordset
Объект Recordset представляет полный набор записей таблицы данных или результат выполненной команды. В любое время объект Recordset ссылается только на одну запись из текущего набора. Объекты Recordset можно создавать независимо от ранее созданных объектов Connection путем указания метода Open в строке команды. Когда ADO создает объект Connection, он не устанавливает соответствие между этим объектом и переменными объекта. Кроме того, при открытии составного объектаRecordset нужно отдельно создать и открыть объект Connection; это назначит свойство для переменной объекта. Если не используется переменная объекта, когда открывается объект Recordset, то ADO создает новый объект Connection для каждого нового объекта Recordset, даже если пропущена эта операция. Объекты Recordset используют для управления данными на уровне записей. При использовании ADO, почти всегда управление данными происходит с помощью объектов Recordset. Все объекты Recordset строятся с использованием записей (строк) и полей (столбцов). Возможно использование четырех различных типов курсора при открытии объекта Recordset:Установить необходимый тип курсора можно с помощью свойства 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, можно выполнять следующие действия:
Для обращения к объекту Field в коллекции по порядковому номеру или имени используются следующие способы:
recordset.Fields(0) recordset.Fields("name") recordset(0) recordset("name") recordset![name]
Объекты и их иерархия, методы и свойства
Язык сценариев VBScript является объектным языком. Объекты характеризуются свойствами и методами. Свойства представляют собой именованные поля объектов. А методы являются процедурами и функциями, связанными с данным объектом и обрабатывающими его свойства. Не имеется прямой поддержки наследования, однако объекты могут быть вложенными в другие объекты, образуя объектную иерархию. Объекты VBScript бывают нескольких видов:Объекты броузера - стандартные (встроенные) объекты VBScript - начинаются с объекта window, в который вложены объектыnavigator, location, history и document. Объект window дает возможность манипулировать окнами броузера. Объект navigator позволяет получить информацию об используемом броузере. Через свойства и методы location программист получает доступ к указателю URL текущего файла и его отдельным элементам. Методы объекта history позволяют перемещаться по пройденным URL вперед, назад и на любой произвольный указатель в массиве истории. Объект documentопределяет свойства HTML-документа, например, title - заголовок документа, методы динамического создания документа, например, writeln(), а также отражает вложенность форм и их элементов.
Своеобразие доступа к свойствам (полям) и методам элементов формы определяется объектным характером языка VBScript, в нем существует четкая иерархия объектов документа:
DOCUMENT ФОРМА ЭЛЕМЕНТ СВОЙСТВО или МЕТОД()
Доступ к свойствам и методам элементов формы производится путем перечисления имен всех объектов, составляющих форму. Например, обращение к значению текстового поля L в форме frm будет выглядеть: document.frm.L.value.
Кроме стандартных объектов и объектов документов, пользователь может создать в сценарии с помощью оператора CreateObject свои объекты и использовать их как любые другие.
Обеспечение целостности данных.
С использованием SQL можно определить достаточно сложные ограничения целостности, удовлетворение которым будет проверяться при всех модификациях базы данных.SQL в стандарте ANSI/ISO является реляционно-полным языком, и СУБД, поддерживающие его, удовлетворяют всем правилам Кодда.
Обработка исключений и легковесные процессы (потоки)
Одним из важнейших элементов программирования является обработка особых ситуаций. Такие ситуации порождаются, например, делением на ноль, выходом за границы отведенной памяти или попытками записи в защищенные блоки памяти. Если в обычных языках программирования разработчик может обрабатывать эти нештатные ситуации (обычно называемые прерываниями), а может и не обрабатывать, то в Java он обязан это делать или явно указать на обработку прерываний. Все такие необычные действия в Java называются исключениями (exception).Перехват исключений в Java оформляется блоком "try-catch". Смысл у него очень простой: сначала делается попытка выполнить фрагмент кода, и если генерируется исключение, то оно обрабатывается фрагментом catch:
try { // codeblock } catch (exception) { //exceptionexecutioncode } catch (exception) { //exceptionexecutioncode throw (exception); } finally { }
Из примера видно, что кроме try и catch при обработке прерываний могут применяться еще операторы throw и finally. Первый используется для порождения исключения, а второй для передачи обработки исключения обработчику умолчания.
Все исключения делятся на два класса Exception и Error. В корне иерархии исключений находится класс Throwable. Класс Exception содержит описания исключений, которые должны перехватываться программным кодом разработчика, если их обработка не предусмотрена в программе, то компилятор выдаст сообщение об ошибке. Например, все работы с сетью должны содержать конструкции try и catch:
importjava.net.*; importjava.io.*; importjava.applet.*; importjava.awt.*; publicclassurl_1 extendsApplet { Socketurl; InputStreamis; OutputStreamos; DataOutputStreamdos; intc; StringBuffersb = newStringBuffer (); bytebyte_b[] = newbyte[1024]; intc_l; longdate;
publicvoidinit () { try { url = newSocket ("localhost",80); is = url.getInputStream (); os = url.getOutputStream (); dos = newDataOutputStream (os); dos.writeBytes ("GET /java/test.htmHTTP/1.0\r\n\r\n"); while ( (c=is.read ())!=-1) { sb.append ( (char) c); } os.close (); is.close (); url.close (); } catch (IOExceptionee) { System.out.println ("Problemwithreading."); } add ("Center",newTextArea (sb.toString ())); } publicvoidpaint (Graphicsg) { g.drawString (sb.toString (),10,40); } }
В этом примере в блок перехвата исключения попали все операции ввода/вывода, которые выполняются через сеть. Данный пример хорош еще и тем, что показывает отсутствие разницы между вводом/выводом локальным и удаленным, и там применяются одни и те же методы, только объекты, у которых эти методы определены - разные. К этому примеру мы еще вернемся при обсуждении реализации сетевых обменов между клиентами и серверами.
Если метод не собирается перехватывать исключение, то это должно быть указано. Для этой цели служит модификатор throws:
typemethod_name (args_list) throwsexception_list { ... }
Если в предыдущем примере убрать блок try-catch, и использовать throws, то компилятор должен допустить данный исходный текст. Если не будет указано ни первое, ни второе, то код не будет оттранслирован.
Если прерывание (исключение) необходимо проигнорировать, то в этом случае в связке с try нужно использовать finally:
try { // code } catch { // code } finally { // code }
Блок finally будет выполняться до того, как исключение будет перехвачено блоком catch. Если catch нет вовсе, то сначала будет выполнен блок finally, а только потом управление будет передано обработчику исключений.
Исключения - это такие же классы, как и все остальные. Разработчик может расширить число этих классов. Однако, расширять можно только класс Exception. Для возбуждения исключения, порожденного пользователем применяется оператор throw. В приведенном примере возбуждение исключения происходит при достижении счетчиком значения 10.
classNewExeptionextendsException { privateintparm; NewException (intparm) { parm = a; } publicStringtoString () { return "valuetoolong:"+parm+"."; } } classCycle { staticvoidculc (intx) throwsNewException { inti; for (i=0;i
В этом примере представлено Java-приложение (application), которое выполняется локально, а не передается по сети. Главный (main) метод класса Cycle пытается выполнить метод culc, который в свою очередь порождает исключение, если параметр цикла превысит значение 10. Обратите внимание, что culc игнорирует исключение NewException, поэтому оно попадает на обработку в блок try-catch метода main.
Любое Java-приложение (application) должно иметь метод main, с которого собственно и начинается процесс выполнения Java-программы. Для апплетов действует совершенно другой порядок выполнения кода.
Еще одним важным свойством Java является способность непосредственно использовать потоки или, как их называют в Unix, легковесные процессы. Отличие потока от полноценного процесса заключается в том, что при создании нового потока система не копирует код программы в новую область памяти, которую отводит под поток. Реально на одном и том же коде выполняется сразу несколько потоков. При этом время порождения потока, существенно меньше, чем при порождении полновесного процесса, и памяти для его функционирования нужно также меньше. При этом потоки исполняются параллельно.
Практически все пользователи Web так или иначе, если конечно они разрешают выполнение Java-апплетов на своем компьютере, видели многопоточные апплеты - это бегущие строки и мигающие картинки. Идея этой мультипликации заключается в том, что кроме основного потока, applet порождает еще один поток, который "просыпается" время от времени и меняет параметры отображения информации, например, координаты отображения текста или название отображаемого графического образа.
В рамках данного курса не преследуется цель научить тонкостям программирования Java, поэтому мы рассмотрим только пример применения легковесного процесса (потока) при программировании бегущей строки:
importjava.applet.*; importjava.awt.*; publicclasshelloextendsAppletimplementsRunnable { intx = 0;inty = 0;intstart_x = 0;intstart_y = 0; Threadnew_thread = null; Stringmessage = "Hellobody!!!"; publicvoidinit () { y = size ().height;x = size ().width;start_x = x;start_y = y; } publicvoidstart () { new_thread = newThread (this); new_thread.start (); } publicvoidrun () { while (true) { repaint (); x -= 10; if (x<0) { x=start_x;} try { Thread.sleep (100);} catch (InterruptedExceptione) { } } } publicvoidpaint (Graphicsg) { Fontnew_font = newFont ("TimesRoman",1,48); g.setFont (new_font); g.drawString ("Hello, Java.",x,y/2); } }
Обсудим этот пример. Первые строчки указывают на то, что мы импортируем в нашу программу описания классов Applet и AWT. Первый класс описывает все необходимые параметры для передачи и запуска небольшой Java-программы по сети. Второй класс описывает параметры настройки интерфейса пользователя, он нам нужен для того, чтобы отображать информацию в окне апплета, которое будет открыто в рабочей области броузера.
Класс hello - это наша программа. Она расширяет класс applet и использует интерфейс Runnable. Этот интерфейс необходим для того, чтобы породить подпроцесс (поток). Он специфицирует метод run (), который мы определяем в своей программе (классе hello).
Для того, чтобы переменные были доступны всем методам класса, мы их вынесли в начало. Метод init () выполняется первым после загрузки апплета. В нем производится присвоение начальных значений. Затем, после init (), выполняется метод start (). В этом методе мы порождаем новый поток. Собственно больше ничего и не делаем. Метод run () содержит код этого потока. Отображение информации осуществляется методом paint (). Реально этот метод вызывается системой только в том случае, если с экраном что-либо произошло: наехало другое окно или мы изменили размеры окна броузера. В нашем случае мы принудительно заставляем выполниться paint (), вызывая метод repaint () в методе run ().
Таким образом, из этого примера видно, что все потоки (вычисление параметров, отображение информации, изменение размеров окна броузера и т.п.) исполняется параллельно и не зависимо друг от друга. Синхронизация осуществляется за счет анализа событий, происходящих в системе.
Обработка событий
В основном JavaScript применяется для создания интерактивных документов. Диалоговый элемент INPUT формы расширен и может содержать указание на событие и функцию его обработки.Основной синтаксис, используемый для указания обработчиков событий:
Здесь TAG - это некоторый тег HTML, а eventHandler - имя обработчика событий. Как правило, обработчик событий имеет имя, совпадающее с именем события, с приставкой "on" (см. таблицу 3.2). Заметим, что многие объекты имеют методы, эмулирующие события, но эти методы не запускают обработчик события.
Таблица 3.2. Типы событий и обработчиков
Событие
Введите Ваше имя:
Другой пример иллюстрирует обработку события onClick при нажатии видео-кнопки документа - вызов функции подтверждения confirm:
Аналогичным образом строятся и другие более сложные диалоги, связанные с проверкой числовых значений при вводе.
Отметим, что вызов функции выделен апострофами, а фраза, которая должна появится в диалоговом окне, кавычками. Можно указать несколько действий, разделяя их двоеточием (:).
Также можно написать скрипт в контейнере
В этом случае, после того как Вы определили в контейнере