Сбор информации от Web-приложений



ИРКУТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

КАФЕДРА ИНФОРМАЦИОННЫЕ СИСТЕМЫ

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

для выполнения лабораторных работ

по дисциплине «Корпоративные информационные системы»

 

Направление подготовки - 230200 Информационные системы
Специальность - 230201 Информационные системы и технологии

 

 

Иркутск – 2010


Содержание

Лабораторная работа №1. Разработка приложений на основе архитектуры клиент-сервер. 3

Сбор информации от Web-приложений. 4

Лабораторная работа № 2 Использование элементов управления ActiveX для создания динамических веб-страниц. 7

Лабораторная работа №3 Разработка Web-приложений по распределенной обработке данных средствами IDE Delphi 11

Лабораторная работа № 5 Data Mining. 29

Лабораторная работа № 6 Использование технологии терминального сервера при построении корпоративных ИС.. 33

Тест 1. 34

Тест 2. 36


           Лабораторная работа №1. Разработка приложений на основе архитектуры клиент-сервер

 

Необходимость разработки приложений, которые бы могли работать непосредственно в www среде является актуальной задачей. Ввод данных также как и выдача обработанных результатов происходит через html-формы веб-страниц. Обработка же данных происходит на веб-сервере. Такое приложение относится к архитектуре клиент-сервер.

Необходимо отметить, что приложения разрабатываемые в средах разработки ориентированных на Win32 системы, т.е. серверная часть такого приложения может работать только под Win32 сервером, а клиентская часть представляет собой сгенерированный HTML код, который поддерживается любым браузером, независимо от используемой платформы. Серверная часть представляет собой исполняемую Win32 программу. Таким веб-приложениям принято давать расширение CGI, хотя это и непринципиально.

Рассмотрим пример простого CGI-приложения, выдающего в окно браузера текст "ПРИВЕТ", реализованного в среде программирования Delphi.

===cut===

program MyApp;

{$APPTYPE CONSOLE} // директива, задающая тип приложения Win32 - консоль

{$E cgi}               // директива, задающая расширение приложения - cgi

begin

WriteLn('Content-Type: text/html');

WriteLn;

WriteLn;

WriteLn('<HTML>');

WriteLn('<HEAD>');

WriteLn('<TITLE>Простейшее CGI приложение</TITLE>');

WriteLn('<META http-equiv="Content-Type" content="text/html;' +

                           ' charset=windows-1251">');

WriteLn('</HEAD>');

WriteLn('<BODY>');

WriteLn('<H1> ПРИВЕТ </H1>');

WriteLn('</BODY>');

WriteLn('</HTML>');

end.

===cut===

Результирующий файл (скомпилированный и скомпонованный), разместите в каталог, где разрешено исполнение скриптов для сервера приложений (по умолчанию каталог CGI-BIN.

Напишите веб-страничку для активизации CGI-приложения.

===cut==

<HTML>

<HEAD>

<TITLE>Форма для активизации CGI-приложения</TITLE>

</HEAD>

<BODY>

<A HREF="http://localhost/имя_файла_сервер.cgi">

Нажми сюда для запуска приложения</A>

</BODY>

</HTML>

===cut==

Установите на своем рабочем месте локальный сервер Apache. Запустите сервер.

Откройте созданную веб-страничку и перейдите по ссылке "Нажми сюда для запуска приложения". Результат работы продемонстрируйте преподавателю.

 

Код обработчика на РНР.

При помощи приложения «Блокнот» создаем тестовую страницу. Для того чтобы создать новый сайт на локальном веб-сервере, необходимо создать папку с названием сайта в папке C:\xampp\htdocs\, например blog и создать тестовый php-скрипт, например со следующим кодом:

<?php

echo 'Hello world!';

?>

Сохраним файл как index.php. Переходим в браузере по адресу http://localhost/blog/ (либо указываем адрес в ссылке веб-страницы) и видим приветствие «Hello world!», тем самым мы протестировали работоспособность сервера:

 

Сбор информации от Web-приложений

 

Для полноценной работы клиент-серверного приложения, оно должно не только выводить данные, но и получать данные от пользователя, т.е. обеспечивать ввод информации. Ввод данных в случае CGI-приложения будет осуществляться на основе интерфейса организованного веб-формой. Такая форма может передавать данные двумя способами, в зависимости от значения атрибута "METHOD".

В случае ...< ...FORM METHOD="GET" ...>... данные передаются через строку адреса браузера и записываются в переменную системного окружения QUERY_STRING, а размер строки данных в переменную CONTENT_LENGTH.

В случае ...< ...FORM METHOD="POST" ...>... передаваемые данные в строке адреса не отображаются, а передаются через стандартный поток ввода консольной программы.

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

<имя_атрибута1>=<значение_атрибута1>&<имя_атрибута2>=<значение_атрибута2>...

Рассмотрим пример, когда данные передаются через строку адреса браузера, т.е. в случае ...<FORM METHOD="GET" ...>...

Разрабатываемое приложение, которое выдает различную информацию в зависимости от параметров, указанных в адресной строке браузера.

===cut==

program CgiDate;

{$APPTYPE CONSOLE} // директива, задающая тип приложения Win32 - консоль

{$E cgi}               // директива, задающая расширение приложения - cgi

 uses SysUtils; begin writeln ('CONTENT-TYPE: TEXT/HTML'); writeln; writeln ('<HTML><HEAD>'); writeln ('<TITLE>Cgidate</TITLE>'); writeln ('</HEAD><BODY>>'); writeln ('<H1>Пример передачи параметров</H1>'); if ParamCount >0 then begin if ParamStr (1) = 'date' then writeln (FormatDateTime('"Сегодня " dddd, mmmm d, yyyy', Now)) else if ParamStr (1) = 'time' then writeln (FormatDateTime('"Время" hh:mm:ss AM/PM', Now)) else if ParamStr (1) = 'both' then writeln (FormatDateTime('"Сегодня " dddd, mmmm d, yyyy,' + '"<p> и время" hh:mm:ss AM/PM', Now)) else writeln ('Ошибка! Неверный параметр: ' + ParamStr (1) + '.') end else writeln ('Параметр отсутствует.'); writeln ('</BODY></HTML>'); end.

===cut==

Далее вводим в адресной строке браузера путь к серверному приложению с указанием передаваемого параметра (http://localhost/файл_сервер.cgi?time). В результате будет сгенерирована страница, отображающая текущее время. Замените параметр time, на date и both. Результат работы продемонстрируйте преподавателю.

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

===cut==

<A HREF="http://localhost/имя_файл_сервер.cgi?time">

===cut==

 

Обратите внимание на то, как передаются данные через url. Знак вопроса отделяет параметр от адреса файла, с помощью знака равенства web-приложению передается значение данного параметра. Так как в адресной строке нельзя использовать пробел, он заменяется на шестнадцатеричный код в таблице ASCII, то есть %20. Так параметры вводимые в строку поиска «Яндекс» далее передаются методом GET.

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

Передача параметров при использовании инструментальных средств языка PHP приведены в приложении Б.

 


Дата добавления: 2018-02-18; просмотров: 1559; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!