Разработка веб-интерфейса |
Главная цель и смысл работы - кардинально, т.е. на несколько порядков упростить и сократить затраты на организацию связи Интернет-СУБД. И во-вторых: создать единый унифицированный интерфейсный аппарат для локальной, и для удаленной работы с базами данных. Два главных новых понятия "веб-шаблон" и "мета-тег". Веб-шаблон - текстовый файл в формате HTML (расширение по умолчанию тоже "htm"), т.е. страница или часть страницы, включающая кроме обычного текста и тегов еще и "метатеги" (см. ниже). Из веб-шаблонов динамически компонуется страничка, выдаваемая пользователю. Мета-тег отличается от обычного тега знаком # сразу за открывающей угловой скобки. Метатеги заменяются (примерно как SSI или ASP) на изображения элементов базы данных, других веб-шаблонов, и некоторых встроенных примитивов, таких как текущая дата и т.п.. Общее описание архитектуры.
Как работают веб-шаблоныВ штатном режиме (от которого м.б. возможны редкие отклонения) одна страничка пользователя соответствует одному объекту БД. На страничке располагается вся информация по объекту в том числе и в основном всевозможные связи с другими объектами. Эти связи изображаются и работают на страничке как обычные HTML ссылки. Клик по такой ссылке открывает страничку смежного объекта и т.д. Объекты терминальные, т.е. обычные строчные и текстовые значения видны на странице в своём натуральном виде. В перспективе их можно будет редактировать как поля форм. В начале пользователю может быть показан набор классов, доступных для данной категории пользователей. Это парадный вход. Раскрыв данный класс пользователь видит список объектов. Выбрав один из объектов, пользователь начинает навигацию. Что происходит внутри.Объект на страничке представлен своей "кодовой ссылкой", т.е. специфическим урлом. В серверной версии это вызов CGI программы с параметрами. В локальной - это вызов некого несуществующего урла определенного вида, который перехватывается оболочкой. Кстати, на страничке могут быть обычные урлы, которые обрабатываются стандартным образом. Но один раз перейдя по такому урлу, пользователь далее работает в "обычном интернете". Вновь в среду Абриаля его может оттуда перевести некий специфический урл. Специальный урл обычно определяет следующие вещи: 1) Базу данных Абриаля, 2)Класс объекта 3) Имя объекта 4) вместо 2 и 3 может быть числовой ид объекта. 5) Для "больших" объектов, может быть указан аспект, и/или точка сканирования "длинного" аспекта. Например длинный список слов в словаре может быть разбит на куски приемлемого размера. В зависимости от БД, класса, аспекта и пользователя выбирается начальный веб-шаблон. Если нет специального шаблона для данного класса или данной БД - берется "общий", т.е. универсальный для всех БД и классов. Наличие "общих" шаблонов позволяет просматривать в режиме навигации практически любую заранее неизвестную БД. Как устроен веб-шаблон?В нём могут быть вставки, например такие: <#HEADER> ... некий текст <#FOOTER> Здесь HEADER и FOOTER - имена других шаблонов, задающих одинаковые, т.е. стандартные начало и окончание странички, для нескольких однотипных шаблонов. Т.е. здесь мы видим, что вставить один шаблон в другой очень просто: нужно только использовать имя вставляемого шаблона в качестве имени мета-тега внутри вызывающего шаблона. Эти вставки похожи на вызовы функций (или макросов). Тем более, что при этих "вызовах/вставках" можно использовать параметры. Например, есть такой мета-тег: <#MACRO1 A="QWERTY" N=123> Тогда в этом месте вставляется текст шаблона MACRO1, а внутри этого текста все метатеги <#A> будут заменяться на QWERTY, а все <#N> - на 123. Значения параметров можно использовать в значениях атрибутов тегов и метатегов. Например, внутри MACRO1 можно вызывать другой шаблон с переменным значением атрибута. <#MACRO2 X=<#N>> Итак, чему может соответствовать имя мета-тега:
За счет мета-тегов с именами примитивов, вставляются элементы баз данных. Перечислим стандартные (примитивные) мета-теги.
Как "открыть" новую БД? Нужно в урле задать файл с одним из стандартных расширений Абриаля. (AB,AW,AM). По умолчанию происходит вход в таблицу классов (парадный вход) базы данных. .... to be continued... |
|