Используемые технологии - Виды взаимодействия в Интернете вещей

Серверная часть веб-приложения разрабатывается с использованием технологии 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.

Похожие статьи




Используемые технологии - Виды взаимодействия в Интернете вещей

Предыдущая | Следующая