Новые технологии информационного сервиса в Internet

         

Common Gateway Interface - средство расширения возможностей World Wide Web технологии


Главное назначение Common Gateway Interface

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

программой, которая запускается из-под сервера

CGI-скрипт - программа написанная в соответствии со спецификацией

Common Gateway Interface. CGI-скрипты могут быть написаны на любом

языке программирования (C, C++, PASCAL, FORTRAN и т. п.) или командном

языке (shell, cshell, командный язык MS-DOS, Perl и т. п.). Скрипт

может быть написан даже на языке редактора EMAC в системах Unix

Шлюз - это CGI-скрипт, который используется для обмена

данными с другими информационными ресурсами Internet или приложениями-демонами.



Обычная CGI- программа запускается сервером HTTP для выполнения

некоторой работы, возвращает результаты серверу и завершает свое

выполнение



Доступ к базе данных под управлением Ingres


Простой вызов постоянного запроса

Форматирование вывода

Запрос через Query-String

Фильтрация



Формы


ЭлементНазначение

INPUTполя ввода информации имеют множество типов

TEXTAREAполе ввода многострочного текста

SELECTописание меню

OPTIONописание элемента меню

Пример использования полей ввода

<FORM METHOD=POST ACTION=http://polyn.net.kiae.su/cgi-bin/test>

<P> Ниже приведен список примеров полей ввода:<BR>

Простое текстовое поле: <INPUT NAME="test1" VALUE="test1" TYPE="text"><BR>

Поле типа checkbox: <INPUT NAME="test2" TYPE="checkbox" CHECKED><BR>

Поле типа radiobutton: <INPUT NAME="test3" TYPE="radio"><BR>

Поле типа password: <INPUT NAME="test4" TYPE="password"><BR>

Невидимое поле: <INPUT NAME="test5" TYPE="hidden" VALUE="kuku"><BR>

Кнопка Submit: <INPUT NAME="submit" VALUE="Submit" TYPE="submit"><BR>

Кнопка Reset: <INPUT NAME="reset" VALUE="Reset" TYPE="reset"><BR>

Графическая кнопка: <INPUT NAME="graph" VALUE="default" SRC="test.gif" TYPE="image"><BR>

</FORM>



Гипертекстовые контекстные ссылки


<A HREF="http://polyn.net.kiae.su/index.html">

Индекс базы данных "Полынь"</A>

<A NAME="point">

<A HREF="http://polyn.net.kiae.su/index.html#point">

Ссылка на точку "point" в документе "index.html"</A>



Характеристики современных ИПС


Тестовый запрос:

"Best on the Web"

Использовались следующие механизмы улучшения запроса:

простой запрос

сложный запрос

нормализация лексики

ранжирование

коррекция по релевантности

Систематип ИПЯКоррекциятест
Lycos Like this +10
Altavistaexp.bul.+ 1
Yahoo bul.-3
OpenTextbul.ord.- 5
InfoSeekbul.weight- -



Индексирование и Поиск


Модели индексирования и поиска:

векторная модель информационного потока

нечеткие множества

вероятностная модель

Типы информационно поисковых языков:

традиционные ИПЯ

взвешивание терминов

ИПЯ типа "Like this"

Способы коррекции результатов поиска

фильтрация

коррекция по релевантности

кластеризация

Векторная модель:


Запрос к системе:

Lxq=r

где

q -вектор запроса

r - вектор отклика

Традиционный ИПЯ:

((информационная and система) or ИПС) not СУБД

Найти все документы, в которых встречается термин

"информационная" и "система", либо термин "ИПС", но не встречается

термин "СУБД".

Недостатки:

Плохая масштабируемость выдачи. OR приводит к слишком

большому расширению списка релевантных документов, а AND резко

сужает отклик.

Модификации:

Взвешенный запрос (каждому термину приписывают некоторый

вес)



Индексы


Состав индексов различных систем

()

WWWWWebCraw.Lycos Harvest Galaxy Yahoo
URL

telnet

gopher

ftp

WWW-

*-

**

*

*

*-

*-

*

*-

*

заголовки* *** ** текст    **   весь текст*       Объем   4.2Мл док. 42000 объектов 



Информационно-поисковые системы Internet


Назначение:

Свободный поиск информации в информационных массивах

по совокупности признаков (обычно ключевых слов) - ретро-поиск

Поиск информации по заранее подготовленным запросам

с определенной периодичностью - избирательное распространение

информации.

Основные причины существования ИПС:

большой объем информации

ее недостаточная или чересчур подробная структуризация

широкий тематический профиль информационных массивов



Информационные элементы


ЭлементЗначениеПримечание
<EM>...</EM>Типографское

усиление

Часто отображается как Italic

<CITE>...</CITE>ЦитированиеНе реализовано в

Mosaic

<STRONG>...</STRONG>УсилениеОтображается как BOLD

<CODE>...</CODE>Отображает

примеры кода (например, коды программ)

Отображается непропорциональным фонтом

<SAMP>...</SAMP>Последователь-ность литералов

Не реализован в Mosaic

<KBD>...</KBD>Пример ввода символов с клавиатуры

Используется при разработке руководств

<VAR>...</VAR>Переменная
<DFN>...</DFN>Определениетолько Arena

<Q>...</Q>Текст, заключенный в скобки

Вид скобок зависит от атрибута LANG. Реализован только в Arena

<LANG>...</LANG>Определяет язык отображения

только Arena
<AU>...</AU>Автортолько Arena

<PERSON>...</PERSON>Имя персоныВведено для простоты выделения при индексировании документов. Реализован только в Arena

<ACRONIM>...</ACRONIM>Акронимтолько Arena

<ABBREV>...</ABBREV>Аббревиатуратолько Arena

<INS>...<INS>Вставленный текст только Arena
<DEL>...</DEL>Удаленный тексттолько Arena



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


Задачи разработки HTML:

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

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

сделать это средство достаточно мощным, чтобы отразить имеющиеся

на тот момент представления об интерфейсе пользователя гипертекстовых

баз данных

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

файл:

такой файл можно создать в любом текстовом редакторе

на любой аппаратной платформе в среде любой операционной системы

к моменту разработки HTML существовал американский стандарт

для разработки сетевых информационных систем - Z39.50, в котором

в качестве единицы хранения указывался простой текстовый файл

в кодировке LATIN1, что соответствует US ASCII

Версии языка:

HTML 1.0 - была направлена

на представление языка как такового, где описание его возможностей

носило скорее рекомендательный характер

HTML 2.0 - фиксировала практику использования конструкций

языка

HTML++ - новые возможности

HTML 3.0 - призвана упорядочить все нововведения и

согласовать их с существующей практикой



Языки типа "like this". Меры близости.


M - число терминов запроса;

Qj - j-ый термин запроса;

N - число WWW страниц в индексе;

Pi - i-ая страница;

Ri,q - релевантность страницы i запросу q;

Lii,k - 1 если из документа k есть ссылка на документ

i, 0 в противном случае;

Loi,k - 1 если из документа i есть ссылка на документ

k, 0 в противном случае.

Ci,j - 1 если страница i содержит термин j, 0 в противном

случае.

(1)

(2)

(3)

(4)



Элемент img


<img SRC="http://polyn.net.kiae.su/gif/sarclast.gif" ALT="Sarcofagus.Winter, 1997">

<A HREF="doc.html"><img SRC="icon.gif" ALIGN=MIDDLE></A>



Элемент TEXTAREA


<TEXTAREA NAME="multi" ROWS=5 COLS=20>

This is a test

TEXTAREA элемент

</TEXTAREA>



Элементы стиля


ЭлементЗначениеПримечание
<I>.....</I>Курсив(Italic)
<B>...</B>Усиление(BOLD) 
<TT>...</TT>Телетайп 
<U>...</U>Подчеркивание  
<S>...</S> Перечеркнутый текст Только Arena при

наличии соответствующего фонта

<BIG>...</BIG> Увеличенный текст только Arena
<SMALL>...</SMALL> Уменьшенный фонт только Arena
<SUB>...</SUB> Подстрочные

символы

только Arena
<SUP>...</SUP>Надстрочные

символы

только Arena



Элементы заголовка


<TITLE> поля документа
<BASE> базовый адрес
<ISINDEX> поисковый документ
<LINK> общая гипертекстовая ссылка

<META>

Примеры элементов заголовка:

<TITLE> Название документа </TITLE>

<BASE HREF="http://polyn.net.kiae.su/>,

<A HREF="/altai/index.html">

<A HREF="http://polyn.net.kiae.su/altai/index.html">

<img SRC="/gif/test.gif">

<img SRC="http://polyn.net.kiae.su/gif/test.gif">

<ISINDEX HREF="http://polyn.net.kiae.su/cgi-bin/search" PROMPT="Enter Keywords:">

<LINK REL=Help HREF="http://polyn.net.kiae.su/dss/syshelp.html">

<LINK REL=Banner HREF=banner.html>

<META HTTP-EQUIV="Keywords"

CONTENT="Plsma, Nuclear Physics">

Keywords: Plasma, Nuclear Physics



Литература


Эд Крол. Все об Internet. , Киев, 1995.

Пол Гилтер. Навигатор Internet. Путеводитель

для человека с компьютером и модемом. Джон Уайли энд Санз, М.-1995

С.Клименко, В.Уразметов. . Российский Центр Физико-Технической

Информатики. Протвино, 1995

Электронная почта в системе MS-DOS. Санкт-Петербург,

1995

Павел Храмцов. Лабиринт Internet. Практическое

руководство. М.-Электронинформ, 1996.

Александр Лебедев.



Механизмы обмена данными


переменные окружения

формат командной строки

формат стандартного ввода

формат стандартного вывода



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



Internet Hosts 1989-1996

(M. Lottor, )


WWW - Prefixed Hosts

(M. Lottor, , A.M. Rutkowski - General Magic, Inc. - Feb 1996)


Internet Global Backbone Connectivity


Network Growth - Europe Top 11


Internet Global Infrastructure Diffusion


Global Internet Connectivity


Relation Between Percentage of Bytes &

Packets Tranferred Per Month By Service



Организация стека графических ссылок


Скрипт imagemap

<A href="http://polyn.net.kiae.su/cgi-bin/imagemap/russia">

<img SRC="http://demin.polyn.kiae.su/dss/russia.gif" ISMAP>

</A>

# метка : адрес файла описания картинки

russia : /usr/local/etc/httpd/cgi-bin/maps/russia.map

brussia : /usr/local/etc/httpd/cgi-bin/maps/brussia.map

....

#описание прямоугольника

rect 10 20 100 200

circle 50 50 60 60

poly 10 10 20 20 20 10



Основные классы элементов тела


Тело документа состоит из:

Иерархических контейнеров и заставок

Заглавий (от H1 до H6)

Блоков (параграфы, списки, формы, таблицы, картинки

и т. п.)

Горизонтальных отчеркиваний и адресов

Текста, разбитого на области действия стилей

(подчеркивание, выделение, курсив), математические описания, графику

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



Основные компоненты технологии World Wide Web


универсальный способ адресации ресурсов в сети

URL (Universal Resource Locator)

протокол обмена гипертекстовой информацией HTTP

(HyperText Transfer Protocol)



Основные способы поиска информации в Internet


Навигация

гипертекстовые ссылки (World Wide Web)

строки-селекторы (Gopher)

Информационный поиск

archie

veronica

wais

Information Retrieval Systems



Отображение ненумерованного списка


<UL>

<LH>Title of WWW programmes (NCSA).

<LI> NCSA HTTPD;

<LI> NCSA MOSAIC

<UL>

<LH>Title of WWW programmes (CERN).

<LI> CERN HTTPD;

<LI> AGORA - email robot;

<LI> HTTPD CERN;

<LI> WWW Line Browser;

<LI> Arena.

</UL>

<UL>

<LH> Title of WWW programmes (Netscape).

<LI> Netsite - server;

<LI> Netscape Novigator.

</UL>



Применение CGI-скриптов


Простейшие SHELL-скрипты

Вызов внешней программы через SHELL

Вызов модуля "С"

Доступ к базам данных

Imagemap



Пример С-программы


#include <stdlib.h>;

#include <sys/types.h>;

main()

{

long i,n,uid;

char input_ch[1024];

char *env;

env = getenv("CONTENT_LENGTH");

/* Here we recieve a length */

sscanf(env,"%d",&n);

/* of input stream and form */

for(i=0;i<;n;i++)

/* command line */

{ input_ch[i]

= getchar(); }

input_ch[i] = '\000';

printf("Content-type:

text/html\n\n"); /* First message of a CGI Programme */

/* This message must be a first one */

/* in output sream. */

printf("<TITLE>

C-cgi script.(example#1)</TITLE>\n");

printf("<H3><I>

Russian Research Center \"Kurchatov Institute\"<I></H3>\n");

c_uid = -1;

sscanf(input_ch,"uid=%ld",&uid);

/* Transform input data */

printf("Input

Nuber:%ld.<BR><HR>",uid);

exit(0);

}



Примеры SHELL-скриптов


#!/bin/sh

echo Content-type: text/plain

echo

echo This is the result of script execution.

#The end of script

#!/bin/sh

echo Content-type: text/plain

echo

echo $REQUEST_METHOD

echo $QUERY_STRING

echo $CONTENT_TYPE

echo $CONTENT_LENGTH

#The end of script.

#!/bin/sh

echo Content-type: text/plain

echo

finger paul@polyn.kiae.su

#The end of script.



Примеры скриптов


#!/bin/sh

echo Content-type: text/plain

echo

ingres polyn < query

#The end of script

#!/bin/sh

echo Content-type: text/plain

echo

helpr polyn

#The end of script

#!/bin/sh

echo Content-type: text/html

echo

echo '< PRE> '

helpr polyn situat

echo '< /PRE> '

#The end of script

#!/bin/sh

echo Content-type: text/html

echo

echo '< PRE> '

echo $QUERY_STRING | tr "+" " " | ingres polyn

echo '< /PRE> '

#The end of script

#!/bin/sh

echo Content-type: text/html

echo

echo '< PRE> '

echo $QUERY_STRING | sed -f symbols | ingres polyn | tr "\007" "*" | head 100

echo '< /PRE> '

#The end of script



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


Основное назначение о области применения:

ведение баз данных World Wide Web

создание "зеркал"

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

комбинированное использование



Список переменных окружения


К общим переменным окружения относятся:

SERVER_SOFTWARE - определяет имя и версию сервера

SERVER_NAME - определяет доменное имя сервера

GATEWAY_INTERFACE - определяет версию интерфейса

К запрос-ориентированным относятся:

SERVER_PROTOCOL - протокол сервера

SERVER_PORT - определяет порт TCP, по которому

осуществляется взаимодействие (80 порт)

REQUEST_METHOD - определяет метод доступа к информационному

ресурсу

PATH_INFO - передает программе путь (адрес скрипта)

в виде, указанном в HTML-документе

PATH_TRANSLATED - то же, что и PATH_INFO, но

только после подстановки сервером определенных в его конфигурации

вставок

SCRIPT_NAME - определяет адрес скрипта так, как

он указан клиентом

QUERY_STRING - определяет содержание запроса

к скрипту

Идентификация пользователя и его машины:

REMOTE_HOST - доменный адрес машины, с которой

осуществляется запрос

REMOTE_ADDR - IP-адрес запрашивающей машины

AUTH_TYPE - тип идентификации пользователя

REMOTE_USER - идентификация пользователя

REMOTE_IDENT - устанавливается сервером; предназначена

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

CONTENT_TYPE - определяет MIME-тип данных, передаваемых

скрипту

CONTENT_LENGTH - определяет размер данных в байтах,

которые передаются скрипту

Стандартный ввод CGI-скрипта

Методы GET или Post

CONTENT-LENGHT

CONTENT-TYPE

QUERY-STRING

Стандартный вывод CGI-скрипта

Заголовок

CONTENT-TYPE

Location

Status

Тело ответа (обычно текст)



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


Элемент HTML или гипертекстовый документ

состоит из двух частей:

заголовка документа (HEAD)

тела документа (BODY)

<HTML>

<HEAD>

Содержание заголовка

</HEAD>

<BODY>

Содержание тела документа

</BODY>

</HTML>



Структура ИПС для Internet.


(Budi Yuwono, Dik L.Lee. Search and Ranking

Algorims for Locating Resources on the World Wide Web)



Таблицы


<TABLE BORDER>

<CAPTION>A test table with merged cells.<CREDIT>(T.BernersLee/WWWC,1995.)</CREDIT></CAPTION>

<TR><TH ROWSPAN=2><TH COLSPAN=2>Average>

<TH rowspan=2>other<BR>category<TH ROWSPAN=2>Misc</TR>

<TR><TH>height<TH>weght</TR>

<TR><TH ALIGN=left>males<TD>1.9<TD>0.003

<TR><TH ALIGN=left>females<TD>1.7<TD>0.002

</TABLE>

Пример таблицы

Пример таблицы построенной в текстовом редакторе



Таговая модель документа:


"элемент" :=

<"имя элемента" "список атрибутов">

содержание элемента

</"имя элемента">



Вложенные ненумерованные списки


<UL>

<LI>Title of WWW programmes (NCSA).

<UL>

<LI> NCSA HTTPD;

<LI> NCSA MOSAIC

</UL>

<LI>Title of WWW programmes (CERN).

<UL>

<LI> CERN HTTPD;

<LI> AGORA - email robot;

<LI> HTTPD CERN;

<LI> WWW Line Browser;

<LI> Arena.

</UL>

<LI> Title of WWW programmes (Netscape).

<UL>

<LI> Netsite - server;

<LI> Netscape Novigator.

</UL></UL>



Вложенные нумерованные списки


<OL>

<HL>Нумерованный список

<LI>Элементы заголовка документа

<OL>

<LI>TITLE

<LI>BASE

<LI>LINK

</OL>

<LI>Элементы тела документа

<OL>

<LI>BODY

<LI>Heading

<LI>Paragraph

<LI>Line Break

<LI>Horizontal Rule

<LI>...

</OL>

</OL>