Our work
The solution should allow an automatic rollback in case of update failures such as connectivity problem or unexpected power loss, implement versioning and secure delivery mechanisms, and be customizable for future integrations.
Additionally, the solution should include a cloud back-end service for device and software repository, content delivery and rollout management.
The target devices’s characteristics are:
- SoC: Mediatek MT7688
- Flash memory: 64MB
- Operating system: Linux (OpenWRT)
- Custom-built Linux kernel and OpenWRT image for A/B update mechanism
- Modified U-Boot for A/B update mechanism
- Custom implementation of Direct Device Integration (DDI) protocol for an edge device
- Custom implementation of an Update Server as a cloud service


RTSoft provided its architecture and software development expertise on a system level. In the early stage of the project RTSoft collaborated with client's technical team to identify possible set of use cases and draft requirement for the solution that provide a best trade-off for the client. During a development phase RTSoft offered the solution's architecture and developed all software components some of which were based on open-source software.
On the client-side, RTSoft modified system software and developed update software components which provide:
- update delivery mechanism
- verification and installation mechanism
- reporting.
On the server-side, RTSoft developed a "ready to be deployed as a Docker container" cloud service harnessing the open-source Eclipse hawkBit software.
The service provides the following functionality:
- authorization mechanisms
- software distributions repository update process monitoring
- different batch rollout campaigns
- administrative REST API
- Web GUI and console tools.
- SoC: Mediatek MT7688
- Flash memory: 64MB
- Operating system: Linux (OpenWRT)
[~PREVIEW_TEXT] => RTSoft has been tasked by major IT provider of automation systems for Retail industry to develop a solution for remote update of software (operating system and/or application) for a family of devices PoS terminals.
The solution should allow an automatic rollback in case of update failures such as connectivity problem or unexpected power loss, implement versioning and secure delivery mechanisms, and be customizable for future integrations.
Additionally, the solution should include a cloud back-end service for device and software repository, content delivery and rollout management.
The target devices’s characteristics are:
- SoC: Mediatek MT7688
- Flash memory: 64MB
- Operating system: Linux (OpenWRT)
[PREVIEW_TEXT_TYPE] => html [~PREVIEW_TEXT_TYPE] => html [DETAIL_PICTURE] => Array ( [ID] => 194 [TIMESTAMP_X] => 12/23/2021 12:08:05 pm [MODULE_ID] => iblock [HEIGHT] => 1000 [WIDTH] => 800 [FILE_SIZE] => 115343 [CONTENT_TYPE] => image/jpeg [SUBDIR] => iblock/01c [FILE_NAME] => 4.jpg [ORIGINAL_NAME] => 4.jpg [DESCRIPTION] => [HANDLER_ID] => [EXTERNAL_ID] => 96635c8b2c2472bb98a5952e6289116e [~src] => [SRC] => /upload/iblock/01c/4.jpg [UNSAFE_SRC] => /upload/iblock/01c/4.jpg [SAFE_SRC] => /upload/iblock/01c/4.jpg [ALT] => OTA update for PoS Terminals [TITLE] => OTA update for PoS Terminals ) [~DETAIL_PICTURE] => 194 [TIMESTAMP_X] => 12/23/2021 12:08:05 pm [~TIMESTAMP_X] => 12/23/2021 12:08:05 pm [ACTIVE_FROM] => 07/25/2019 [~ACTIVE_FROM] => 07/25/2019 [LIST_PAGE_URL] => /our-work/ [~LIST_PAGE_URL] => /our-work/ [DETAIL_PAGE_URL] => /our-work/115/ [~DETAIL_PAGE_URL] => /our-work/115/ [LANG_DIR] => / [~LANG_DIR] => / [CODE] => OTA_update [~CODE] => OTA_update [EXTERNAL_ID] => 96 [~EXTERNAL_ID] => 96 [IBLOCK_TYPE_ID] => projects [~IBLOCK_TYPE_ID] => projects [IBLOCK_CODE] => projects_en [~IBLOCK_CODE] => projects_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 [NAV_RESULT] => [DISPLAY_ACTIVE_FROM] => 25.07.2019 [IPROPERTY_VALUES] => Array ( ) [FIELDS] => Array ( [TAGS] => Python, U-Boot, OpenWRT, Java, C, Docker, RAUC framework, Grafana, InfluxDB, Chronograf, Syslog-ng ) [PROPERTIES] => Array ( [KEY_FACTS] => Array ( [ID] => 25 [TIMESTAMP_X] => 0000-00-00 00:00:00 [IBLOCK_ID] => 10 [NAME] => Key facts [ACTIVE] => Y [SORT] => 500 [CODE] => KEY_FACTS [DEFAULT_VALUE] => Array ( [TEXT] => [TYPE] => HTML ) [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => HTML [USER_TYPE_SETTINGS] => Array ( [height] => 200 ) [HINT] => [PROPERTY_VALUE_ID] => 231 [VALUE] => Array ( [TEXT] => <li>Custom-built Linux kernel and OpenWRT image for A/B update mechanism</li> <li>Modified U-Boot for A/B update mechanism </li> <li>Custom implementation of Direct Device Integration (DDI) protocol for an edge device</li> <li>Custom implementation of an Update Server as a cloud service</li> <br> <img width="350" alt="merkoptima.png" src="/upload/medialibrary/0bc/merkoptima.png" height="239" title="merkoptima.png"><br> [TYPE] => HTML ) [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => Array ( [TEXT] =>

[TYPE] => HTML ) [~DESCRIPTION] => [~NAME] => Key facts [~DEFAULT_VALUE] => Array ( [TEXT] => [TYPE] => HTML ) ) [QUOTE] => Array ( [ID] => 26 [TIMESTAMP_X] => 2021-02-01 12:08:51 [IBLOCK_ID] => 10 [NAME] => Quote [ACTIVE] => Y [SORT] => 500 [CODE] => QUOTE [DEFAULT_VALUE] => [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => [VALUE] => [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => [~DESCRIPTION] => [~NAME] => Quote [~DEFAULT_VALUE] => ) [QUOTE_EXECUTOR] => Array ( [ID] => 27 [TIMESTAMP_X] => 2021-02-01 12:08:51 [IBLOCK_ID] => 10 [NAME] => Quote исполнитель [ACTIVE] => Y [SORT] => 500 [CODE] => QUOTE_EXECUTOR [DEFAULT_VALUE] => [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => [VALUE] => [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => [~DESCRIPTION] => [~NAME] => Quote исполнитель [~DEFAULT_VALUE] => ) [QUOTE_PIC] => Array ( [ID] => 28 [TIMESTAMP_X] => 2021-02-01 12:08:51 [IBLOCK_ID] => 10 [NAME] => Quote картинка [ACTIVE] => Y [SORT] => 500 [CODE] => QUOTE_PIC [DEFAULT_VALUE] => [PROPERTY_TYPE] => F [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => jpg, gif, bmp, png, jpeg [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => [VALUE] => [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => [~DESCRIPTION] => [~NAME] => Quote картинка [~DEFAULT_VALUE] => ) [URL] => Array ( [ID] => 29 [TIMESTAMP_X] => 2021-02-01 12:08:51 [IBLOCK_ID] => 10 [NAME] => URL сайта в description [ACTIVE] => Y [SORT] => 500 [CODE] => URL [DEFAULT_VALUE] => [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => [VALUE] => [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => [~DESCRIPTION] => [~NAME] => URL сайта в description [~DEFAULT_VALUE] => ) [BENEFITS_FOR_CUSTOMERS] => Array ( [ID] => 30 [TIMESTAMP_X] => 0000-00-00 00:00:00 [IBLOCK_ID] => 10 [NAME] => Преимущества для клиентов [ACTIVE] => Y [SORT] => 500 [CODE] => BENEFITS_FOR_CUSTOMERS [DEFAULT_VALUE] => Array ( [TYPE] => HTML [TEXT] => ) [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => Y [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 2 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => HTML [USER_TYPE_SETTINGS] => Array ( [height] => 200 ) [HINT] => [PROPERTY_VALUE_ID] => Array ( [0] => 232 [1] => 233 [2] => 234 [3] => 235 [4] => 236 [5] => 237 ) [VALUE] => Array ( [0] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_0"></figure> <div class="grid_benefits__item__descr"> Cloud-based solution, fast deployment and scaling </div> <br> [TYPE] => HTML ) [1] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_1"></figure> <div class="grid_benefits__item__descr"> Secure device access control system </div> <br> [TYPE] => HTML ) [2] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_2"></figure> <div class="grid_benefits__item__descr">Certificate-based access to artifacts repository </div> [TYPE] => HTML ) [3] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_3"></figure> <div class="grid_benefits__item__descr">Rollouts monitoring system </div> [TYPE] => HTML ) [4] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_4"></figure> <div class="grid_benefits__item__descr">Rollout tasks with load balancing </div> [TYPE] => HTML ) [5] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_5"></figure> <div class="grid_benefits__item__descr">Scales to thousands of devices </div> [TYPE] => HTML ) ) [DESCRIPTION] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => ) [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => Array ( [0] => Array ( [TEXT] =>
[TYPE] => HTML ) [1] => Array ( [TEXT] =>
[TYPE] => HTML ) [2] => Array ( [TEXT] =>

[TYPE] => HTML ) [~DESCRIPTION] => [~NAME] => Key facts [~DEFAULT_VALUE] => Array ( [TEXT] => [TYPE] => HTML ) [DISPLAY_VALUE] =>

) [TECHNOLOGIES] => Array ( [ID] => 31 [TIMESTAMP_X] => 2021-02-01 12:08:51 [IBLOCK_ID] => 10 [NAME] => Технологии [ACTIVE] => Y [SORT] => 500 [CODE] => TECHNOLOGIES [DEFAULT_VALUE] => [PROPERTY_TYPE] => E [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => Y [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 5 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => Array ( [0] => 238 [1] => 239 [2] => 240 [3] => 241 [4] => 242 [5] => 243 [6] => 244 [7] => 245 [8] => 246 [9] => 247 [10] => 248 ) [VALUE] => Array ( [0] => 86 [1] => 87 [2] => 88 [3] => 89 [4] => 85 [5] => 90 [6] => 91 [7] => 92 [8] => 93 [9] => 94 [10] => 95 ) [DESCRIPTION] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => ) [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => Array ( [0] => 86 [1] => 87 [2] => 88 [3] => 89 [4] => 85 [5] => 90 [6] => 91 [7] => 92 [8] => 93 [9] => 94 [10] => 95 ) [~DESCRIPTION] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => ) [~NAME] => Технологии [~DEFAULT_VALUE] => [DISPLAY_VALUE] => Array ( [0] => U-Boot [1] => OpenWRT [2] => Java [3] => C [4] => Python [5] => Docker [6] => RAUC framework [7] => Grafana [8] => InfluxDB [9] => Chronograf [10] => Syslog-ng ) [LINK_ELEMENT_VALUE] => Array ( [86] => Array ( [ID] => 86 [~ID] => 86 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => U-Boot [~NAME] => U-Boot [DETAIL_PAGE_URL] => /content/detail.php?ID=86 [~DETAIL_PAGE_URL] => /content/detail.php?ID=86 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 86 [~EXTERNAL_ID] => 86 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [87] => Array ( [ID] => 87 [~ID] => 87 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => OpenWRT [~NAME] => OpenWRT [DETAIL_PAGE_URL] => /content/detail.php?ID=87 [~DETAIL_PAGE_URL] => /content/detail.php?ID=87 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 87 [~EXTERNAL_ID] => 87 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [88] => Array ( [ID] => 88 [~ID] => 88 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => Java [~NAME] => Java [DETAIL_PAGE_URL] => /content/detail.php?ID=88 [~DETAIL_PAGE_URL] => /content/detail.php?ID=88 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 88 [~EXTERNAL_ID] => 88 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [89] => Array ( [ID] => 89 [~ID] => 89 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => C [~NAME] => C [DETAIL_PAGE_URL] => /content/detail.php?ID=89 [~DETAIL_PAGE_URL] => /content/detail.php?ID=89 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 89 [~EXTERNAL_ID] => 89 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [85] => Array ( [ID] => 85 [~ID] => 85 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => Python [~NAME] => Python [DETAIL_PAGE_URL] => /content/detail.php?ID=85 [~DETAIL_PAGE_URL] => /content/detail.php?ID=85 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 85 [~EXTERNAL_ID] => 85 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [90] => Array ( [ID] => 90 [~ID] => 90 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => Docker [~NAME] => Docker [DETAIL_PAGE_URL] => /content/detail.php?ID=90 [~DETAIL_PAGE_URL] => /content/detail.php?ID=90 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 90 [~EXTERNAL_ID] => 90 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [91] => Array ( [ID] => 91 [~ID] => 91 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => RAUC framework [~NAME] => RAUC framework [DETAIL_PAGE_URL] => /content/detail.php?ID=91 [~DETAIL_PAGE_URL] => /content/detail.php?ID=91 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 91 [~EXTERNAL_ID] => 91 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [92] => Array ( [ID] => 92 [~ID] => 92 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => Grafana [~NAME] => Grafana [DETAIL_PAGE_URL] => /content/detail.php?ID=92 [~DETAIL_PAGE_URL] => /content/detail.php?ID=92 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 92 [~EXTERNAL_ID] => 92 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [93] => Array ( [ID] => 93 [~ID] => 93 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => InfluxDB [~NAME] => InfluxDB [DETAIL_PAGE_URL] => /content/detail.php?ID=93 [~DETAIL_PAGE_URL] => /content/detail.php?ID=93 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 93 [~EXTERNAL_ID] => 93 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [94] => Array ( [ID] => 94 [~ID] => 94 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => Chronograf [~NAME] => Chronograf [DETAIL_PAGE_URL] => /content/detail.php?ID=94 [~DETAIL_PAGE_URL] => /content/detail.php?ID=94 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 94 [~EXTERNAL_ID] => 94 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) [95] => Array ( [ID] => 95 [~ID] => 95 [IBLOCK_ID] => 5 [~IBLOCK_ID] => 5 [NAME] => Syslog-ng [~NAME] => Syslog-ng [DETAIL_PAGE_URL] => /content/detail.php?ID=95 [~DETAIL_PAGE_URL] => /content/detail.php?ID=95 [PREVIEW_PICTURE] => [~PREVIEW_PICTURE] => [DETAIL_PICTURE] => [~DETAIL_PICTURE] => [SORT] => 500 [~SORT] => 500 [LANG_DIR] => / [~LANG_DIR] => / [CODE] => [~CODE] => [EXTERNAL_ID] => 95 [~EXTERNAL_ID] => 95 [IBLOCK_SECTION_ID] => [~IBLOCK_SECTION_ID] => [IBLOCK_TYPE_ID] => content [~IBLOCK_TYPE_ID] => content [IBLOCK_CODE] => technologies_en [~IBLOCK_CODE] => technologies_en [IBLOCK_EXTERNAL_ID] => [~IBLOCK_EXTERNAL_ID] => [LID] => s2 [~LID] => s2 ) ) ) [BENEFITS_FOR_CUSTOMERS] => Array ( [ID] => 30 [TIMESTAMP_X] => 0000-00-00 00:00:00 [IBLOCK_ID] => 10 [NAME] => Преимущества для клиентов [ACTIVE] => Y [SORT] => 500 [CODE] => BENEFITS_FOR_CUSTOMERS [DEFAULT_VALUE] => Array ( [TYPE] => HTML [TEXT] => ) [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30 [LIST_TYPE] => L [MULTIPLE] => Y [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 2 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => HTML [USER_TYPE_SETTINGS] => Array ( [height] => 200 ) [HINT] => [PROPERTY_VALUE_ID] => Array ( [0] => 232 [1] => 233 [2] => 234 [3] => 235 [4] => 236 [5] => 237 ) [VALUE] => Array ( [0] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_0"></figure> <div class="grid_benefits__item__descr"> Cloud-based solution, fast deployment and scaling </div> <br> [TYPE] => HTML ) [1] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_1"></figure> <div class="grid_benefits__item__descr"> Secure device access control system </div> <br> [TYPE] => HTML ) [2] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_2"></figure> <div class="grid_benefits__item__descr">Certificate-based access to artifacts repository </div> [TYPE] => HTML ) [3] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_3"></figure> <div class="grid_benefits__item__descr">Rollouts monitoring system </div> [TYPE] => HTML ) [4] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_4"></figure> <div class="grid_benefits__item__descr">Rollout tasks with load balancing </div> [TYPE] => HTML ) [5] => Array ( [TEXT] => <figure class="grid_benefits__item__icon grid_benefits__item__icon_5"></figure> <div class="grid_benefits__item__descr">Scales to thousands of devices </div> [TYPE] => HTML ) ) [DESCRIPTION] => Array ( [0] => [1] => [2] => [3] => [4] => [5] => ) [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => [~VALUE] => Array ( [0] => Array ( [TEXT] =>
[TYPE] => HTML ) [1] => Array ( [TEXT] =>
[TYPE] => HTML ) [2] => Array ( [TEXT] =>
[1] =>
[2] =>