基于Web服务的物联网-WoT(Web of Things)

2023-05-16

          当我们谈到智能手机,“多样性”往往不是问题,主流市场不是基于苹果IOS系统的就是谷歌的Android系统,但即将到来的物联网浪潮,智能对象是否也能这样?这就复杂多了,当前的大多数物联网产品往往来自某一类垂直行业,比如门锁,汽车,这些垂直行业都基于自己封闭的生态系统发展各自的解决方案,如Figure 1。这往往造成用户需要为遇到的每一个智能设备下载一个单独的应用程序(app),然后再利用app与设备进行互动,比方说恒温器Nest的操控,比如说那些智能的灯泡等等。在智能设备种类不多的情况下,这没有什么问题。但是在智能设备的数量种类将出现爆炸性增长之后,每一台新设备都要有自己的app才能用就变得非常不现实了。所以我们需要一个开放的解决方案。

                                                                      

                                                  Figure 1                                     

                          

         

   如今智能设备的应用大部分都是效仿“闭门造车”的封闭模式,这大大增加了创造新价值的机会,可以开发横跨这些垂直应用的水平解决方案。例如,建立智能电网要求联网设备跨越几个不同的垂直市场:家居、商业、工业、测量和变配电。在今天的市场上,很多这样的机会并不经济,因为让设备互联技术上太复杂,而且成本过高。Web of Things可以改变这一切,它会成为衔接各领域的设备和正在出现的应用和服务的关键点,使得设备信息可以像普通Web服务一样使用,这将对整个产业链产生革命性的影响,彻底简化各种应用和服务使用联网设备的难度。见Fingure 2

                  

                                                        Figure 2 

   能不能做一个系统让任何人在任何时候都可以跟任何设备进行交互呢?带着这个想法,Google在14年底推出了The Physical Web项目。The Physical Web是把虚拟的web延伸到周围的物理世界,希望采用网络地址(URL)的方式,开发出一套共同的web标准,让任何智能设备(不仅仅是Google的设备)都可以用来提供交互以及服务。

   The Physical Web要做的就是让每个智能设备用URL用标识自己,然后用户根据自己的需要通过URL和设备进行沟通。这样一来,使用智能设备的体验就和在网站上使用各种超链接差不多。

   利用这套标准,智能设备可以把自己的URL地址广播给周围,周围的任何设备(如智能手机、平板电脑)应该就可以接收到这些URL然后呈现给用户。用户然后就可以先查看附近的URL列表,选定一个需要的服务在浏览器中完成相关的操作,而不需要下载app。这看上去和我们平时使用搜索引擎的行为颇为类似,提供““按需交互”


   Physical Web项目的GitHub网页(https://github.com/google/physical-web)称,“Physical Web旨在把Web的核心力量――URL,扩展到日常几乎所有的实际物体。我们的核心前提是,用户可以靠近任何‘智能’实际物体,例如自动售卖机、海报、玩具、公交车站、出租汽车,无需首先下载应用即可与它们交互。智能对象的用户体验应当与Web浏览器中的链接非常相似”


   Google展望的这套物联网体系其实苹果已经先行一步。其iBeacon技术通过将智能资源分配给客户端(智能设备)、beacon 端和云端也可以实现 O2O的闭环。只不过苹果的解决方案是在一个封闭体系内的开放,而Google想做的则是为物联网打造一套公共开放的标准(就行HTML一样),在不需要任何中心化软件的情况下实现所有智能设备的交互,所以这项努力还是非常具有吸引力的。

     

   相比谷歌雄心壮志,意图主导以自己为主的物联网的Web标准,另外一些公司的Web方案则更实用,它们大多基于Node.js、JavaScript和Html5的开源Web IOT项目

   为何使用JavaScript,因为JavaScript在web开发者中已有广泛的使用率,移植性高,便于标准化,另外Html5使用JavaScript,支持SSL,载荷 < Http的1%,便于开发针对IOT的UI。JavaScript还非常适合嵌入式设备,支持异步IO通信,便于事件驱动的编程(event-driven),另外JavaScript V8也显示了很高的性能,接近C/C++。Node.js有大量可以利用的包,很多IOT开源社区都使用Node.js,比如JohnnyFive,但不做UI开发。

   下面我们看看几个名气不小的项目

  • Intel的 XDK IoT Edition, 支持Galileo 和Edison两类板,node.js支持的硬件接口库有Intel提供的MRAA,UPM,IoT-io和第三方的JohnnyFive,I2C

                


                 

    其中IOT Device端Node.js用shoe包实现websocket,用dnode包做RPC。进一步Node.js还可以用Mosca支持MQTT,这种扩展的应用场景见下图Figure 3

                               

                                                                                                  Figure 3

 

  • WeIO  软件+硬件解决平台方案,跟Arduino平台一样简单,但已经集成了WiFI模块,无需Shield,且支持多任务,支持Python和Html5。宣称可以通过任意一种浏览器编程和控制Board板的输入输出。device端集成了Apple的Bonjour zeroconf检测机制 

                                       
                    

  • noduino  https://github.com/semu/noduino
    一个简单、灵活的基于JavaScript和Node.js的框架,能实现通过HTML5、Socket.IO 和 Node.js 等Web应用实现对Arduino板的控制

 

  • heimcontrol.js   http://ni-c.github.io/heimcontrol.js/
    基于Raspberry PI 和Arduino 运用Node.js, MongoDB, HTML5 和 Websockets.实现智能家庭控制

 

  • Cylon.js  http://cylonjs.com/   智能机器人和IOT的JavaScript开发框架,号称支持不下35种平台,使得开发人员可以使用同样的API来操纵不同的设备,包括Leap Motion,Pebble手表,Arduinos和Raspberry Pi等等。

   通过浏览器Web来访问控制设备无疑会大大便利物联网垂直市场的扩展性,解决不同设备之间的互操作难题。15年希望我们能看到更多基于Web的IOT解决方案,同时期待谷歌Physical Web能早日公布。

 

 

个人介绍:

周明春 SamsungElectronics VD IoTPlatform高级工程师,在物联网,云计算,移动通讯,网络安全和消息传递基础构架领域拥有超过9年的专业知识和经验.拥有丰富的企业消息传递基础构架开发,物联网、云、设备联接解决方案开发,以及成熟的管理软件和解决方案,如敏捷和DevOpts的开发经验。在国内首次提出SDT(softwaredefinedThings)的IOT概念,拥有2项专利.

是三星、英特尔、戴尔所成立智能家居设备标准联盟开放互联联盟(OIC)的代码贡献者(https://gerrit.iotivity.org/gerrit/p/iotivity.git)

https://www.iotivity.org/documentation/iotivity-services/protocol-plug-manager

经常参与云计算,物联网等开源社区(Openstack,Vmware,ECUG失效云计算用户组)交流讨论,关注开源社区技术动态

 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Web服务的物联网-WoT(Web of Things) 的相关文章

  • 停止批处理文件直到网站停止完成?

    这个问题非常类似于停止批处理文件直到服务停止完成 https stackoverflow com questions 2874911 halt batch file until service stop is complete但我想停止一个
  • 如何定义状态?

    有谁有一个好的定义state在网络应用程序的上下文中 更具体地说 什么是state在 React 的上下文中意味着 这与第一个定义有什么不同吗 我看到 状态 这个术语在 React 开发中被大量使用 但我一直无法找到一个可靠 简洁的定义 两
  • 多次渲染一个组件 React.js

    这是一个简单计数器的代码 但是 当我渲染视图时 我没有得到任何输出 请告诉我代码有什么问题 按下按钮 计数器就会递增并呈现在屏幕上 var Title React createClass getInitialState function r
  • IE 中文本大小列表的实际像素是多少?

    与 IE 中的以下文本大小列表相比 实际字体大小 以像素为单位 是多少 Largest Larger Medium Smaller Smallest 在 Web 应用程序中 我需要提供类似的行为 通过选择上面列表中的任何一个来设置应用程序控
  • Node.JS Schema.pre('save) 不更改数据

    我正在制作用户授权系统 并希望在将密码保存到数据库之前对其进行哈希处理 为了达到这个目的 我使用 bcrypt nodejs 上面标题中的问题 var mongoose require mongoose var bcrypt require
  • 如何将通知从网站发送到 Android 应用程序 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我使用一些 javascript 和 php 制作了一个 html 网站 我使用 eclipse 和 java 制作了一个 andro
  • 使用元 http-equiv 标记进行重定向时,避免将页面添加到浏览器历史记录中

    我有一个网页 它使用以下命令重定向到所需的目标网址 我想避免第一页出现在浏览器历史记录中 特别是 在手机 Android iOS 等 中 我希望后退按钮可以跳过重定向页面 您有两个选择 要么使用真正的 HTTP 重定向 要么使用 JavaS
  • 从 Javascript 方法返回全局变量 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个方法 function ca
  • 我可以在为服务器提供 API 的同时提供静态文件吗?

    所以我对网络开发还很陌生 现在我和我更加面向网络的朋友开始了一个项目 他向我扔了各种各样的框架 我们正在做 Vuejs jade stylus 和 jeet 对于新手来说 这当然非常令人困惑 因为没有 Vuejs 示例使用 jade 没有
  • Javascript - 事件属性的浏览器命名约定让我感到困惑

    我一直想知道为什么不同浏览器的 JavaScript 中事件的 target sourceElement 的属性名称存在差异 event srcElement in Internet Explorer event target in mos
  • Web 服务器内置 Azure 应用服务

    背景 我正在托管一个静态 Web 应用程序 由 NUXTJS 在 Azure 应用服务上生成 现在我想通过以下方式配置更多内容web config比如为多个域设置 CORS 设置 但我找不到任何文档来确定 Azure 应用程序服务中集成 安
  • Spring MVC Web 应用程序 - 从属性启用/禁用控制器

    我有一个在 Tomcat 中运行的 Web 应用程序 并使用 Spring MVC 来定义控制器和映射 我有以下课程 Controller api test public class TestController RequestMappin
  • 如何使用 mysql 从 php 中的表中返回多行

    我决定为我的家人建立一个梦幻足球网站 但我无法从数据库返回多行 我想要的 进行一次 sql 调用并获取整个玩家列表 以便我可以填充一个对象或对象列表 如果整个桌子都可以归还那就太好了 我的目标是简单地向用户显示待选秀的可用球员列表 目前 通
  • REST API 与 Web API

    我是构建 HTTP API 的初学者 我似乎对 REST API 和 Web API 之间的区别感到困惑 我在网上读到更多相关内容 困惑似乎越来越多 我猜菲尔丁有与此链接相同的问题http roy gbiv com untangled 20
  • VM1550 installHook.js:1860 在控制台中记录为双行

    我正在使用反应应用程序并构建一个简单的应用程序 当我使用 console log 方法在控制台上记录某些内容时 控制台上会出现第二条日志 它似乎来自第 1860 行的文件名 installHook js 我已经尝试过寻找它 但我没有找到 我
  • 没有样式表的 Z-Index

    您可以在不编写或嵌入样式表的情况下为 HTML 中的图像设置 Z Index 吗 我正在将一些内容上传到网络论坛 并且需要能够将一些文本放在图像顶部 并在表格内进行格式化 但图像只是被推到一边 没有办法 发送回 我一直在对 HTML 本身进
  • 构建网站翻译文件

    我在建立网站时多次遇到这个问题 我将以使用 PHP 和 Laravel 为例进行解释 但这个问题在多个平台中都很常见 这已经在几个问题中得到了解决 post1 https stackoverflow com questions 317854
  • 如何将 html 输入到 Flask 中?

    我有这个 html 位
  • 使用 hg 存储库作为网站

    这与我的安全问题有些相关here https stackoverflow com questions 2361626 security deny access to hg via mod rewrite 对实时网站使用 hg Mercuri
  • 使用 REST API 进行正确的会话管理

    我已经完成了 RESTful API 的设计 其中我使用作为参数发送的 API 令牌对每个请求进行身份验证 现在我想创建一个客户端界面 我想知道什么是管理每个客户端的会话的正确安全方法browser客户 我想过一个流程来保持服务器端无状态

随机推荐

  • 告别csdn一年了

    原本坚持了4年的学习 xff0c 整理笔记 xff0c 在csdn平台上进行发表 xff0c 记录 同朋友们互动 xff0c 探讨进行学习 xff0c 自己也在不断地成长 今天再次进入博客页面 xff0c 发现界面来了个大改版 xff0c
  • php视频课程

    php视频课程 xff1a 下载地址 xff1a http php itcast cn php video shtml 注 xff1a 此系列视频 xff0c 韩顺平主讲 1 php入门到精通教程 2 第二版mysql视频教程 进行中 3
  • pixhawk ulg转csv

    ulg是目前最新版px4固件生成的log格式 xff0c 下载最新版的flightplot即可对内部数据进行预览分析 xff0c flightplot中支持部分函数和运算符操作 xff0c 但对带 数据的操作不支持 xff0c 如需要对某些
  • 将Kinetic中的Gazebo7升级为Gazebo9

    将Kinetic中的Gazebo7升级为Gazebo9 一 查看所有gazebo7的相关包二 卸载当前已安装的gazebo相关包三 添加源四 安装新版本gazebo五 安装gazebo ros pkgs六 后记 官方教程 http gaze
  • 你真的了解串口 (Serial)吗?

    一 串口的定义 串口 xff0c 全称串行通信接口或串行通讯接口 xff0c 是一种常用于电子设备间通讯的全双工扩展接口 xff1b 串行通信 xff0c 串口通讯的技术基础 xff0c 指一位一位地按顺序传送数据 其特点是线路简单 xff
  • PnP 单目相机位姿估计(三):二维码角点检测

    解PnP问题时用二维码的好处二维码识别的流程代码最后 IDE xff1a visual studio 2013 使用库 xff1a Eigen opencv2 4 9 文档版本 xff1a 1 0 解PnP问题时 xff0c 用二维码的好处
  • 2014年计算机求职总结--面试篇

    又一年实习招聘陆续开始了 xff0c 这里分享一下我在2013年实习招聘和秋季招聘中的一些面试经历 xff0c 希望能对找工作的同学有所帮助 2013年面试过的公司有蘑菇街 网易游戏 阿里巴巴 腾讯 百度 大众点评 人人网 雅虎 xff08
  • 用位运算实现两个整数的加减乘除运算

    位运算的思想可以应用到很多地方 xff0c 这里简单的总结一下用位运算来实现整数的四则运算 1 整数加法 int Add int a int b for int i 61 1 i i lt lt 61 1 if b amp i for in
  • 深入理解C/C++数组和指针

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7044380 C语言中数组和指针是一种很特别的关系 xff0c 首
  • 轻松搞定面试中的链表题目

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7393134 链表是最基本的数据结构 xff0c 面试官也常常用链
  • 轻松搞定面试中的二叉树题目

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7518888 树是一种比较重要的数据结构 xff0c 尤其是二叉树
  • 动态内存分配(malloc/free)简单实现--隐式空闲链表

    本文使用隐式空闲链表实现简单的动态内存分配 动态内存分配器维护一个大块区域 xff0c 也就是堆 xff0c 处理动态的内存分配请求 分配器将堆视为一组不同大小的块的集合来维护 xff0c 每个块要么是已分配的 xff0c 要么是空闲的 实
  • 二分查找,你真的掌握了吗?

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 8937978 二分查找 xff0c 最基本的算法之一 xff0c
  • 【谷歌面试题】求数组中两个元素的最小距离

    一个数组 xff0c 含有重复元素 xff0c 给出两个数num1和num2 xff0c 求这两个数字在数组中出现的位置的最小距离 O n 时间复杂度 xff0c O 1 空间复杂度 int minDistance int A int si
  • 进程间通信

    原作者地址不详 摘 要 随着人们对应用程序的要求越来越高 xff0c 单进程应用在许多场合已不能满足人们的要求 编写多进程 多线程程序成为现代程序设计的一个重要特点 xff0c 在多进程程序设计中 xff0c 进程间的通信是不可避免的 Mi
  • 通过能观性分析理解SLAM系统的可观维度。

    目录 1 能观性分析大体理解2 可观性定义3 可观性矩阵 1 能观性分析大体理解 什么是能观性分析 xff1f 能观性分析通过计算可观性矩阵 xff0c 分析它的零空间的秩 xff0c 来分析系统哪些状态维度可观 不可观 可观性矩阵对应系统
  • 百度2014移动研发笔试题目——1013清华版

    一 简答题 1 简述计算机的存储系统分为哪几个层次 xff0c 为什么这样的分层能够提高程序的执行效率 2 浮点数在计算中如何表示 xff0c 如何对浮点数判等 3 简述TCP与UDP协议的差别 xff0c 两者与HTTP的关系 并列举HT
  • 史上最全的ubuntu16.04安装nvidia驱动+cuda9.0+cuDnn7.0

    本文参考了 http www cnblogs com 5211314jackrose p 7081020 html https jingyan baidu com article 4853e1e55679491909f726f4 html
  • 4、ORB-SLAM闭环检测之通过词袋寻找当前关键帧和闭环候选帧之间的匹配

    目录 1 SearchByBoW 2 图解每一步实现原理 2 1 通过词袋模型寻找匹配 2 2 通过旋转直方图来筛除离群点 3 期待您加入 前面 我们已经了解到了sim3的求解流程 具体计算过程中有三步比较重要 1 寻找两关键帧之间的粗匹配
  • 基于Web服务的物联网-WoT(Web of Things)

    当我们谈到智能手机 xff0c 多样性 往往不是问题 xff0c 主流市场不是基于苹果IOS系统的就是谷歌的Android系统 xff0c 但即将到来的物联网浪潮 xff0c 智能对象是否也能这样 xff1f 这就复杂多了 xff0c 当前