Статья:

ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ И ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ИНТЕРФЕЙСА «ИНТЕРНЕТА ВЕЩЕЙ»

Журнал: Научный журнал «Студенческий форум» выпуск №20(199)

Рубрика: Технические науки

Выходные данные
Алхименкова М.С. ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ И ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ИНТЕРФЕЙСА «ИНТЕРНЕТА ВЕЩЕЙ» // Студенческий форум: электрон. научн. журн. 2022. № 20(199). URL: https://nauchforum.ru/journal/stud/199/112940 (дата обращения: 29.03.2024).
Журнал опубликован
Мне нравится
на печатьскачать .pdfподелиться

ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ И ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ ДЛЯ РАЗРАБОТКИ ИНТЕРФЕЙСА «ИНТЕРНЕТА ВЕЩЕЙ»

Алхименкова Мария Сергеевна
студент, Поволжский государственный университет телекоммуникаций и технологий- ПГУТИ, РФ, г. Самара

 

DEFINITION OF REQUIREMENTS AND CHOICE OF PROGRAMMING LANGUAGE FOR THE DEVELOPMENT OF THE «INTERNET OF THINGS» INTERFACE

 

Maria Alkhimenkova

Student, Volga State University of Telecommunications and Technologies - PSUTI, Russia, Samara

 

Аннотация. В современном мире широко применяется концепция Интернета вещей. В данной статье определены требования для разработки приложения и выбран язык программирования.

Abstract. In the modern world, the concept of the Internet of Things is widely used. This article defines the requirements for developing an application and chooses a programming language.

 

Ключевые слова: хост; интерфейс; плагин; интернет вещей; язык программирования.

Keywords: host; interface; plugin; internet of things; programming language.

 

На сегодняшний день стремительно развивается концепция вычислительной сети физических устройств с технологией взаимодействия друг с другом или внешней средой для выполнения операций или действий, исключающих необходимость участия человека – Интернет вещей.

Для реализации данной системы необходимы следующие компоненты:

1. Хост – программа предоставляющая единый интерфейс к плагинам. Она выступает связующим звеном между пользователем и IoT-устройствами.

2. Интерфейс для взаимодействия клиента с хостом.  Необходим, чтобы пользователь смог получать список подключенных устройств, вызывать методы, просматривать свойства и подписываться на события.

3. Генератор интерфейса к устройствам – программа, предназначенная для более удобного написания кода путем генерации интерфейсов к

устройствам.

4. Система плагинов – позволяет расширять функционал системы, путем добавления новых устройств.

Функциональные требования

 

Рисунок 1. Диаграмма вариантов использования расширяемой системы взаимодействия компонентов интернета вещей

 

На рисунке 1 показаны 2 ключевых действующих лица:

1. Пользовательский код – скрипт, написанный на языке C#, написанный программистом с целью автоматизации устройств интернета вещей.

2. Хост – программа, запущенная на сервере, получающая команду от пользовательского кода и управляющая устройствами с помощью плагинов.

При старте пользовательского кода, первым делом происходит синхронизация описания и данных устройств, после синхронизации пользовательский код может запрашивать устройства, имея ссылку на устройство может просматривать его свойства, вызывать методы и подписываться на события.

Нефункциональные требования

Для полноценного функционирования системы, должны быть предусмотрены следующие аспекты функционирования:

1. Беспрерывная работа.

2. Возможность запуска на устройствах с низким энергопотреблением –одноплатных компьютерах.

3. Возможность работы как в локальной сети, так и в сети Интернет.

Выбор языка программирования

В качестве языка программирования ядра программного комплекса и языка написания пользовательских автоматизаций был выбран C#. C# —простой, современный объектно-ориентированный и безопасный язык программирования.  Вот лишь несколько функций языка C#, обеспечивающих надежность и устойчивость приложений:

1. Сборка мусора автоматически освобождает память, занятую уничтоженными и неиспользуемыми объектами.

2. Обработка исключений предоставляет структурированный и расширяемый способ выявлять и обрабатывать ошибки.

3. Строгая типизация языка не позволяет обращаться к неинициализированным переменным, выходить за пределы индексируемых массивов или выполнять неконтролируемое приведение типов.

4. Наличие большой стандартной библиотеки классов, которая помогает писать код удобнее и быстрее.

5. Встроенная в язык поддержка асинхронных вызовов.

Данный язык исполняется в среде CLR (Common Language Runtime). CLR— исполняющая среда для байт-кода CIL (MSIL), в которой компилируются программы, написанные на .NET-совместимых языках программирования. Существуют различные реализации CLR, одна из которых – Mono. Mono –представляется собой открытую реализацию системы .NET Framework, способную работать на разнообразных операционных системах. Использование языка C# вместе с Mono позволит запускать разрабатываемый программный комплекс на Windows, Linux, Mac OS. Также появляется возможность использовать комплекс на одноплатных компьютерах, например, на Raspberry Pi, что позволит снизить энергозатраты, так как программный комплекс должен постоянно находится в активном состоянии.

Использование языка C# для написания клиентской автоматизации позволяет использовать обширный набор стандартных классов языка, а также бесчисленное количество библиотек, что позволит писать скрипты любой сложности.

Клиентский код и основной код системы могут находится на разных машинах, поэтому необходимо сетевое взаимодействие. Для этого можно использовать стандартные сокеты системы напрямую, но в таком случае получится достаточно низкоуровневый код, и он не будет являться платформо-независимым. Поэтому необходимо выбрать библиотеку для сетевого взаимодействия, которая поддерживает различные операционные системы и платформы, а также абстрагироваться от использования низкоуровневого кода.

Было принято решение выбрать библиотеку ZeroMQ. ZeroMQ предлагает разработчику некий высокий уровень абстракции при работе с «сокетами». Библиотека берет на себя по буферизацию данных, обслуживание очередей, установление и восстановление соединений.  Данная библиотека поддерживает множество языков программирования и операционных систем, что позволяет использовать только одну эту библиотеку на всех платформах.

 

Список литературы:

1. Скит, Д. C#.  Программирование для профессионалов / Д.  Скит. – М.: Вильямс, 2011. – 544 с.;

2. Обзор среды CLR – https://docs.microsoft.com/ru-ru/dotnet/standard/clr.

3. Mono – https://www.mono-project.com. 

4. Akgul, F. ZeroMQ / F. Akgul. – Бирмингем: Packt Publishing, 2011. – 140 с.

5. Плагины |  MDN  –  https://developer.mozilla.org/ru/docs/Plugins.