Демо PostrgeSQL ФОРС Контакты Работа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Новое средство коллективной разработки интерфейсов прикладных системНами разработан оригинальный программный продукт – среда для создания интерфейса (экранных форм) к уже существующим или вновь разрабатываемым прикладным системам (Live Universal Interface, LUI). В чем же особенность нового средства? Несмотря на большое разнообразие инструментов, при производстве ПО очень часто приходится сталкиваться с ситуацией, когда задача создания пользовательского интерфейса оказывается более ресурсоёмкой, чем задача реализации прикладной бизнес-логики. Проект начинает «теряться» в экранных формах. Как правило, это связано с тем, что даже при наличии достаточно совершенных инструментов программист вынужден самостоятельно строить алгоритмы для обработки событий при вводе и отображении данных. Он должен управлять отображением информации на экране посредством элементарных команд в тесной взаимной связи с бизнес-логикой приложения. При этом нести полную ответственность за конечный результат! Такой подход требует высокого профессионализма и обладания широким спектром компетенций – как от отдельных разработчиков, так и от проектной команды в целом. Те же причины не позволяют опираться на подобные инструменты в случае необходимости быстрого прототипирования приложений без существенных функциональных ограничений при его реализации. LUI предполагает совершенно иной подход, когда при разработке экранных форм, достаточно просто правильно присваивать определённые свойства элементам интерфейса. Поведение форм будет выбираться автоматически на основании этих свойств. Некоторые свойства могут иметь значения, в которых продекларирована их зависимость от состояния других интерфейсных элементов. Актуализация и применение новых значений свойств тоже находится вне заботы разработчика. При таком подходе разработка прикладной логики системы получается чётко отделённой от разработки пользовательского интерфейса. Обе эти задачи могут решаться независимо. Отсюда следует, что интерфейс может быть разработан уже после проектирования и создания базы, а также программирования и отладки прикладной бизнес-логики. Более того, новый интерфейс может быть создан для уже существующей, отлаженной и давно работающей прикладной системы. Ввод его в эксплуатацию может осуществляться по частям, не останавливая существующей Системы – путём постепенной замены старых интерфейсных форм. Имеющийся в компании «Форс» опыт практического использования LUI при разработке программного обеспечения позволяет судить о реальной эффективности применения данного инструмента и утверждать, что он обеспечивает следующие Преимущества LUI
LUI позволяет быстро реализовывать учётные, финансовые, расчётные системы для любых отраслей. Возможности инструментария по праву оценят коллективы разработчиков рынков B2B, B2G, G2B, G2C и, в некоторых случаях, даже B2C. Инструмент может оказаться чрезвычайно полезен для решения IT-задач в бизнес-консалтинге и в иных случаях, когда необходимо быстро и с минимальными затратами предоставить прототип (опытный образец) автоматизированной системы. Основные особенности LUI
Базовые концепции LUIЗдесь перечислены принципы, которыми руководствовались разработчики LUI при его проектировании и реализации.
Абстрагирование свойствРазработчик бизнес-логики приложения при проектировании интерфейсных форм оперирует довольно абстрактными свойствами элементов интерфейса, универсальными для любого средства его визуализации. Разработчик только обозначает - какую функциональность он ожидает от интерфейса, при этом он не озабочен тем, как и какими средствами эта функциональность будет реализована. Пример: чтобы визуально выделить элемент среди других элементов интерфейса разработчик прикладной системы не должен оперировать такими свойствами, как шрифт (вдруг «движок» алфавитно-цифровой?), цвет (вдруг «движок» монохромный?), фон и т.п. Он оперирует ролями, о которых условлено с разработчиком «движка», такими как "Внимание", "Опасность", "Незаметный" и т.п. А уже разработчик конкретного движка, ориентируясь на поставленные цели и исходя из предоставленного ему инструментария, интерпретирует эти роли. При существенных расхождениях во мнении об интерфейсных реализациях свойств элементов интерфейса разработчик «движка» реализует средства кастомизации (настройки) под конкретного Заказчика или даже Пользователя. Таким образом, разработка прикладной системы окажется полностью отделённой от средства (среды и языка) разработки «движка» или нескольких «движков», которыми осуществляется и будет осуществляться в будущем визуализация труда программиста прикладной системы. Отказ от обработки событийПри описании интерфейса нельзя мыслить в категории событий и триггеров, так как они являются очень специфическими для конкретного «движка», разработанного в конкретной среде. Продвинутые средства поддерживают множество типов событий, а другие - не так много, но зато берут обработку части событий на себя. В одних средах под одним и тем же событием подразумевается одно, а в других - другое. Одни считают, что при каком-то событии надо произвести такой набор стандартных действий, а другие - совсем иной. Поэтому, в LUI многообразие отношений интерфейсных элементов реализуется не описанием обработчиков событий, а декларативными динамическими свойствами. То есть свойства элементов интерфейса могут изменяться как при синтезе интерфейсных форм движком, так и уже в процессе их функционирования - в зависимости от входных параметров, значений контекстных элементов, параметров контента, изменяемых пользователем элементов, а также результатов запроса к прикладной системе (бизнес-логика). Динамические свойстваЗначение свойства может быть константой (надпись на кнопке, признак активности элемента, тип данных ячейки и т.п.). В этом случае свойство определено ещё до начала работы формы и не меняется до закрытия формы. Однако внутри (или вместо) значения формы можно использовать текстовые конструкции, заключённые в фигурные скобки, которые называются Динамическим фрагментом. Их наличие - указание интерпретатору, что в момент применения значения свойства содержание фигурных скобок будет проинтерпретировано, вычислено и заменено (включая и сами скобки) на результат вычисления. Пример динамического свойства - заголовка таблички с объектами договора: Объекты договор{SQL:Select NVL(Max('а №'||CONTR_NO), 'ов') from CONTRACTS where ID=0{Param:CONTRID}}
Это свойство содержит динамический фрагмент в виде запроса к базе данных, опирающийся на входной параметр CONTRID. Ноль перед параметром страхует от пустого значения параметра CONTRID. Так как вся динамика в этом примере опирается только на входной параметр, то считаться она будет один раз за всё время жизни формы - при загрузке. Другой пример - динамическое свойство Заголовок, выполненное на процедурном языке JavaScript, который тут используется как декларативный: {JavaScript:"{FormProperty:RowNum}"?"Текущая строка №{FormProperty:RowNum}, код={CODE}":"нет текущей строки"}
Этот динамический фрагмент опирается на меняющееся свойство формы - RowNum - номер текущей строки списка, а также на значение ячейки CODE текущей строки. В какой момент нужно перевычислять динамическое значение решает «движок». Он знает когда у него меняется номер строки или значение ячейки CODE. Программисту писать обработчики событий, чтобы перевычислить и заменить свойство Заголовок, уже не надо! Схема взаимодействия частей универсального интерфейса
Инфраструктура проектаПомимо, собственно, редактора интерфейса и интерфейсного «движка» в комплект поставки входит ряд инфраструктурных модулей, полезных для любого проекта. Старые, давно функционирующие Приложения, скорее всего, уже имеют собственную реализованную инфраструктуру. Но для новых проектов, для стартапов, которые будут пользоваться LUI, предлагаемые решения могут быть небесполезны для рассмотрения. Ниже перечислены элементы инфраструктуры проекта, необязательные для использования в каждом Проекте.
ПоставкаПродукт свободно распространяется на условиях, включающих отказ от ответственности и предоставления гарантий. Однако всем заинтересованным в промышленной эксплуатации LUI мы предлагаем воспользоваться нашими платными договорными услугами:
Для получения этих услуг пишите по адресу lui@fors.ru, или звоните по телефону: +7 495 913-7575 LUI для PostgreSQLОсобенности данной версии:
LUI для OracleОсобенности данной версии:
Если вам требуются дистрибутивы для других операционных систем, просим обращаться с этим запросом по адресу E-mail: lui@fors.ru Демонстрация форм, работающих на LUIНажав на одну из кнопок справа, вы запустите демонстрационную форму.
Обращаем внимание, что в демонстрационном режиме все изменения в базе, сделанные при помощи форм LUI, не сохраняются! Этапы развития LUIИзначально LUI развивался, как интерфейс продукта компании «Форс» - Тиражируемой Автоматизированной Системе Расчётов (Билинг) для предприятий связи - АСР «Fastcom». Поскольку Fastcom использовал Oracle Forms для взаимодействия с пользователем, логично, что первый «движок» LUI был реализован именно на этом продукте. Реализация на Oracle Forms (использовалась с 2002 по 2016 гг.)
Со временем стало понятно, что Forms перестал развиваться корпорацией Oracle как продукт. Последняя версия Oracle Forms в техническом плане не удовлетворяет потребностям LUI. Было принято решение создавать новый «движок», на более современной и продвинутой платформе. Начиная с 2008 года он начал разрабатываться, а с 2009 года - использоваться в АСР Fastcom. Два «движка» функционировали одновременно. Совсем отказаться от реализации «движка» под Oracle Forms не позволяло то обстоятельство, что в АСР Fastcom всё ещё имелись формы, разработанные непосредственно на Oracle Forms, которые легко вызывались из «движка» LUI на Oracle Forms и наоборот. Реализация на JavaScript + Ajax (использовалась с 2009 по 2014 гг.)
Однако и этот «движок» не устроил по ряду параметров. В частности, по быстродействию. И потому, начиная с 2013 года начал разрабатываться ещё один браузерный «движок», легко масштабируемый по производительности и, таким образом, выдерживающий нагрузку в десятки тысяч пользователей, работающих одновременно. Новый вариант заменил предыдущую реализация в 2015 году и этот переход был практически незаметен как для конечных пользователей, так и для разработчиков бизнес-логики Приложения. Реализация на Java (используется с 2015 по настоящее время)
Это очень хорошо отлаженный «движок», удовлетворяющий всем требованиям обслуживаемых им Приложений. Но область применения его - приложения, написанные на СУБД Oracle. Хотелось бы расширить эту область применения. Поэтому, в настоящий момент доступен ещё один «движок» - с гибко подключаемыми языковыми модулями и модулями доступа к БД: Классическая трёхзвенная архитектура (используется с 2019 года)
Здесь декларативные и процедурные языки подключаются как внешние модули. Таким образом, динамические структуры могут описываться языками SQL, PL/pgSQL, JavaScript, Java, Perl и т.п., а также их комбинациями! Новая реализация обеспечивает приложению возможность поддерживать одновременно несколько соединений к одной или разным Базам данных, в том числе, СУБД различных типов! (Oracle, Postgres, MySQL, MSSQL Server и др.)
К примеру, в формах типа «Мастер-Деталь» мастер список будет извлекать данные из одной БД, а детальные записи будут извлекаться из другой.
Другая фундаментальная возможность этой реализации: работа как в режиме «длинных транзакций», так и в режиме «коротких транзакций»:
Внимание!
Выпущен новый релиз LUI для PostgreSQL16 апреля 2019 года выпущен релиз 2.0.3 Live Universal Interface - для разработки интерфейсов приложений, использующих СУБД PostgreSQL.
Получить новую версию LUI можно перейдя в раздел Поставка. Скачать Презентацию LUI для PostgreSQL Форс-центр разработки
129626,
Россия,
город Москва,
Графский переулок, д. 14, корпус 2,
эт. 5
время работы: пн-пт 9:30-18:30
Компьютерные базы данных,
Программное обеспечение
+7 (495) 913-75-75
http://www.fastcom.fors.ru
fastcom@fors.ru
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© ФОРС – Центр разработки. Все права защищены |