Набор для разработки драйверов (DDK)

SberMobile Server Driver Development Kit (DDK, набор инструментальных средств для разработки драйверов) -- это часть часть комплекта разработчика SberMobile, который позволяет создавать драйвера устройств  SberMobile Serverа  на языке программирования Java.

Плагины драйверов устройства

Драйвер Устройства SberMobile Server -- это особый тип плагина SberMobile Server. Технически драйвер включает в себя два обязательных компонента:

  • Driver Java class, который реализует интерфейс DeviceDriver. Большинство реализаций расширяет класс AbstractDeviceDriver, чтобы избежать ипользования неподходящих методов и сохранения их функциональности по умолчанию.
  • Дескриптор плагина драйвера, который определяет свойства плагина и его место в иерархии плагинов SberMobile Server.

Комплект разработчика устройства Device Server включает пример с открытыми исходными текстами для реализации Драйвера Устройства SberMobile Server, именуемого Demo Device Driver. Он находится в пакете examples.driver и содержит три файла:

  • DemoDeviceDriver.java - исходный код для драйвера
  • plugin.xml - дескриптор плагина драйвера
  • build.xml - файл сборки проекта для Ant  с единственным заданием собрать драйвер в виде JAR-архива.

Чтобы испытать драйвер:

  • Запустите build.xml, используя Ant для сборки demo.jar
  • Скопируйте demo.jar в %SberMobile Server Installation Folder/plugins/device , когда не запущен SberMobile Server .
  • Запустите SberMobile Server
  • Cоздайте новую учетную запись устройства Device и задайте Demo Device как тип драйвера

Создание экземпляра драйвера устройства

Разработчики драйверов устройств должны знать политику, которую SberMobile Server использует для создания драйверов, т.е. экземпляры класса Java, наследуемые из AbstractDeviceDriver:

  • При запуске сервера создается один экземпляр класса драйвера. Этот экземпляр отвечает за инициализацию/деинициализацию плагина глобального уровня или уровня каждого пользователя. Таким образом, сервер вызывает следующие методы этого экземпляра: globalInit(), globalDeinit(), globalStart(), globalStop(). Он также вызывает несколько методов, один раз на учетную запись каждого пользователя в системе: userInit(), userDeinit().
  • На каждую учетную запись устройства, которая использует этот тип драйвера, создается один экземпляр класса драйвера. Этот экземпляр проводит непосредственную коммуникацию с аппаратными устройствами и источниками данных и взаимодействует с определенным DeviceContext.
  • Также экземпляры класса драйвера могут создаваться во время подключения нового устройства (на этапе спецификации свойств подключения устройства). Единственный метод, который будет вызываться из этих экземпляров - это createConnectionPropertiesFormat().