Масштабируемость и поддержка распределенных приложений
Программное обеспечение системы программирования FloraWare существует в виде инстанций, которые могут исполняться на разных процессорах, серверах или узлах кластерной платформы. Организация взаимодействия элементов дерева, объектов одной инстанции с элементами другой инстанции осуществляется с помощью специальных сетевых средств, поддерживаемых объектной машиной. Объекты разных инстанций взаимодействуют через порты ввода/вывода, используемые для поточной передачи данных; и через общее дерево объектов, элементы которого доступны с помощью прямого обращения, как если бы эти элементы были частью дерева объектов инстанции.
Таким образом, FloraWare позволяет естественным образом создавать распределенные масштабируемые приложения. Механизмы, обеспечивающие взаимодействие распределенных приложений, поддерживают как слабо связанные объекты (взаимодействие только в режиме передачи данных) так и сильно связанные объекты (взаимодействие в режиме прямого обращения).
Масштабируемость и распределенность приложений может быть достигнута использованием средств .NET, что также позволяет пользователям расширять список встроенных в ядро FloraWare классов и подключать к приложениям FloraWare внешние коды.
Переносимость и самодостаточность
Требование переносимости технологии вытекает из нежелания ограничивать пользователя, какой либо операционной системой, или какой либо платформой. Когда речь идет о переносимости FloraWare, можно говорить о переносимости среды разработки и о переносимости приложений созданных с ее помощью. Среда разработки состоит из ядра, представляющего собой виртуальную объектную машину, и приложений для этой машины, реализующих утилиты среды разработки. Архитектура ядра FloraWare разработана так, что системно-зависимые коды составляют не более трех процентов. Это достигается тем, что все графические примитивы реализованы самостоятельно, а само ядро запрограммировано с использованием С++ [5] по объектной технологии по правилам POSIX. Приложения, работающие под управлением ядра, обладают полной переносимостью, нет необходимости не только переписывать, но и перетранслировать их. Переносимы и данные созданные с помощью этих приложений, визуально приложения FloraWare переносимы с точностью до пикселя. Исключение составляют приложения использующие объекты с явной системной зависимостью, например использующие MicrosoftWindows DDE.
В настоящее время FloraWare портирована на платформы Windows 9x/NT/2000/XP, Linux, UnixWare, SUN Solaris SPARC, SUN SolarisIntel и QNX RtP[10,11]. Проходит тестирование реализация ядра FloraWare на AMD64, ведутся работы по переносу ядра на процессоры Itanium II и PowerPC и на платформы Mac OS X и AIX.
Если суммировать, то сейчас ядро FloraWare работает на процессорах трех архитектур (x86, UltraSPARC и x86-64), под управлением ОС трех семейств (Windows, Unix и QNX) и транслируется с помощь трех трансляторов (C-Builder, VC и GCC).
Интерактивность
Интерактивность – важнейшее требование, которое относится и к среде разработки приложения, и к самому приложению. Для обеспечения полноценной интерактивности приложения, то есть способности адекватно реагировать на многочисленные внешние и внутренние события и действия пользователей, необходимо обеспечить полноценную поддержку мультизадачности и параллелизма. FloraWare предоставляет такие возможности проектировщику, избавляя его при этом от необходимости явно программировать взаимные блокировки и синхронизацию потоков вычислений.
Интерактивность разработки означает возможность вносить изменения в проект и быстро видеть результат. В традиционных системах программирования интерактивность принципиально ограничена этапом трансляции, который отделяет внесение изменений от их тестирования. Во FloraWare отдельного этапа трансляции нет совсем, приложение состоит из одних и тех же объектов и во время разработки, и во время исполнения. Мало того, отсутствие разбиения на инструментальную и исполнительную среды, позволяет использовать одни и те же средства и во время разработки, и во время исполнения, поэтому можно изменять работающее приложение и немедленно видеть результат этого изменения.
Инструментальные средства
В состав инструментальных средств входит ряд приложений, обеспечивающих автоматизацию и удобство разработки, отладки, проектирования, документирования, сборки и поддержки приложений FloraWare. Инструментальные средства можно отнести к нескольким группам по типам объектов, с которыми они работают:
- приложения по работе с объектами в памяти объектной машины;
- приложения по отладке и мониторингу;
- приложения по разработке больших проектов;
- приложения по разработке проектов, использующие базы данных;
- приложения по разработке серверных приложений.
Следует отметить, что все инструментальные средства представляют собой обычные приложения, выполняющиеся под управлением объектной машины, и могут с легкостью дорабатываться отдельным пользователем и для отдельных приложений.