packin.ru Серверный вариант Абриаля

С этой страницы можно начать знакомство с интернет-версией Абриаля

Серверная версия была создана в 2001-м году в качестве CGI-скрипта. Целью эксперимента была проверка следующего:

  • Можно ли работать с базами данных Абриаля из веба с обычного броузера.
  • Каков максимальный размер базы данных, эффективно обрабатываемый в таком наиболее тяжелом режиме, когда вся база грузится в память при каждом обращении клиента, и после генерации страницы  освобождает память. В частности, интересно было выяснить, получится ли работа с большими базами данных, содержащими полные гиперсловари по какому-нибудь языку, например Тезаурус Роже.

Результат превзошел все ожидания. Тезаурус Роже (весящий на диске 38М, а в памяти и того более) , удалось довольно быстро просматривать на весьма слабеньком сервере с памятью в 256М, и на очень узком канале. Очевидно сказывается то, что между кликами пользователя файл остается в кеше ОС.  Конечно же, недостатком такого режима является отсутствие возможности изменения, и при активной работе нескольких пользователей в памяти образуется несколько клонов базы, что при переполнении, ведет к выпихиванию исходного файла из кеша и застопориванию работы сервера. Устранить указанные недостатки должна очередная версия программы (см.ниже).

Предупреждение. Скрипт был разработан в 2001-м году, и с тех пор не менялся. Работа с интерфейсом требует понимания структуры базы данных, т.к. это всего лишь экспериментальный макет. Технология общения с пользователем была перенесена в локальную (основную) версию Абриаля, и здесь развита. Язык Абрис, представляющий сейчас (ноябрь 2004) основу системы программирования Абриаля 2 в серверном варианте 2001-го года содержался лишь в эмбриональном виде. Хотя перенос накопленного опыта в серверный вариант не сложен в техническом отношении и представляется автору весьма перспективным направлением, средств для продолжения этой работы до сих пор не находилось.

3 ноября 2004. Далее идет старая версия страницы. 


Демонстрационные базы данных.

Несколько баз данных, работа с которыми представлена на сайте, предназначены только для знакомства с технологией, и не претендуют на роль самостоятельных ресурсов. Выбраны такие проблемные области, которые а) более или менее знакомые всем, и в которых б) смотреть материал не совсем уж скучно.

На этой странице рассказывается о серверной версии Абриаля. Эта программа позволяет обращаться к базам данных Абриаля из глобальной сети. Серверный вариант Абриаля работает на WEB-сервере в качестве CGI-скрипта, динамически генерируя броузеру пользователя HTML-текст. Серверный вариант пользуется тем же ядром, что и основная (локальная) версия Абриаля. Поэтому и файлы баз данных у них абсолютно идентичны.

Демонстрацию работы этой программы можно увидеть здесь.


Серверный вариант Абриаля - прорыв в области веб-интерфейсов СУБД.

Данный документ (отчасти на правах рекламы:) знакомит читателя с новым подходом к организации связи между пользователем интернета и базой данных. Этот подход реализован в экспериментальной разработке РосНИИ ИИ - программе Серверный вариант Абриаля.

Определения.

Абриаль есть инструментальная среда для конструирования приложений в области искусственного интеллекта. Более конкретно: Абриаль является конструктором баз знаний в виде объектных сетей.

Этот проект Российского НИИ Искусственного Интеллекта (http://www.artint.ru)  ведёт автор программы Абриаль Александр Иосифович Пацкин (mailto:aleksandr@tochka.ru, http://packin.ru).

Сайт проекта находится по адресу http://packin.ru/abrial/.

Технологическая ситуация.

В настоящее время в индустрии корпоративных СУБД и в электронной торговле для доступа к базам данных из сети сложился определенный технологический стандарт - а именно трехуровневая архитектура. Приблизительно эта архитектура выглядит так: 

  1. Интерфейс пользователя - уровень клиентской программы (HTML-Броузер, J[ava]Script/VBScript, [Java],[ActiveX]...);
  2. Бизнес-логика - уровень сервера приложений (Языки высокого уровня типа Си++, Паскаля, Perl и.т.д. и/или VBScript+ASP+COM/DCOM и т.д.);
  3. База Данных - т.е. уровень серверной СУБД (SQL,  языки описания данных, метаданных, XML, может быть PL/SQL или что-то в этом духе для написания триггеров и другой встроенной в БД функциональности).

Здесь только обозначены самые типичные технологии, более подробный список только разных трех-четырехбуквенных названий технологий в этой области займет вероятно не одну страницу. Но даже если между экраном пользователя и базой данных будет находиться минимум уровней, т.е. три (или четыре), то с учетом качественной разнородности сред на разных уровней это расстояние пользователь-БД стремится к бесконечности. По существу "модульный" подход привел к ситуации не устраивающей ни пользователя (он не "чувствует" природу данных), ни разработчика (очень неудобно), ни заказчика (очень долго и дорого).

Ситуацию могла бы резко исправиться, бы если бы существовала единая логическая среда и для пользователя и для разработчика, т.е. вся разработка происходила бы внутри нынешнего третьего уровня, т.е. внутри Базы Данных. Реляционные СУБД, являясь средством слишком низкого уровня, генетически ориентированным на один компьютер, для этого не пригодны.

Базы данных на XML также не годятся на роль единой среды. XML построен на вложенных структурах, но где вложенность, там узкая специализация, и невозможность универсального использования структур данных.

Итак, настоящая  (порочная в своей сути) архитектурная схема подобно черной дыре засасывает огромные средства и труд разработчиков, выдавая на выходе продукт с очень низким качеством: длительные сроки разработки, невозможность быстро изменить структуру данных, ненадежность и, наконец - самая обычная неэффективность, т.е. большое время ответа.

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

Суть новизны.

  1. Всякая функциональность (результат программирования, настройки и дизайна) удаляется из уровня интерфейса и уровня приложений (бизнес-логики) и помещается в базу данных. Т.е. уровень сервера приложений полностью исчезает, а интерфейсный уровень остаётся только физически, но как целевой уровень разработки он также прекращает своё существование. Вся функциональность, все метаданные, все элементы интерфейса отныне погружаются в данные, т.е. сливаются с данными, образуя единую логическую среду.
  2. Между пользователем, работающим через обычный броузер (IE, Netscape, Opera - безразлично) и активными объектами в базе данных находится только одно промежуточное звено - программа Серверный вариант. Это звено абсолютно прозрачное, т.е. является жесткой программой, не опирающейся на какие-либо собственные данные, и даже более того: не имеющее каких либо собственных настроек. Все данные находятся в БД и только там. Оговоримся, что сегодняшняя первая версия опирается на систему собственных HTML-шаблонов (макросов) в виде текстовых файлов, из которых собирается результирующая страница, но это временно, те же шаблоны могут быть со временем перенесены полностью или частично в базу данных.
  3. Активность объектов базы данных Абриаля основана на принципиально новой вычислительной модели. С классической императивной моделью (при которой программист указывал последовательность действий и перекладывал данные из ячейки в ячейку, или из переменной в переменную) полностью покончено. Пришлось расстаться и с основными идеями объектно-ориентированного подхода (ООП), поскольку вложенность объектов друг в друга, инкапсуляция функциональности внутри объекта, а отчасти и жесткая принадлежность объекта к классу - все эти столпы идеологии ООП оказались препятствиями на пути реализации такой логической среды, и такого интерфейса пользователя, которые удовлетворяли бы всем современным требованиям.
  4. Как для внешнего пользователя, так и для конструктора-программиста объект в среде Абриаля более не представляет собой традиционного черного ящика с кнопками и рычагами, потенциально содержащего внутри себя другие объекты и/или способность к некоторому уникальному поведению. Объект в Абриале пуст. Пользователь более не оперирует объектами снаружи, как предметами, ящиками, а наоборот сам находится внутри объекта, и видит его не как предмет, а изнутри, т.е. как комнату со множеством дверей, ведущих в другие комнаты-объекты. Вселенная (Веб-)Абриаля это вывернутая наизнанку вселенная традиционного ООП. Это более соответствует новым сетевым реалиям, не до конца еще осознанным пользователями и творцами технологий уходящей эпохи, эпохи локальных, специализированных сред. Новая реальность - это глобальная и универсальная среда, легко проходимая по связям во всех направлениях.
  5. Все эти идеи, в том числе идею универсальной сетевой навигации или новые вычислительные механизмы, вряд ли можно было бы реализовать без опоры на принципиально новую организацию (модель) данных внутри базы данных. Модель данных системы полностью исключает такое фундаментальное понятие информатики как односторонняя ссылка. Объекты в базе данных связываются между собой двусторонними и многосторонними связями. Революционное значение этого нововведения сегодня, пожалуй, еще трудно оценить по достоинству.

Практические результаты.

Достаточно сильное утверждение о том, что новая технология радикально упрощает и ускоряет создание веб-интерфейсов для СУБД, следует доказать. Для доказательства рассмотрим пример со знаменитым тезаурусом английского языка Роже. Тезаурус - это словарь, в котором слова и словосочетания (такие как put down) сгруппированы по смысловой близости. При этом слово или сочетание в результате омонимии или многозначности попадает, вообще говоря, во много разделов. Достаточно интересно не только в теоретическом, но и в практическом плане было бы создание базы данных, содержащей все объекты тезауруса и все логические связи между ними, с тем, чтобы от любого объекта (слова, сочетания, раздела, параграфа, главы, темы, источника и т.д.) можно было бы, щелкнув мышью по гиперссылке, попасть в любой из связанных с ним объектов, например от сочетания - в любое из составляющих его слов, от слова - к любому включающему его сочетанию, от темы ко всем словам/сочетаниям темы и наоборот: от слова/сочетания ко всем его включающим темам, чтобы легко было увидеть все слова американского или латинского происхождения, все цитаты из Гамлета и т.д. и т.п. Короче, переходы должны быть возможны во всех логических направлениях. Возникают два вопроса:

  1. Сколько нужно времени (трудозатрат), чтобы создать такую БД на основе имеющегося текстового файла.
  2. Сколько нужно трудозатрат, чтобы поместить эту БД в интернет для общего пользования.

Ответ на 1-й вопрос - полтора месяца. Это время в основном ушло на исправление огромного числа ошибок в исходном файле и на написание конвертирующей программы. Проектирование и создание структуры БД заняло не более дня.

Ответ на 2-й вопрос - на помещение БД в интернет ушло столько времени, сколько нужно, чтобы положить один файл в нужную директорию на сервере и написать вот такую ссылку на вызывающей странице: http://www.artint.ru/packin/a.exe/o?b=tes.am (показано внутреннее содержание ссылки, а текст, естественно, может быть другим, например Тезаурус Роже). 

Выводы.

В среде Абриаля можно тратить пару минут на публикацию в интернете сложных баз данных с автоматически создаваемым навигационным интерфейсом. На достижение такого же (а практически - гораздо более слабого) результата сегодня в мире тратятся миллионы человеко-лет весьма квалифицированного и высокооплачиваемого труда. Т.е. внедрение этой технологии способно сэкономить многие миллиарды долларов в самом крупном секторе информационной индустрии. Подтверждение того, что это на самом деле технологический прорыв, находится отсюда на расстоянии одного клика. Вот эта ссылка - :  http://www.artint.ru/packin/a.exe/o?b=tes.am.

Ограничения

Данная версия эффективно работает с небольшими базами данных  (до нескольких мегабайтов) и пока - только на чтение. Однако свойство активности сети сохраняется, т.е. ассоциации работают в полном объёме без ограничений.

Перспективы

Следующая версия программы, благодаря небольшим изменениям в архитектуре, даст возможность работать не только на чтение, но и на запись (изменение), и максимальный размер БД увеличится до нескольких сотен Мб.

Дальнейшее более серьёзное изменение архитектуры системы, оставив все внешние параметры неизменными, в том числе пользовательский интерфейс и технологию работы с данными, расширит объём БД на весь интернет, т.е. практически будут сняты ограничения по размеру БД.


Все права защищены. © 2000-2004 РосНИИ ИИ
http://artint.ru
Copyright. © 2000-2004 by RRIAI
Александр Иосифович Пацкин [mailto:aleksandr@tochka.ru].
03/11/04

К началу документа.