lilalo

diff l3-frontend @ 27:098664cf339c

Выполнены шаги 4,5 в плане N05 по построению распределённой системы lilalo.
Шаг <6> в настоящее время не является необходимым.


Введено понятие сеанса.
Сеансом считается процедура работы с системой, начинающаяся с регистрации
в ней и зазаканчивающаяся разрегистрацией, и сопровождающаяся ведением одного
файла скрипта.
Одновременно с созданием скрипта (.script) создаётся соответствующий ему
файл с информацией о сеансе (.info).
Каждый сеанс имеет уникальный в пределах хоста идентификатор,
~local_session_id~, который впоследствии позволяет определить,
какие команды относятся к какому сеансу.

Добавлен backend-сервер, который получает данные от агентов и записывает
из в backend (в настойщий момент - в XML-файл).
Данные передаются по tcp-соединениям.
(Одновременно может работать несколько серверов.
Блокировка файла при записи пока что не выполняется ОСТОРОЖНО!!!!!!)

Агент периодически пытается отправить backend-серверу содержимое своего кэш-файла,
и если ему это удаётся, кэш файл очищается -- данные теперь хранятся в backend'е.

Взаимодействие агентов, backend-сервера и frontend'а
сейчас выполнеятся так:


+-------+
| |
| cache |
| |
+-^---+-+
| |
. ^ v . ^^ . +---------+ . ^^ .
/ \ tcp / \ | | / \ CGI
( agent )----->( backend- )-->| backend |-->( frontend )----->
\ / \ сервер / | | \ /
' . ' ' .. ' +---------+ ' .. '
^
|
+----+----+
| |
|*.script |
| *.info |
| |
+---------+

l3-frontend:
Теперь может выдавать результат работы на стандартный поток вывода.
Вместо имени файла нужно указать символ -

Добавлены файлы:

l3-backend - backend-сервер
l3-cgi - CGI-обвязка для l3-frontend'а

Новые конфигурационные параметры:
frontend_css Путь к файлу CSS, используемому в HTML-странице, которую генерирует frontend
frontend_google_ico Путь к иконке google
frontend_linux_ico Путь к иконке linux
frontend_freebsd_ico Путь к иконке freebsd
frontend_opennet_ico Путь к иконке opennet
frontend_local_ico Путь к иконке локальной документации

backend_address IP-адрес интерфейса, на котором работает backend-сервер
backend_port Порт, который слушает backend-сервер
backend_pidfile Путь к файлу, который хранит идентификатор процесса backend-сервера
backend_datafile Путь к файлу хранилищу (файлу backend)
author devi
date Mon Nov 07 11:24:49 2005 +0200 (2005-11-07)
parents ba4d6515b8fd
children 450b6ac9b657
line diff
     1.1 --- a/l3-frontend	Thu Nov 03 17:49:56 2005 +0200
     1.2 +++ b/l3-frontend	Mon Nov 07 11:24:49 2005 +0200
     1.3 @@ -29,7 +29,7 @@
     1.4  	init_variables();
     1.5  	init_config();
     1.6  
     1.7 -	load_command_lines_from_xml($Config{"cache"});
     1.8 +	load_command_lines_from_xml($Config{"backend_datafile"});
     1.9  	print_command_lines($Config{"output"});
    1.10  }
    1.11  
    1.12 @@ -334,7 +334,7 @@
    1.13  	<html>
    1.14  	<head>
    1.15  	<meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
    1.16 -	<link rel='stylesheet' href='labmaker.css' type='text/css'/>
    1.17 +	<link rel='stylesheet' href='$Config{frontend_css}' type='text/css'/>
    1.18  	</head>
    1.19  	<body>
    1.20  	<script>
    1.21 @@ -372,10 +372,15 @@
    1.22  
    1.23  	$Result{"header"} .= "</form></td></tr></table>\n";
    1.24  
    1.25 -	open(OUT, ">", $output_filename)
    1.26 -		or die "Can't open $output_filename for writing\n";
    1.27 -	print OUT $Result{"header"}, $Result{"body"}, $Result{"stat"}, $Result{"help"}, $Result{"about"}, $Result{"footer"};
    1.28 -	close(OUT);
    1.29 +	if ($output_filename eq "-") {
    1.30 +		print $Result{"header"}, $Result{"body"}, $Result{"stat"}, $Result{"help"}, $Result{"about"}, $Result{"footer"};
    1.31 +	}
    1.32 +	else {
    1.33 +		open(OUT, ">", $output_filename)
    1.34 +			or die "Can't open $output_filename for writing\n";
    1.35 +		print OUT $Result{"header"}, $Result{"body"}, $Result{"stat"}, $Result{"help"}, $Result{"about"}, $Result{"footer"};
    1.36 +		close(OUT);
    1.37 +	}
    1.38  }
    1.39  
    1.40