Используемые технологии - Виды взаимодействия в Интернете вещей
Серверная часть веб-приложения разрабатывается с использованием технологии PHP и располагается на удаленном сервере.
PHP - скриптовый язык программирования, используемый в основном для разработки серверных приложений.
PHPбыл выбран в качестве средства серверной разработки по следующим причинам:
Распространяется в свободном доступе,
Подходит для любых современных серверов,
Имеет хорошую документацию и множество примеров использования,
Простотаразвертывания,
Гибкие средства работы с БД,
Простой синтаксис,
Большинство CMSнаписаны с помощью PHP (следовательно, разрабатываемые модули могут быть совместимы с данными CMS).
Для работы с базами данных была выбрана технология MySQL, поскольку она является свободно распространяемым продуктом, обеспечивает отличную производительность и хорошо поддерживается языком PHP. База данных конструктора виджетов располагается на том же сервере, что и серверная часть.
Клиентская часть сочетает в себе такие технологии, как JavaScript, JQuery, HTML, CSS и предназначена для выполнения на клиентских веб-браузерах.
Современные веб-браузеры используют три уровня представления данных:
Структура,
Внешний вид,
Бизнес-логика.
Такое представление данных соответствует популярной концепции MVC (ModelViewController-модель, представление, управление), имея некоторые расхождения с ней, и для каждого уровня используется свое средство.
Структура веб-приложения описывается с помощью языка разметки гипертекстовой информации HTML. Стоит отметить, что бизнес-логика и внешний вид веб-приложения могут быть описаны непосредственно втексте HTML. Несмотря на то, что можно описывать каждый уровень в отдельном файле, они все объединены в тексте HTML. В этом заключается несоответствие концепции MVC.
Внешний вид приложения описывается с помощью так называемых таблиц стилей средствами технологии CSS. Данная технология используется для описания стилей, применимых к объектам, описанным на языке HTML. Стили объектов могут быть описаны непосредственно в тексте HTML, но CSS - этотехнология, созданная с целью отделить описание внешнего вида объекта от его структуры.
Для описания бизнес-логики веб-приложения используется технология JavaScript - распространенный язык программирования, используемый в основном для описания логики поведения каких-либо объектов. Он используется во многих программных продуктах, в игровой индустрии, в различных средствах разработки. JavaScriptтакже используется и в веб-браузерах как язык описания бизнес-логики веб-страницы.
JQuery - технология, позволяющая значительно упростить разработку веб-приложений на основе языка JavaScript. JQuery представляет собой фреймворк, написанный на языке Java Scriptи содержащий множество часто используемых функций и алгоритмов, реализованных в виде простых методов. JQuery замечательно подходит для работы с визуализацией графических компонентов интерфейса, а также упрощает работу с запросами к удаленным сетевым узлам.
Фреймворк (англ. framework -- каркас, структура) -- структура программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. Употребляется также слово "каркас", а некоторые авторы используют его в качестве основного, в том числе не базируясь вообще на англоязычном аналоге. Можно также говорить о каркасном подходе как о подходе к построению программ, где любая конфигурация программы строится из двух частей: первая, постоянная часть -- каркас, не меняющийся от конфигурации к конфигурации и несущий в себе гнезда, в которых размещается вторая, переменная часть -- сменные модули (или точки расширения).
Визуализация с помощью JQueryпозволяет с легкостью описывать анимацию графических компонентов, изменение их размеров, цвета, формы. Работа с удаленными узлами также упрощается благодаряиспользованию технологии AJAX.
AJAX (AsynchronousJavaScriptandXML) - подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в "фоновом" обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью, и веб-приложения становятся быстрее и удобнее.
JQueryупрощает и эту технологию, сводя ее использование к вызову простой функции с минимумом параметров. JQueryне только упрощает программирование на JavaScript, но и делает его более безопасным, а также хорошо поддерживает кроссбраузерность.
Кроссбраузерность --свойство сайта отображаться и работать во всех популярных браузерах идентично. Под идентичностью понимается отсутствие развалов верстки и способность отображать материал с одинаковой степенью читабельности. Понятие "кроссбраузерность" очень часто путают с попиксельным соответствием, что на самом деле является разными понятиями.
Некоторые интернет-вещи требуют поддержки обмена данными в реальном времени (например - видеорегистратор, микрофон и т. п.). Поэтому в Интернете вещей стоит проблема данных реального времени.
Существует 2 способа обмена информацией между клиентской частьювеб-приложения и серверной:
Поллинг (опрос),
Непрерывный канал связи.
Первый способ используется чаще всего в случае, когда частота обновления данных не так актуальна. Такой подход не желателен для систем реального времени. Однако такой подход является единственным выходом в случае плохого качества связи. К недостаткам такого подхода можно отнести наличие накладных расходов при каждой установке соединения.
Второй способ позволяет избежать накладных расходов, связанных с установкой соединения, поскольку соединение устанавливается в таком случае всего один раз. В период установленного соединения обе стороны могут обмениваться сообщениями любой длины. Такой способ используется в случае частого обновления данных и повышенных требований к актуальности данных и скорости реагирования системы. В системах реального времени такой способ незаменим.
Сравнивая два способа, применимо к Интернету вещей, становится очевидным, что использование второго способа является лучшим решением задачи обмена данными между клиентской и серверной частью веб-приложения. Такой способ решает проблему передачи видео и аудио информации с интернет-вещей, а также позволяет при минимальной нагрузке на сеть обеспечить своевременный вывод информации на дисплей пользовательского устройства.
Для реализации непрерывного канала связи в веб-приложениях существует специальная технология - WebSocket.
WebSocket -- протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.
В настоящее время в W3C осуществляется стандартизация WebSocketAPI. Также протокол WebSocket был стандартизован IETF как RFC 6455.
Технология WebSocket предназначена для реализации в веб-браузерах и веб-серверах, но может быть использована в любых клиент-серверных приложениях. Протокол WebSocket является независимым и основан на TCP-протоколе. Его единственная связь с HTTP в том, что рукопожатие обрабатывают серверы HTTP как запрос на обновление. Протокол WebSocket делает возможным более тесное взаимодействие между браузером и веб-сайтом, позволяет реализовать более "живой" контент (например, игры реального времени). Это стало возможным через предоставление стандартного способа для отправки содержимого сервером браузеру без дополнительного запроса клиента, и позволяет передавать сообщения туда и обратно, пока соединение открыто. Таким образом, между браузером и сервером может происходить двусторонний (двунаправленный) обмен сообщениями. Аналогичный эффект был достигнут нестандартным образом в таких технологиях, как Comet.
Кроме того, обмен информацией идет по TCP-порту 80, и это большое преимущество для тех сред, которые блокируют нестандартные подключения к интернету с помощью межсетевого экрана. В настоящее время протокол WebSocket поддерживается в нескольких браузерах, включая GoogleChrome, Firefox, Safari, Opera и InternetExplorer (начиная с 10 версии). WebSocket также требует поддержки веб-приложений на стороне сервера.
Существует ряд других веб-технологий, позволяющих разрабатывать веб-виджеты. В этот список можно включить ASP. NET, Java, AdobeFlash/Flex. Данные технологии объединены общим подходом - клиентская и серверная части приложения разрабатываются с помощью одной технологии и объединены в одно целое веб-приложение. Рассмотрим эти технологии и сравним их с используемыми в конструкторе виджетов.
Java - технология, разработанная компанией SunMicrosystemsи в настоящий момент являющаяся собственностью компании Oracle, используется в разных сферах разработки программного обеспечения (в том числе и системного). Для разработки веб-приложений с помощью средств Javaразрабатывается два приложения - сервлет (серверная часть) и апплет (клиентская часть). Данный подход достаточно удобен, поскольку разработка ведется на одном языке. Однако Javaимеет такой недостаток, как относительно высокие требования к производительности и наличие среды выполнения команд JavaVirtualMachine. Несмотря на это, веб-приложения, написанные на Javaимеют большие возможности визуализации и доступа к данным пользовательского устройства. Но для виджетов интернет-вещей такая гибкость не оправдывает те накладные расходы, получаемые взамен.
Flash - технология, разработанная компанией Adobe, позволяет создавать веб-приложения без разделения на серверную и клиентскую части. Приложение такого типа загружается на устройство пользователя при запросе и выполняется специальной программной средой AdobeFlashPlayer. Такой подход позволяет делать достаточно гибкие веб-приложенияс большими возможностями визуализации и доступа к системным ресурсам. Однако размер таких веб-приложений становится достаточно большим и приложения становятся слишком требовательными к вычислительным ресурсам. Такой подход не оправдывает себя при разработке веб-виджетов для интернет-вещей.
ASP. NET - технология, разработанная компаниейMicrosoft-позволяет разрабатывать веб-приложения в среде VisualStudio. При этом приложение не делится на клиентскую и серверную часть. Программист просто описывает визуальную часть и ее бизнес-логику, которые потом компилируются в одно приложение. При вызове такого приложения сервер генерирует пользовательский интерфейс в привычном виде - HTML + CSS + JavaScriptи выдает его пользователю. Недостатком такого подхода является то, что веб-приложение и его внешний вид сильно зависят от текущего состояния фреймворка ASP. NET. Еще одним недостатком является плохая поддержка системами не из семейства Windows.
Похожие статьи
-
Использование шлюза - Виды взаимодействия в Интернете вещей
В Интернете вещей шлюз используется не только для прямой связи интернет-вещей с пользователем, но и при использовании централизованного сервера. Шлюзы...
-
Централизованный сервер как метод взаимодействия - Виды взаимодействия в Интернете вещей
Большинство интернет-вещей представляют собой самостоятельные устройства, передающие некоторую информацию в базу данных для последующей обработки и...
-
Одним из самых важных начальных этапов при разработке ПО является выбор технологического стека, с помощью которого будет происходить разработка продукта....
-
WEBвещей - Виды взаимодействия в Интернете вещей
Активное развитие Интернета вещей привело к тому, что все больше пользователей стали использовать Интернет для доступа к всевозможным "умным вещам". При...
-
Псевдо-сервер MQTT - Виды взаимодействия в Интернете вещей
Недостатки метода локального брокера позволяет убрать еще один способ организации туманных вычислений на основе протокола MQTT - реализовать эмуляцию...
-
Использование протокола IP в локальных сетях - Виды взаимодействия в Интернете вещей
Рассмотрим реализацию обеих способов на примере Интернета вещей, основанном на протоколе MQTT, состоящего из локальных сенсорных сетей под управлением...
-
Протокол MQTT - Виды взаимодействия в Интернете вещей
MQTT (MQ Telemetry Transport) - это протокол, поддерживаемый микроброкером Lotus Expeditor. MQTT представляет собой основанный на TCP/IP протокол обмена...
-
Описание конструктора - Виды взаимодействия в Интернете вещей
Конструктор виджетов представляет собой веб-приложение, состоящее из двух основных частей: Серверная часть, Клиентская часть. Клиентская часть приложения...
-
Взаимодействие между пользователями и интернет-вещами - Виды взаимодействия в Интернете вещей
Любая интернет-вещь должна иметь пользовательский интерфейс. Концепция Интернета вещей подразумевает наличие у каждой вещи конкретного адреса в сети...
-
Способы взаимодействия в Интернете вещей - Виды взаимодействия в Интернете вещей
В настоящий момент можно выделить 3 основных способа взаимодействия с интернет-вещами: Прямой доступ, Доступ через шлюз, Доступ через сервер. В случае...
-
Введение - Виды взаимодействия в Интернете вещей
Интернет вещь протокол виджет В настоящее время активно развивается такое направление в области информационных технологий, как "Интернет вещей" -...
-
В этой главе представлено описание инструментов и методов, использованных при написании кода программы. Инструменты разработки серверной части Для...
-
Конструктор виджетов, как решение проблем Интернета вещей - Виды взаимодействия в Интернете вещей
В данном разделе описывается решение двух проблем Интернета вещей: Рост нагрузки на сетевые ресурсы вследствие роста числа интернет-вещей, Отсутствие...
-
Проблемы пользовательского интерфейса интернет-вещей - Виды взаимодействия в Интернете вещей
В настоящий момент интернет-вещей не так много, но ожидается, что их число значительно возрастет в ближайшие 10 лет. В связи с этим необходимо осознавать...
-
Взаимодействие между интернет-вещами - Виды взаимодействия в Интернете вещей
Концепция Интернета вещей подразумевает не только сбор данных с удаленных и отслеживаемых объектов, не только управление этими объектами, но и обмен...
-
Интернет вещей представляет собой вычислительную сеть, имеющую Основные узлы - интернет-вещи, Серверы управления интернет-вещами, Пользовательские узлы -...
-
Сетевые технологии Web-дизайна - Основные понятия Web-дизайна
Основным средством создания Web-страниц в настоящее время является язык гипертекстовой разметки HTML. Стандартный язык HTML позволяет создавать статичные...
-
Брокер локальной сети - Виды взаимодействия в Интернете вещей
Беспроводные сенсорные сети имеют архитектуру, поддерживающую любой вид топологии (звезда, дерево, ячеистая) и предусматривающую наличие координатора -...
-
В рамках работы над разработкой модуля программируемых сценариев взаимодействия была подробно изучена и описана предметная область Интернета Вещей, ее...
-
FogComputingв Интернете вещей - Виды взаимодействия в Интернете вещей
Интернет-вещи могут связываться друг с другом вне зависимости от их территориального расположения. Это означает, что в протоколе прикладного уровня...
-
С целью выбора платформы для внедрения программного модуля необходимо сравнить интеграционные платформы Интернета вещей с помощью определенных критериев....
-
Стек технологий При выборе стека технологий основное внимание уделялось следующим факторам, в порядке убывания значимости: § Кроссплатформенность; §...
-
История и основные парадигмы Следующий виток развития информационных технологий находится вне области настольных компьютеров. В парадигме Интернета Вещей...
-
При начале разработки после выбора технологического стэка необходимо определить сущности, с набором свойств, которые будут использоваться при дальнейшей...
-
Коммуникация между клиентом и сервером начинается прежде всего с "рукопожатия" ( SSL Handshake). Цели данного рукопожатия, следующие [10]: 1. клиент...
-
Предметная область IoT (Интернет вещей) - это сеть физических объектов - устройств, транспортных средств, зданий и других вещей со встроенной...
-
С эксплуатационной точки зрения удобно рассматривать то, как устройства в IoT соединяются и "общаются" друг с другом, говоря о технических моделях...
-
Несмотря на то, что к IoT Hub можно подключиться напрямую, используя протоколы HTTP или AMQP), Microsoft также предоставляет разные SDK для разных языков...
-
Разработка интеграционных платформ началась одновременно с исследованием и развитием Интернета Вещей. Это происходило по той причине, что сама концепция...
-
Геймификация Когда рестораны принимают решения встраивать инновационные услуги в свой бизнес для привлечения аудитории, следует учитывать не только...
-
Домашнее использование чаще всего представляет из себя набор сенсоров, собирающих информацию об индивидах, которые напрямую владеют этой сетью. Это могут...
-
Использование облачных технологий в образовании Как пример использования облачных технологий в образовании, можно назвать электронные дневники и журналы,...
-
1 Характеристика технологий xDSL - Разработка корпоративной сети на основе технологий xDSL
HDSL (High-bit-rate DSL) , или технология высокоскоростной цифровой абонентской линии, - это первенец семейства xDSL, разработанный в конце 80-х гг....
-
Диаграмма взаимодействия, Диаграммы переходов состояний - Основы технологии программирования
На основе анализа исходных данных диаграмма взаимодействия имеет вид: Рис. 1 Диаграмма взаимодействия При поступлении грузов п Редставитель...
-
В программе присутствуют следующие основные модули: - PlatformManager - DeviceManager - ScenariosManager - ScenarioEngine - ExportManager - ImportManager...
-
IoT Hub новый сервис, предоставляемый в рамках набора сервисов Azure. Этот сервис предоставляет двустороннее взаимодействие между устройствами и облачной...
-
Для реализации вышеописанных пользовательских историй опишем функциональные требования, на которые будет опираться процесс разработки. Во-первых, самый...
-
Разработка требований к программному модулю При разработке программного модуля следует опираться на требования и спецификации, определенные для...
-
Виды обмена данными в MS Windows Обмен данными по технологии OLE В публикациях Технология OLE ( (Object Linking and Embedding) Ї технология управления и...
-
Технологии виртуализации - Выбор оптимального решения для виртуализации
Виртуализация рабочих столов это подход, при котором происходит разделение среды (ОС, данные, приложения) и устройства, на котором обычно привык работать...
Используемые технологии - Виды взаимодействия в Интернете вещей