ВИЗУАЛЬНЫЙ ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС В РАСПРЕДЕЛЕННОЙ ВЫЧИСЛИТЕЛЬНОЙ САТУРН-СРЕДЕ А.П. Новопашин, Г.А. Опарин, А.Г. Феоктистов Институт динамики систем и теории управления СО РАН, г.Иркутск В докладе рассматриваются средства организации распределенных вычислений в рамках инструментальной САТУРН-среды [1], предназначенной для разработки и эксплуатации прикладных интеллектуальных систем – пакетов знаний. Распределенная вычислительная среда (РВС) САТРУН [2] строится на основе локальной версии системной САТУРН-среды и ориентируется на использование суммарных вычислительных ресурсов территориально удалённых компьютеров разной мощности и архитектуры в рамках одной прикладной ресурсоёмкой вычислительной задачи. Технология проведение мультидисциплинарных фундаментальных и прикладных исследований в некоторой проблемной области (ПО) в РВС САТУРН включает в себя разработку и применение распределенных пакетов знаний (РПЗ) – интегрированных программных комплексов, объединяющих в себе возможности традиционных пакетов программ и экспертных систем. РПЗ имеют следующие особенности, отличающие их от других типов баз знаний: 1) в описании модели ПО выделяются три концептуально обособленных слоя знаний – вычислительный, схемный и продукционный, над которыми формируются постановки задач, а также выделяются следующие типы объектов (понятий или концептов): модуль, параметр, операция, продукция, процессор, постановка задачи; 2) фундаментальную роль в описании ПО играют вычислительные знания, представленные снабженными спецификациями модулями – подпрограммами на языках Фортран, Паскаль, Си; 3) проблемные модули, представляющие вычислительные знания, располагаются на отдельных рабочих станциях; 4) ответ на запрос связан с процессом трудоемкого вычисления (не поиска) информации с предварительным планированием схемы решения задачи на концептуальной модели ПО, сборкой и конкретизацией расчетных программ; 5) схемные и продукционные знания являются в определенном смысле вспомогательными и в основном поддерживают комфортность общения исследователя с компьютером; 6) большую роль в процессах накопления и использования знаний играет графическое представление объектов модели ПО в виде структурных схем (размеченных ориентированных или неориентированных графов). До настоящее время проблема распределенных вычислений решалась либо в рамках Web-технологий, либо путем использования DCOM/CORBA моделей. Сравнение этих решений по ряду показателей, таких как, например, стоимость, наличие интуитивного пользовательского интерфейса дает предпочтение Web-технологиям [3]. Общая доступность и популярность последних повлияла на наше решение – использовать Web-технологии в качестве базовых при реализации визуального (интерактивного) интерфейса пользователя в РВС САТУРН. Одной из задач, возникающих при реализации модели, является обеспечение доступа клиентов с БД на стороне сервера, организация интерактивного интерфейса на стороне пользователя. Интерактивный интерфейс на основе WWW представляет собой последовательность статически или динамически формируемых HTMLдокументов [4]. При этом одним из важнейших компонентов модели является Common Gateway Interface (CGI) – стандартная спецификация интерфейса взаимодействия Web-сервера с внешними прикладными программами. Основное назначение CGI – обеспечение единообразного потока данных между сервером и работающим на нем приложением. Задача построения пользовательского интерфейса делится на две части: 1) Клиентская часть – для создания клиентской части формируется HTML-документ, в котором реализуется диалог с пользователем посредством форм. 2) Серверная часть – состоит из исполняемого модуля, решающего основные задачи обработки данных, поступающих от клиентской части, формирования ответа и т.д. Такой модуль называется CGI-модулем и выполняет роль шлюза, инициируя взаимодействие в качестве клиента с сервером баз данных. Шлюз посылает запрос по определенному порту соединения с СУБД, а после получения ответа пересылает его WWW-серверу в формате HTML. Использование спецификаций CGI для обмена данными с внешними прикладными программами содержит в себе следующие преимущества [5,6]: - прозрачность использования; 3 языковая независимость (CGI-программы могут быть написаны на любом языке программирования или командном языке, включающем средства работы со строками); - изолированность процесса (при запуске CGI-программы на сервере порождается отдельный процесс и ошибочный CGI-скрипт не может "сломать" Web-сервер или получить доступ к закрытой информации); - открытость стандарта (CGI-интерфейс применим на любом Web-сервере); - архитектурная независимость (CGI не зависит от особенностей реализации архитектуры сервера); - высокая защищенность кода CGI-скрипта; - CGI-скрипты позволяют реализовать гораздо более широкий набор функций, чем, например, Java-скрипт. Недостатками использования CGI-скриптов принято считать большое время обработки запросов и, как следствие, невысокое быстродействие, необходимость постоянного доступа к основной БД, дополнительная нагрузка на средства поддержки БД, связанная с обработкой запросов от WWW-сервера. Выбор программных средств для реализации CGI-скриптов достаточно широк, но среди них можно выделить два, пользующиеся в последнее время особой популярностью: 1) Perl (Practical Extraction and Report Language). Язык Perl – имеет достаточно сложный синтаксис, содержит большое число внутренних системных функций, возможность вызова внешних программ и подключение модулей, обеспечивающих удобства в работе при обработке текста и манипуляциях с файлами, что наиболее важно в Web. Для Perl также характерно высокое быстродействие, высокий уровень защиты. Несмотря на все перечисленные достоинства, Perl является языком общего назначения – для применения в Web он имеет следующие недостатки: - необходимость настройки Web-сервера для запуска скриптов; - сложности с отладкой CGI-скриптов; - отсутствие встроенных средств для обработки данных, передаваемых пользователем и др. [7]. 2) PHP (Professional Home Pages). Язык PHP получил распространение, начиная с версии 3, благодаря ясному и простому синтаксису. В PHP3 были устранены, указанные выше недостатки языка Perl, что также способствовало его признанию и популяризации. Однако, быстродействие на тот момент, в десятки, а то и сотни раз, было меньше чем у Perl. В настоящее время наиболее часто используется PHP4. Разработчики переделали код PHP с нуля. Было значительно увеличено количество встроенных в язык функций. PHP стал интерпретатором компилирующего типа (как и Perl), что значительно повысило его быстродействие. Теперь PHP работает на уровне с Perl, а в отдельных ситуациях даже быстрее [7]. Отличительной чертой PHP является его специализация именно на Web. Кроме того, PHP эффективен при выполнении файловых операций и при работе с базами данных [8], что особенно важно с точки зрения реализации нашего проекта. В PHP имеется набор функций для поддержки почти всех известных СУБД. Из недостатков PHP можно отметить более простую в сравнении с Perl схему защиты, отсутствие шаблонов. В качестве HTTP-сервера мы выбрали Apache, как наиболее продвинутый и развиваемый. По статистическим данным английской исследовательской фирмы Netcraft на декабрь 2001 г. Apache работает на 56,5% всех серверов в Интернет [9]. По результатам последних российских исследований [10] сервер Apache установлен примерно на 85% русскоязычных Интернет-серверов. Успех Apache основан на трех составляющих: бесплатное распространение, причем бесплатно распространяется не только двоичный код, но и исходный текст. Это обеспечивает серверу исключительную гибкость. Архитектура Apache отличается модульностью, что также облегчает настройку. Сравнение с Microsoft Internet Information Server (IIS) 3.0 здесь явно не пользу Microsoft. Модульность Apache позволяет не только подключить свои модули, но и даже дописать недостающие функции. Для создания небольшого Web-приложения, каковым является визуальный пользовательский интерфейс, сервер Apache вместе с PHP образует эффективную комбинацию средств, характеризующуюся особой надежностью [11]. Выбор SQL серверов огромен. Мы остановились на использовании бесплатно распространяемого сервера MySQL. Это быстрый, гибкий, удобный и легкий в использовании многопользовательский и многозадачный сервер баз данных SQL. Таким образом, в представленной модели распределенных вычислений РВС САТУРН реализуется популярная в настоящее время связка с открытым исходным кодом Apache+PHP+MySQL. - ЛИТЕРАТУРА: 1. 2. 3. Опарин Г.А., Феоктистов А.Г. Основанная на знаниях визуальная технология решения вычислительных задач // Оптимизация, управление, интеллект. – Иркутск: ИДСТУ СО РАН, №5(1), 2000. – С.157-166. Опарин Г.А., Феоктистов А.Г. Технология разработки распределенных пакетов знаний // Проблемы управления и моделирования в сложных системах: Труды III межд. конф. – Самара: Самарский научный центр РАН, 2001. – С. 496-502. Чекалов А. Прагматический подход к разработке приложений Web баз данных. www.citforum.ru/internet/webdbapp/index.shtml 4 Нужин С. Использование CGI при создании интерактивных интерфейсов. www.niit.ru/docs/SQL/db/4.htm Булах Е.В. Средства доступа к базам данных на стороне сервера. www.citforum.ru/database/postgres95/0.shtml Смысловский А. Perl, который оценят все. http://infocity.com.ua/prog/perl/content/perl003.phtml Козлов С. Технологии web-программирования. http://kr.tritec.ru/2001/4807.htm Руководство по РНР 3.0 – Описание Языка (перевод Всероссийского клуба веб- мастеров). http://php.spb.ru/manual_php_3_rus/index.html 9. Netcraft Web Server Survey. www.netcraft.com/survey 10. 10 наиболее распространенных http-серверов зоны .ru. www.cnews.ru/news/comp/2000/12/20/20001220134357.shtml 11. Александр Рубин. Интернет-cервер под Linux. http://lib.ru/LINUXGUIDE/internetlinux.html 4. 5. 6. 7. 8. 5