Основные концепции
SDK SberMobile предлагает определенный подход к управлению в системе данными любого типа, как сырыми данными, поступающими из устройств, так и подготовленными данными из различных системных элементов, таких как тревоги или датчики. Этот подход также применяется к любому из решений, например, SberMobile Network Manager, SberMobile SCADA/HMI, SberMobile Access Control и другие.
Архитектура
Технически SberMobile - это набор приложений и компонентов (библиотек). Далее следуют два основных приложения Java, которые создают платформу:
- SberMobile Server
- SberMobile IIoT Platform Client
Автономные компоненты ПО могут встраиваться во внешнее ПО и бывают:
Любой код, используемый другими частями SDK SberMobile (например, Набор для разработки драйверов, SDK плагина, SDK компонента виджета), запускается или в SberMobile Server JVM, или в SberMobile IIoT Platform Client JVM.
Формальное описание SberMobile доступно на странице Спецификация.
Операции с таблицами данных
- Основной элемент всех данных в системе - Таблица данных. Даже простые скалярные значения (целые числа, строки, логические значения) представлены Таблицами данных с одной ячейкой c целью сохранения однородности. Запись Таблицы данных в java - это класс
DataTable. Он включает в себя экземпляры от нуля до нескольких экземпляровDataRecord,которые представляют собой отдельные записи.
- Формат
DataTableпредставлен классомTableFormat. Он ссылатся на ноль или несколько экземпляровFieldFormat,определяющих формат отдельных полей таблицы.
Работа через контексты
В целом, доступ ко всем данным должен осуществляться через различные контексты сервера. Контексты организованы в виде иерархического дерева контекстов. SDK включает интерфейс Context для обращения с разными операциями контекста. Экземпляры контекстов можно выбрать из ContextManager по их пути (полным именам). У интерфейса Context также есть ряд методов доступа к родительскому или дочернему узлу.
Доступ к переменным, функциям и событиям контекста
- Каждый контекст предоставляет доступ к его переменным, функциям и событиям. Существует ряд методов для их получения:
getVariableDefinition(),getVariableDefinitions(),getFuncitonDefinition(),getFuncitonDefinitions(),getEventDefinition(),getEventDefinitions(). Классы, представляющие определения - это соответственноVariableDefinition,FunctionDefinitionиEventDefinition. - Интерфейс контекста предоставляет способ для чтения/записи данных переменных:
getVariable()иsetVariable(). Значение каждой переменной - это экземплярDataTable. - Контекст также предоставляет метод для вызова его функций:
callFunction(). Входные и выходные параметры функции - это экземплярыDataTable. - События обрабатываются путем добавления и удаления получателей события посредством методов
addEventListner()иremoveEventListener(). Получатели событий должны расширять интерфейс ContextEventListerner, но настоящие реализации в большинстве случаев расширяют DefaultContextEventListener. Получатели, работающие внутри плагинов и драйверов сервера, должны передать экземпляр UncheckedCallerController конструктору DefaultContextEventListener, чтобы обеспечить должные права доступа.
![]() | Метод Прямые изменения |
