NodeSense — это платформа с открытым исходным кодом, позволяющая использовать приложения IoT, шлюзы и внутренние серверы в экосистеме JavaScript и HTML5. В то время как технологический ландшафт меняется между операционными системами Windows, Mac и Linux, мобильными устройствами и ПК, JavaScript и HTML5 стали де-факто стандартами для всех, чтобы рассматривать их как альтернативный, простой вариант. JavaScript и HTML5 теперь доминируют в мобильных, планшетных и веб-приложениях, с Node Webkit и Electron теперь вы можете создавать устанавливаемые настольные приложения с использованием JavaScript и HTML5. Active-X, Flash, апплеты, Silverlight не смогли совершить революцию в Интернете, благодаря открытому стандарту, широкое распространение помогло JavaScript, CSS, HTML5 достичь своего успеха.

Стандарт HTTP/REST заменил веб-службы SOA, Microsoft WCF, устаревшие Microsoft COM и CORBA, которые оказались громоздкими для использования на различных платформах в будущем.

HTTP 2 может предоставить альтернативные варианты протокола CoAP со значительной полезной нагрузкой, что является подходящим кандидатом для соединений на основе TCP/IP.

Точно так же JSON взял верх над XML.

Мы видим огромную популярность платформы NodeJS, MEAN Stack, платформ Meteor, теперь JavaScript управляет не только браузерами, но и серверным ландшафтом, с изобретением Cordova, Node-Webkit, Electron от Atom.IO мы можем создавать мобильные и настольные приложения, ориентированные на различные операционные системы с согласованным пользовательским интерфейсом с отличным пользовательским интерфейсом.

Точно так же Titanium от Appcelerator, NativeScript от Telerik, ReactJS Native доказали, что JavaScript подходит для кандидатов, создающих нативные приложения для мобильных платформ.

Apache Cardova (ранее Phonegap от Adobe) является строительным блоком для миллионов мобильных приложений для мобильных телефонов iOS и Android. Ionic Framework принесла Angular JS и все батареи, необходимые для более быстрой и интеллектуальной разработки мобильных приложений для платформ Windows, Android и iOS.

Google пытался отказаться от JavaScript с помощью Dart, в конце концов потерпел неудачу, теперь у нас есть много компиляторов для генерации кода JavaScript из других языков, таких как CoffeeScript, TypeScript, AtScript или Dart. TypeScript был адаптирован командой Anguar JS к Angular 2, у них все еще есть Dart-версия Angular для Status Quo. TypeScript прекрасно компилируется в JavaScript, пусть это будет ES 5 или ES 6, вам нравится сгенерированный код, который лучше, чем написанный от руки код.

Вы можете начать думать, а где еще нет JavaScript? Экосистема JavaScript сейчас развивается быстрее, чем когда-либо, спецификация ES 6 (ES 2015) добавила больше фьючерсов, таких как байтовые массивы, классы, ООП, что дает значительный импульс сообществу JS.

Научное сообщество не смогло адаптировать NodeJS из-за асинхронного характера выполнения, поскольку большинство научных работ основаны на вычислительной мощности, а не на вводе-выводе. NodeJS хорош для приложений, управляемых вводом-выводом, поскольку он является однопоточным, основанным на событиях, и его нельзя использовать в математических и статистических работах, основанных на вычислениях. Python, Java и R имеют множество библиотек для искусственного интеллекта, машинного обучения, аналитики.

NodeSense — это, по сути, среда приложений на основе JavaScript, которую вы можете представить как сортировку Ruby on Rails для подключенных устройств. Вы используете JavaScript для разработки приложений, JSON для настройки устройства, REST для связи, Angular JS для Интернета, Ionic Framework для мобильных приложений. NodeSense должен предоставлять интерфейсы для подключения приложения вашего устройства к шлюзу или облачной сети, вы можете выполнять настройку, мониторинг, генерировать события. Как объяснялось, часть аналитики не должна выполняться с использованием JavaScript, вместо этого мы рассматриваем возможность использования Apache Spark с использованием Scala. У вас также есть возможность написать часть аналитики на Java, Scala, Python. В течение следующих нескольких месяцев мы не будем заниматься аналитикой, вместо этого мы хотели бы создать простую структуру, позволяющую разработчикам создавать приложения IoT на основе NodeSense. Однако мы думаем об использовании Grafana в качестве системы панели инструментов, которую можно использовать через InfluxDB для расширенной панели инструментов.

NodeSense в настоящее время находится в разработке, мы опубликуем код на github, как только у нас будет готова версия 0.1 для ранних адаптеров. NodeSense построен на основе AngularJS 2.0, NodeJS 5.x, HTML5, и ожидается, что он будет работать с последними версиями браузера. Приложения, созданные на основе NodeSense, должны быть совместимы с Ionic 2. Поскольку Angular 2 и Ionic 2 находятся на стадии бета-тестирования, мы используем платформу Angular 2 для создания NodeSense с учетом будущей адаптации. Базовая среда NodeSense написана на TypeScript, вы можете создать приложение для своего устройства на TypeScript или JavaScript, на ваше усмотрение.

Нам предстоит пройти долгий путь, прямо сейчас первые выпуски NodeSense подходят для сообщества хакеров и разработчиков, хакатонов с манифестом «Не повторяйся». Наша цель — создать стабильную среду для сообщества разработчиков JS, чтобы быстрее создавать приложения IoT, меньше беспокоиться о разработке приложений, а вместо этого сосредоточиться на деятельности, ориентированной на аппаратное и микропрограммное обеспечение.