WEB технологии К 1989 году гипертекст представлял новую, многообещающую технологию, которая имела относительно большое число реализаций с одной стороны, а с другой стороны делались попытки построить формальные модели гипертекстовых систем, которые носили скорее описательный характер и были навеяны успехом реляционного подхода описания данных. Идея Т. БернерсЛи заключалась в том, чтобы применить гипертекстовую модель к информационным ресурсам, распределенным в сети, и сделать это максимально простым способом. Он заложил три краеугольных камня системы из четырех существующих ныне, разработав: язык гипертекстовой разметки документов HTML (HyperText Markup Lan-guage); универсальный способ адресации ресурсов в сети URL (Universal Resource Locator); Количество компьютеров в мировых сетях 1600000000 1400000000 1200000000 1000000000 800000000 600000000 400000000 200000000 0 1,46 945 млрд (прогноз) млн 500 147 млн 61 10 100 млн 1000 тыс тыс 1 млнмлн 1984 1987 1989 1993 1996 1998 2001 2005 2007 Количество пользователей Интернет в разных странах 9E-11 США Япония Миллионов Человек 8E-11 76,5 Великобритания 7E-11 Германия 6E-11 Канада Австралия 5E-11 Франция 4E-11 Швеция 3E-11 Италия Испания 2E-11 Нидерланды 1E-11 9,75 8,1 4,36 7,14 2,79 2,58 6,49 0 С т р а н ы 2,14 1,98 1,96 1,65 Тайвань Классификация web ресурсов конечные (или функциональные) сайты навигационные сайты поисковые системы каталоги порталы информационные (или тематические) сайты корпоративные сайты сайты электронной коммерции сайты, являющиеся Web интерфейсами сетей Интернет HTML Часто применяются следующие расширения языка HTML (выполняются на стороне клиента и/или сервера и расширяют их возможности) • • • • Java - машинно-независимый язык программирования (подробнее см. подраздел 7.2.2). JavaScript, VBScript и PerlScript - языки программирования, интегрированные в HTML-код. CGI и ISAPI - серверные расширения HTML, служащие для организации полномасштабного диалога в Сети. ActiveX - предложенная Microsoft Corp. технология, позволяющая вводить в WEB-страницы любые (выгружаемые из Сети) активные программные объекты; реализована в виде построенного на Win32 и OLE API (подробности можно получить с сервера фирмы-разработчика www.microsoft.com). Технология ActiveX, например, удачно применена фирмой Inprise Corp. для создания ‘тонкого’ клиента при работе с базами данных (внешне имеет много общего с технологией MIDAS той же фирмы, однако выполняется в броузере клиента) для InterNet’а HTML Часто применяются следующие расширения языка HTML (выполняются на стороне клиента и/или сервера и расширяют их возможности) • • • IDC - Internet Database Connector - средство доступа к базам данных через ODBC (Open Database Connectivity) в технологии ‘клиент/сервер’ для Microsoft SQL Server (IDC включает также соответствующий формат файлов). ASP (Active Server Pages) - технология позволяет решать те же задачи, что и с помощью CGI и ISAPI, однако при этом заметно упрощается процесс разработки WEB-приложений [23]. Документ ASP включает шаблон, использует серверные сценарии на языке JScript или VBScript, запросы к БД на SQL и COM-технологию. PHP/FI - развивающийся в последнее время язык создания домашних WEB-страниц, облегчения разработки форм и таблиц и анализа запросов SQL; предложения PHP/FI (одна из распространенных версий 2.0) встраиваются непосредственно в текст HTML-страниц и выполняются серверным процессом (см. подраздел 7.2.4). Следует отметить существующие технологии работы с мультимедиа в InterNet RealAudio (фирма Progressive Network) - один из примеров многообещающей технологии потоковой передачи данных (streaming audio), позволяющей проигрывать (звуковой) файл в процессе его загрузки (информация на адресе www.realaudio.com); одна из популярных программ - SOX (SOund eXchange, см. www.spies.com/Sox/). Другие примеры - системы IWave (сокращение от InternetWave, фирма VocalTec, информация на адресе www.dspg.com) и TrueSpeech. MBONE - Multicast Backbone - виртуальная сеть, позволяющая передавать видеоизображения и аудио через InterNet с использованием технологии групповой пересылки (multicasting). Видео воспроизводится со скоростью 1 кадр/сек (при пропускной способности канала 128 Кбайт/сек), для высококачественной передачи голоса требуется 32 или 64 Кб/сек (MBONE применялась для репортажей непосредственно с места событий, например, при выходе космонавтов в открытый космос). Работу с MBONE поддерживают приложения NetVideo, VisualAudioTool и Whiteboard (все для UNIX). Следует отметить существующие технологии работы с мультимедиа в InterNet StreamWorks - разработанная фирмой Xing Technology Corp. система передачи видео и аудио по любой сети (информация на www.xingtech.com). Корпорации NBS и Reuters применяют StreamWorks для передачи коммерческим подписчикам репортажей с места событий, несколько WEBрадиостанций используют StremWorks для высококачественной трансляции музыки (от 14,4 Кб/сек до 44,1 Кб/сек для стерео и 112 Кб/сек для полноценного видео). VRML - Virtual Reality Modeling Language - язык моделирования виртуальной реальности, подробнее см. работ. Иерархия объектов JavaScript window location frames forms elements history document links anchors images Язык Java по синтаксису близок к C++, однако имеет существенные особенности Не поддерживается перегрузка операторов (вследствие трудности поддержки и относительно редкого использования на практике). Запрещено множественное наследование (основания подобны вышеприведенным, запрет несколько смягчается возможностью использования унаследованных интерфейсов). Исключены указатели, являющиеся частой причиной труднолокализируемых ошибок в C++. Мощь языка Java основана на сочетании четырех его характеристик 1. 2. 3. 4. Сетевой осведомленности (network awareness) заключается в том, что каждое решение при разработке языка принималось таким образом, чтобы предоставить возможность Java-приложениям обладать сетевыми характеристиками (в применении к InterNet это вылилось в обеспечении гнездового интерфейса низкого уровня - lowlevel socket interface). Переносимости - возможность исполнения Java-программ на различных аппаратных и операционных платформах. Безопасности - достигается путем сегментации памяти, выгрузки из Сети только классов Java (а не ‘родных’, зависящих от конкретной ОС, методов) и фильтрования всех потенциально опасных требований доступа к системным ресурсам через специальный класс SecurityManager. Объектной ориентации - путем разграничения доступа к объектам путем применения концепций наследования и инкапсуляции. Расширенный язык разметки XML XML-документ состоит из двух частей: размеченного документа, отображающего исходную информацию, и декларации средств используемого языка разметки. Эта декларация, называемая таблицей определения типов DTD (Document Type Definition), должна соответствовать общим правилам языка XML, но может содержать объявления элементов, специфичных для некоторого приложения и определяющих используемую разновидность XML. Разновидности XML (словари XML) могут создаваться по мере необходимости, что и оправдывает определение XML как метаязыка. PHP PHP – это язык сценариев, выполняющийся на стороне сервера. Он был разработан специально для Web – программирования и в очень короткие сроки приобрел большую популярность. PHP является интерпретируемым языком программирования. Технология PHP PHP Сервер Web Проигрыватель сценариев PHP Сеть Клиент Web Программное обеспечение WWW построено по схеме клиент-сервер. HTTP НТТР используется для взаимодействия программклиентов с программамишлюзами, разрешающими доступ к: файловым архивам FTP системам Gopher и WAIS ресурсам электронной почты спискам новостей Usenet Протокол реализует принцип "запрос - ответ". Запрашивающая программа-клиент инициирует взаимодействие с сервером и посылает запрос: метод доступа адрес URL версию протокола сообщение с модификаторами типа данных информация клиента Заголовки протокола HTTP Заголовки объекта Allow Перечисляет поддерживаемые сервером методы Content-Encoding Способ, которым закодировано тело сообщения, например, с целью уменьшения размера Content-Length Длина сообщения в байтах Content-Type Тип содержимого и, возможно, некоторые параметры ETag Уникальный тэг ресурса на сервере, позволяющий сравнивать ресурсы Expires Дата и время, когда ресурс на сервере будет изменен, и его нужно получать заново Last-Modified Дата и время последней модификации содержимого Заголовки протокола HTTP Заголовки ответа Age Число секунд, через которое нужно повторить запрос для получения нового содержимого Location URI ресурса, к которому нужно обратиться для получения содержимого Retry-After Дата и время или число секунд, через которое нужно повторить запрос, чтобы получить успешный ответ Server Название программного обеспечения сервера, приславшего ответ Заголовки запроса Accept Типы содержимого, которое "понимает" клиент и может воспроизвести Accept-Charset Кодировки символов, в которых клиент может принимать текстовое содержимое Accept-Encoding Способ, которым сервер может закодировать сообщение Host Хост и номер порта, с которого запрашивается документ Заголовки протокола HTTP If-Modified-Since,If-Match,If-None-Match,If-Range,If-Unmodified-Since Заголовки запроса для условного обращения к ресурсу Range Запрос части документа User-Agent Название программного обеспечения клиента Общие заголовки Connection Указывает серверу на завершение (close) или продолжение (keep-alive) сеанса Date Дата и время формирования сообщения Публикация БД в Интернет со статическим формированием страниц Преобразователь Сервер Web СУБД HTML БД Сеть Клиент Web Публикация БД в Internet с использованием технологии CGI БД Сервер Web СУБД CGI Сеть Клиент Web