Создание типовых информационных систем Печать
Ускоренное создание графических интерфейсов

Особенность приложений, создаваемых с помощью данной библиотеки AXIS (Abstract eXtensible Information System) – объединение принципов информационных систем, работающих с базами данных (таких как авторизация пользователей или ненавигационный доступ к данным через «отчеты»), с «офисоподобным» графическим интерфейсом. «Офисоподобный» интерфейс облегчает работу пользователей, неискушенных в web-based информационных системах (но знакомых как минимум с Microsoft Office). Этот интерфейс проявляется не только в наборе меню, стандартном для известных персональных приложений (Файл, Правка, Вид, Вставка, Данные, Окно), но и в трактовке редактируемого содержимого БД (подмножества тесно связанных таблиц, а также БД в целом) аналогично понятию «документа» – файла, редактируемого «офисоподобным» приложением. Соответствие между понятиями файла и БД (БД в целом) проявляется, в том числе, в возможности сохранить – или не сохранять – сделанные изменения (эта возможность, реализуемая через транзакцию БД, может быть использована в случае, если с базой данных работает всего один или немного пользователей). Кроме того, подмножества тесно связанных таблиц называются «документами» и представляются пользователю аналогично документам «офисоподобных» приложений (хранимым в файлах, а не в БД): разные документы представляются в окнах фактически одинаковой структуры.

Повышение скорости разработки приложения достигается за счет примерно того же, что и скорость обучения интерфейсу неискушенных пользователей – за счет стандартности структуры окна любого дfокумента. Причем типовой шаблон этой структуры (входящий в библиотеку) – вкладки «Навигатор», «Поиск» и «Отчёт» в левой части окна документа – для многих относительно простых систем не требует изменения. Для создания конкретных документов системы достаточно лишь определить в БД нехитрые метаданные (для понятных пользователям имен и параметров запросов вкладки «Поиск»), написать простой класс для наполнения вкладки «Навигатор», а также создать классы со спецификой редактирования конкретных объектов БД в правой части окна (в таких классах описываются – если вообще описываются – только специфичные компоненты и специфические связи между поведением компонентов; в то время как стандартное представление/редактирование полей объектов реализуется автоматически с помощью библиотеки ADMEdit). В более сложных системах также можно написать SQL-код произвольных (в т.ч аналитических) запросов, который легко подключается к тем же стандартным компонентам «Поиск» и «Отчёт».

Что касается вспомогательного функционала «офисоподобного» приложения (функционала, не зависящего от специфики данных), то он появляется без всякого участия разработчиков конкретной системы (его не нужно даже подключать). К такому функционалу относится, например, поддержка undo/redo (журнала истории изменений), управление панелями редакторов (настраиваемое пользователем), управление окнами документов (включая переключение между окнами в Windows-подобном стиле и быстрое открытие нового окна документа – как из дерева, построенного по метаданным, так и из списка недавно открывавшихся окон). Более того, при необходимости можно подключить функции поддержки имен/экземпляров документов (в случае, если в системе некоторые документы могут существовать во многих экземплярах), функции представления/редактирования разнотипных объектов в одном компоненте (удобно для администрирующих или подобных документов), компонент редактирования пользователей системы и их привилегий (привилегии относятся к отдельным документам или к их экземплярам), компонент подключения к другой базе данных и т.д.

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

Конечно, минималистский набор возможностей графического интерфейса, по умолчанию предоставляемый библиотекой, и его строгий (без излишеств) внешний вид ограничивает конкурентоспособность приложения, если оно представляет собой корпоративную информационную систему. Однако это никак не мешает (и даже является преимуществом) в информационно-вычислительных системах, которые предназначены как минимум для аналитиков (имеются ввиду аналитики и эксперты предметной области, а отнюдь не IT-специалисты по анализу хранилищ данных), как максимум – для инженеров и ученых. Эти группы пользователей привыкли решать ориентированные на алгоритмы задачи, рафинированные с точки зрения структуры данных. Как следствие, они привыкли к исходным данным в каком-то специфичном для предметной области виде (например, к геометрическим файлам в CAD-формате) или в виде массивов типа временных рядов (которые обычно хранятся в Excel-таблицах) или просто в виде отдельных параметров (которые обычно вообще нигде не хранятся кроме как в голове, в печатном документе или в текстовом файле, загружаемом в консольную программу). Другими словами, возможности полнофункциональных информационных систем этими пользователями не востребуются (см. также).

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

LAST_UPDATED2
 
Joomla Templates by Joomlashack