410013796724260
• Webmoney
R335386147728
Z369087728698
Платформа JaBricksТехнологическая платформа JaBricks предназначена для формирования модульного приложения согласно спецификации OSGi. Система «JaBricks» имеет определенное разделение, включающее платформу и прикладное решение. Платформа представляет собой ядро системы, включающее фреймворк OSGi, минимально необходимый набор бандлов и является средой исполнения программных модулей (бандлов). Таким образом платформа «JaBricks» обеспечивает функционирование некоторого, созданного на ее основе прикладного решения. Прикладное решение на платформе «JaBricks» становится самостоятельной сущностью и может выступать в качестве отдельного программного продукта. Функциональные свойства приложения определяются набором включенных в конфигурацию программных модулей, и могут быть изменены и расширены без дополнительной компиляции и сборки платформы добавлением и заменой отдельных бандлов. Примечание : в описании платформы понятия модуль и бандл используются как синонимы. Терминология «бандл» используется в описании спецификации OSGi. Структура приложения JaBricksНа следующем скриншоте представлена структура приложения на платформе «JaBricks» : Приложение включает следующие директории и файлы :
Примечание : Приложение на платформе «JaBricks» включает главный исполняемый модуль jabricks.jar или jabricks.exe, файл инициализации jabricks.ini, файлы определения конфигурации приложения (bundles.ini, menu.xml, toolbar.xml, db-objects.xml), файлы ресурсов и набор бандлов. Исполняемый модуль приложения jabricks.jar (jabricks.exe) включает OSGi-фреймворк Felix (org.apache.felix.framework), определяющий модульный принцип построения программы. Директория «bundles-cache» используется фреймворком Felix. В файле инициализации приложения jabricks.ini определяются внешние ресурсы приложения : параметры локализации интерфейса, параметры подключения к серверу БД, параметры логирования сообщений и т.д. При установленном в файле инициализации jabricks.ini соответствующего флага протоколирования модуль util-logger автоматически создаст (при отсутствии) директорию логирования «logs», где будут храниться файлы сообщений бандлов. Чтение и обновление ресурсов в файле jabricks.ini, а также добавление новых параметров выполняется модулем util-resources. Набор бандлов платформы JaBricksРеализацию модульного приложения согласно спецификации OSGi обеспечивает используемый в приложение jabricks.jar фреймворк org.apache.felix.framework. Чтобы прикладное решение на платформе «JaBricks успешно стартовало, необходимо в конфигурацию приложения включить представленные в таблице бандлы :
Примечание : Конфигурация приложения JaBricksФункциональные свойства приложения (прикладного решения) на платформе «JaBricks» определяются его конфигурацией. Каждое прикладное решение имеет собственную конфигурацию, включающую набор бандлов, ресурсные файлы, файл инициализации, файлы структур главного меню и панели инструментов. Набор бандлов приложенияВ директории бандлов «configuration/bundles» размещаются используемые в приложении модули. Согласно спецификации OSGi допускается использование однотипных по функционалу бандлов разных версий. На следующем скриншоте представлен список бандлов, используемых в Уроке 08, связанным с мониторингом OSGi-фреймворка. Размещение бандла в директории «configuration/bundles» является необходимым, но недостаточным условием включения модуля в приложения. Бандл необходимо дополнительно зарегистрировать в конфигурации приложения. Ресурсные файлыВнешние ресурсы приложения в виде файлов изображений и файлов свойств хранятся в поддиректориях «configuration/resources/images» и «configuration/resources/properties» соответственно. На следующем скриншоте, в качестве примера, представлены ресурсные файлы, используемые в Уроке 08. Общие файлы изображений для всех бандлов позволяет определить однотипный стиль интерфейса форм приложения. Безусловно, уникальные изображения и ресурсные файлы (*.properties) можно хранить внутри бандла. В этом случае они будут недоступны для остальных модулей. Представленные на скриншоте файлы свойств monitor-jframe*.properties хранят локализованные заголовки с подсказками кнопок панели инструментов, что позволяет наращивать функционал приложения без перекомпиляции главного фрейма (monitor-jframe). Внешние ресурсные файлы модуля следует выносить в поддиректорию конфигурации (configuration/resources/). Так, например, в файлах свойств модуля form-about представлено локализованное описание прикладного решения. Таким образом, используемый в разных приложениях модуль form-about будет представлять разные описания прикладных решений. Чтобы получить внешние ресурсы бандла следует использовать модуль util-resources. Обмен данными между модулямиМодуль приложения может получать информацию (общие ресурсы) от других бандлов при наличии соответствующих связей в описаниях манифестов MANIFEST.MF. То есть, если в манифесте бандла до́лжным образом определена секция <Export-Package>, то остальные бандлы могут «достучаться» до актуальных значений общих ресурсов при наличии в их манифестах соответствующей секции <Import-Package>. Таким образом реализован доступ к модулю util-resources, управляющего общими ресурсами приложения. Другая возможность обмена информацией между модулями связана с использованием механизма публикации/подписки (publish/subscribe). В основном это касается реагирования модулей на динамическое изменение значений ресурсов приложения в режиме run-time. Так, например, модули взаимодействия с базой данных могут подписаться на рассылку сообщения изменения подключения к серверу jabricks/DBConnect. При получении данного сообщения, модули автоматически могут либо загрузить информацию при подключении к серверу БД, либо очистить форму при отключении. Взаимодействие с SQL-сервером БДДля взаимодействия приложения с сервером БД необходимо использовать бандл util-db, позволяющий установить JDBC-соединение с сервером БД и выполнять различные типы SQL-запросов. В качестве серверов БД util-db может использовать несколько различных типов SQL-серверов. Кроме этого, для взаимодействия с определенным типом SQL-сервера имеются отдельные бандлы; в postfix'e наименования бандла указывается тип SQL-сервера (например, util-db-mysql). Локализация приложенияПриложение Jabricks локализовано для нескольких языков, определяемых в файле инициализации jabricks.ini. Распространяемые через сайт бандлы включают локализацию как интерфейсных форм, так и справочников БД. Связанные с локализацией интерфейсные модули приложения «подписываются» на рассылку сообщения jabricks/LocaleEvent. При получении данного сообщения интерфейсные формы модулей, включающие справочную информацию БД, автоматически перестраивают внешний вид и перезагружают данные. По умолчанию в приложении используется русская Locale (кириллица). Локализованные свойства интерфейсных модулей хранятся внутри бандлов. Внешние локализованные свойства приложения, включающие описание (form-about), настройки главного меню (gui-menu) и панели инструментов (gui-toolbar), вынесены в директорию конфигурации. Модули управления справочниками БД определяют локализованные наименования справочных записей для каждого языка. Платформа позволяет добавить собственный язык локализации. Если для текущего языка локализации ресурсные файлы модуля не определены, то в модуле будет использоваться язык по умолчанию. Прикладное решениеПрикладное решение не позволяет вносить изменения в структуру, т.е. блокирует расширение или изменение функциональных свойств приложения. Для создания прикладного решения из приложения JaBricks необходимо выполнить «блокирование» доступа к конфигурации приложения, которое связано с упаковыванием файлов директории configuration в одноименный файл с расширением «data». В этом случае приложение примет вид прикладного решения без возможности дальнейшего функционального расширения. Для этого необходимо в файл инициализации jabricks.ini внести следующую запись : configuration=hide Приложение проверит наличие файла configuration.data, и, при его отсутствии, откроет окно с предложением ввести пароль (с подтверждением). После этого конфигурация прикладного решения будет упакована в кодированный файл configuration.data; в директории configuration останется только поддиректория bundles с модулями приложения. При необходимости расширения или изменения функционала конфигурацию прикладного решения можно восстановить. Для этого необходимо в файле инициализации jabricks.ini внести следующую строку : configuration=open Для восстановления конфигурации приложения необходимо знать пароль, который использовался при упаковке. Приложение откроет окно и попросит его ввести. Если пароль окажется неправильным, то директория конфигурации не будет восстановлена, а окно закроется без каких-либо сообщений. Пример блокирования конфигурации приложения рассмотрен в Уроке 7. Примеры и практическое обучениеПримеры использования платформы JaBricks представлены в виде практических уроков, включающих задания и подробное описание его решения. Изучив данный курс Вы освоите платформу JaBricks и сможете приступить к самостоятельной разработке отдельных бандлов и приложений в целом. Структура уроков построена таким образом, чтобы без дополнительных усилий познакомиться с базовыми модулями платформы и научиться управлять конфигурацией приложения. Перейти к описанию уроков. Разработка бандлов приложенияНа сайте имеется большой набор готовых к применению документированных бандлов. Кроме этого, в документации имеется отдельный раздел, посвященный вопросам самостоятельной разработки бандлов приложения JaBricks. В данном разделе можно найти шаблоны проектов и примеры их применения, существенно упрощающие и ускоряющие процесс разработки новых модулей. Включение бандла в приложение JaBricksOSGi бандл можно включать в приложение и исключать из приложения как динамически, так и статически. Согласно спецификации OSGi платформа позволяет подключать одноименные бандлы разных версий. Для динамического управления модулем в режиме run-time следует предусмотреть соответствующие механизмы инсталляции и старта бандла. Используемый в Уроке 08 главный фрейм приложения monitor-jframe, позволяет динамически управлять загружаемыми бандлами, т.е. инсталлировать их во фреймворк, стартовать, останавливать и деиснталлировать. Для статического подключения модуля в OSGi-приложение необходимо выполнить следующие шаги :
Примечание : Список модулей, включаемых в JaBricks-приложение, регистрируется в файле «configuration/bundles.ini». Формат записи — ключ=значение; bundles является ключом, а список бандлов, разделенных запятыми — значением. В качестве разделителя строк можно использовать символ переноса '\'. Бандл может включать атрибут, определяющий необходимость его старта после инсталляции. Атрибут @startЧтобы стартовать модуль после инсталляции в приложении необходимо дополнить наименование бандла атрибутом @start. Так, в представленном ниже описании, модуль логирования util-logger будет после инсталляции стартован, чтобы протоколировать поступающие сообщения. Также стартуют модули фреймворка, реализующие механизмы рассылки/подписки и протоколирования. Атрибут @mainГлавный бандл приложения, формирующий JFrame и осуществляющий управление (диспетчеризацию) остальных бандлов, должен включать в своё наименование аббревиатуру «jframe» и быть представлен с атрибутом @main. Если такой бандл не будет найден в файле «configuration/bundles.ini», то приложение прекратит работу и фреймворк будет остановлен. Атрибут @dynamicИнсталляцию бандла во фреймворк можно отложить, если описать бандл с атрибутом @dynamic. В этом случае бандл будет инсталлирован в OSGi-фреймворк и стартован после соответствующего вызова при использовании либо главного меню, либо при нажатии на одну из кнопок панели инструментов.
Памятка : |