VANTIQ是一个平台即服务(PaaS)体系,用于开发、部署和运行高性能的分布式实时业务应用。Vantiq可以帮助公司轻松实现业务数字化。使用Vantiq构建的应用参与各种事件(物联网,移动,服务),将其与现有信息系统结合,然后使用规则,过程逻辑或ML算法等等进行操作。
-从物联网资源和企业资源获取数据、过滤数据并将其提供给自动化决策引擎的技术。关于如何把数据接入到Vantiq平台,可以参阅我的文章“Vantiq平台数据接口介绍”。
-实时分析数据并根据结果作出业务决策的决策引擎。
- 向设备发送控制信息,以及将自动化解决方案后续行动的决策和建议通知外部系统和用户的技术。管理自动化系统与负责人员之间协作的技术,以针对复杂情况制定最优响应。
大家如果想更多了解Vantiq平台,可以参阅我们的官方网站www.vantiq.com或www.vantiq.cn。另外,我们也有很多的文档给大家参阅。
总体说来,Vantiq平台具有以下在四个象限中的四个特点:
下面我们来分别针对上面的四个特点进行一一描述。
在Vantiq平台上,我们可以开发出实时的,以事件驱动的合乎用户需求的应用程序。不同于传统架构,在进入数据库前,VANTIQ就对数据进行实时的处理,并通过事件驱动业务响应。当然这些数据并不排除来自数据库中的数据更新。
传统的业务逻辑一般是由用户发起的用户驱动架构。这种架构通常是由用户发起(user-driven),然后把数据存入到服务器中,事后再有单独的用户界面来对存储的数据进行处理呈现或触发。所有的事情都是又数据库来进行协调。这种事件处理不具备实时性。
相比较而言,以事件为驱动(event-driven)的系统可以接受不间断的数据(具体视业务而言),每一个传入到Vantiq平台的数据都可被视为事件。Vantiq平台对这些事件开始进行实时的处理。这些数据甚至不需要从数据库中获取或存储,从而可以加快我们处理数据的速度。根据我们所定义的业务场景来进对事件进行逻辑处理,比如温度过高,需要反向调节,自动发出警报;病人的血压过高,需要自动呼叫医生;打通异构系统,把数据从一个系统经过相应的处理然后传入到另外一个系统等等。
使用Vantiq构建的应用具有可大规模扩展和响应的特性。Vantiq基于完全现代化的的反应式架构,能够实时处理越来越多的异步事件和数据流。Vantiq是基于集群部署的,具有高度的可拓展性。如果随着业务量的增加需要处理更多的事件,只需要添加更多的机器就形成更大的集群可以了。Vantiq也具有高可靠性。如果有集群中的一个Vantiq服务器或数据服务器不能正常工作,另外的服务器或数据库服务器会立即替代并开始正常工作,从而保证正常的业务不受影响。
由于Vantiq提供实时事件处理,我们可以甚至把Vantiq作为一个事件中台,把数字化转型的各个业务连接起来,特别是对于一些异构的系统。这种架构的好处是可以对每个子业务进行解耦。
不同的Vantiq实例可以通过任意的方式连接起来,从而组成为更大的系统。在Vantiq平台上开发的应用也可以部署到Vantiq里的任何一个节点上。
我们可以把每个Vantiq的实例按照我们喜欢的方式进行连接起来,这样变成一个更大的Vantiq系统。有时我们需要Vantiq实例靠近我们的设备或场地,我们可以在边缘设备上部署Vantiq实例,从而更快地响应事件并处理。由于是分布式部署,我们可以把一个应用的各个部分分布到不同的Vantiq实例中运行,从而让每个部分协同工作。比如边缘设备可以帮我们处理很多需要及时响应的事件,但是有些重要的事件,我们可以传到共有云来出发人工协同,数据存储等。
从部署的角度来说,我们可以在一个自己熟悉的云上开发的应用,直接通过Vantiq平台远程部署到相应的节点,从而不用到现场进行部署。甚至我们可以随时根据需求动态地重新部署及调整我们的应用。
在上图中可以看出,我们可以把一个应用的不同部分分别部署到Vantiq不同的节点中去。这里的 “store”及“factory”两个空间可以位于不同的Vantiq实例中。
Vantiq极大地提高了系统与人协作的技术水平。例如,如果检测到机器故障,Vantiq可以发起协作,分配,定位,跟踪,建议并向负责维修的技术人员或其他必要的人员提供实时动态。Vantiq是真正意思上的人工协同。Vantiq可以通过短信,邮件,消息推送等方式和用户进行互动协作。极大地支持用户和机器参与,以产生最佳的效果。
通过实时事件处理,结合业务场景和逻辑,实时地触发人机协同交互,让我们的事件及时处理。比如,客户下单时,仓库库存不够,需要自动触发人机交互提醒下订单购货。零售环境下的客户跟踪器,结合人脸识别,并为每个客户提供不同的购买产品的附加产品信息,从而提供最佳的用户体验。对于建筑行业,来说,如果每个环节的安排计划加起来超过预定的时间从而影响交付,自动触发人工协同。从而做到避免最后一刻的风险的发生。对于工业自动化,维修,车辆调度,我们可以通过Vantiq平台结合自己的业务在一定的条件下自动发出通知给附近的人员,并寻找最佳的人员来解决问题。
实时事件处理是难以实现的。很多人可能不认同这个观点,比如对一个事件流进行监控,并在规定的时间内求出一个平均值,并对这个平均值根据自己的业务需求进行判断及作出响应。很多人认为这是一件很容易的事通过C/S架构,数据库加上实时处理程序可以完全实现这个目的。但是随着业务的变化,复杂度的增加,我们的数据源可能会变得更多(比如以前一个传感器,现在变成十个或以上的传感器),数据之间的关联及综合逻辑判断会使得我们实现变得越来越复杂,有的甚至受到计算能力的限制,最终变成完全超出实现的可能。即便实现,后期的修改及维护也会变得极其复杂。 很多知名的企业尝试实现实时事件处理系统,但是有的最终无功而返。
下面是一个世界上非常著名的一个零售商的实时系统的实施方案:
我们可以看出来,这个系统需要几十种平台的拼接,甚至需要一个庞大的研发队伍,从架构,系统,软件,硬件,测试,研发,发布,开发工具,维护,各种技术平台的采购等等,这都是一笔非常大的开销,而且随着业务及软件的升级,可能带来的各种不兼容性,维护性,都是一个极大的挑战。
Vantiq作为一个PaaS系统,它提供一套完整的一站式的服务:开发,调试,部署及维护。你甚至不需要养一个庞大的团队来完成一个实时的系统。一个人,到两个人的研发团队就可以开发出一套完整的而且易于维护的实时应用。Vantiq平台提供了很多开箱即用的对实时事件处理的工具,通过拖拽的方式,简单的配置,就可以很快帮我们所需要的实时事件处理应用。通过Vantiq完成的应用,我们可以甚至根据自己的业务需求很快速地修改。这里的每一个工具都是经过反复测试,可靠的代码。
Vantiq的项目时这样的:
项目的所有resource的关联显示图:
运用APP BUILDER来创建我们的应用:
利用COLLABORATION BUILDER来构造人机交互的流程:
运用拖拽的可视化工具来创建移动端的H5应用。这个应用可以接受来自Vantiq平台的通知信息,客户端输入,人机交互等。
我们也可以利用可视化的工具来做一个Vantiq平台的浏览器应用。
可视化的工具,清晰的事件流及逻辑可以很方便地按照我们的业务流程设计我们的实时应用,并按照我们的需求在业务发生改变时快速地重构我们的应用。相比较而言,传统的设计每一个细小的改动,周期都可能会很长,毕竟整个系统需要重新验证,牵一发而动全身。
Vantiq平台提供的开发工具:
目前Vantiq平台的产品分为两个产品:modelo及pronto。
modelo及pronto这两个名字对于很多的人来说都是陌生的。简单地说,这两个平共有一个最基本的Vantiq平台服务层。对产品的定义来讲,pronto是一个事件brokers里的broker。它可以把各类信息都集中到Pronto,并深层加工,并重新发布。大家可以参照我之前录的视频“Vantiq Pronto简介”做进一步的了解。
modelo和pronto之间的差别也是明显的:pronto作为一个broker,除了它有一个catalog之外,它也有一个event manager可以对事件进行管理。它可以对事件建立app,并对它们进行处理,也可以结合多个事件源按照自己的业务需求生成新的事件,并发布为其它的微服务所使用。它和modelo的区别在于:它不能建立自己的数据表格(除了事件lodger之外),另外pronto不能建立自己的客户端(手机及网页),也没有提供给用户的collaboration builder。collaboration builder可以为我们的应用人机交互。
针对pronto和modelo的这些特点,我们可以这样来建立我们的应用或系统:
使用Vantiq的最大的好处就是,当我们业务刚开展的时候,可能只关注在某个或特定的应用上,但是当我们的业务变得越来越复杂时,我们可能需要一个更大的系统来支撑我们的业务,那么Vantiq很好地解决了我们需求。通过Vantiq平台,我们可以很方便地把各个子应用,子系统,通过Vantiq的pronto整合到一个更为灵活而强大的系统中去。
当然,Vantiq平台从根里设计就是分布式的。如果每个应用都是由Vantiq来实现的话,我们也可以直接通过federation来实现我们多个应用之间的通讯及协作。就像我在之前的那个分布式部署里所讲的。但是,使用 pronto的消息机制能更好地使我们的应用各自互相解耦,并为将来的业务的可拓展性打下更好的基础。
可能大家到这个时候,很想知道Vantiq的应用到底是什么样子的。一个实时的,事件驱动的Vantiq应用是这样的:
对Vantiq平台来说,许多的实时事件都可以接入到Vantiq平台之中。这些事件可以是物联网中的传感器的数据(比如温度,湿度,光感),或移动设备中的数据(比如位置,车辆设备中的CAN总线数据),或业务中产生的数据(比如销售订单信息),或监控设备产生的实时数据(比如电梯,生产线)等等。他们都可以通过一定的方式接入到Vantiq平台之中。如果大家想知道如何把这些数据接入到Vantiq平台中,可以参考我之前写的文章“Vantiq平台数据接口介绍”。
一旦这些数据接入到Vantiq平台中,我们就可以对这些实时的数据按照我们的规则进行处理了。这些数据甚至不需要存储到数据库中。一个典型的Vantiq事件处理流程是这样的:
这些部分的作用:
在上面的所有的流程中,Vantiq也可以在任何一个环节,把事件流处理后,并重新生成新的事件流。这些事件流可以被新的业务,或其它的业务所使用。通过事件的重新发布,对各个业务实现解耦,为未来的业务的重构带来极大的方便。
从上面我们可以看出来,外面的物理事件是Vantiq平台流处理的开始。在今天的文章中,我们来介绍一下如何把这些事件接入到Vantiq平台,并介绍了各种方法的优缺点。有的方法可行,但不是event driven。在本文中,为了细述的方便,我省去了网路gateway。
由于Vantiq是一个云平台,任何设备想接入到Vantiq平台,这个设备必须先具备连网的功能。