Smyshlёnye停止





今天我们有一个不寻常的机会与habrosoobschestvom分享我们的经验。这不是什么秘密,大部分是我们创建了一个现场“虚拟”世界中的项目和产品,我们不能总是被追溯到开始,我们所做的一切工作,在现实生活中的结束。

这个项目,这是我们想告诉你,我们有一个代码,并有点搞笑的名字“Smyshlёnye停止。”
Smyshlёnye停止



那么,什么是 - 在城市的“H”的是建立一个跟踪系统基于传感器的GLONASS数据移动涌向中心调度服务在从这些相同的传感器报告源源不断形式的城市交通。我想放置在液晶面板上的停止,将显示时间和内容上的车辆运行路线到达。

这个想法听起来很简单,并实现这一切都没有 - 路线的时间表,路线本身,从他们的传感器和信息,站,车,发表在飞行中的坐标。此案为小 - 收集这一切在人堆里,开始工作。

这就是我们今天要告诉大家的协议与传感器通信,我们达到铁的智能站的装配和显示一个工作原型在展会TECHNOPROM 2014

让我们先从系统的基本架构,然后再在细节。

Smyshlёnye停止

收集实时数据目前还没有单独的系统或运营数据的标准。在使用不同的格式和内容的分发数据的方法不同,不同供应商的不同城市。目前,我们面临着两个:通过TCP和REST API提供程序上的端数据的传输

包的一个例子,我们对TCP
<前>&LT;代码&GT; D·00287; 190614; 034452; 5628.0000; N; 8457.8226,E; 0; 272; 123; 12; gosnum:3:379,民:3:3巨魔&LT; /码&GT; < / PRE>
 包的REST API
的例子 <前>&LT;代码&GT; {&QUOT;网络&QUOT; :[{&QUOT; deviceHash&QUOT; :0558132541,&QUOT;名称&QUOT; :&QUOT;巴士H564VE96&QUOT;,&QUOT;时间戳&QUOT; :1384710565,&QUOT;纬度&QUOT; :50.65,&QUOT;经度&QUOT; :60.56,&QUOT;速度&QUOT; :43.5,&QUOT;当然&QUOT; :120.1,&QUOT; SATS&QUOT; 8,QUOT;路线&QUOT; :&QUOT; 021总线&QUOT; },...]}&中尉; /码&GT;
 格式和内容包:
  • 在设备ID 的命名和标识TA - 。数TC和车辆类型上映时间的数据经纬度< /
  • 速度。当然。卫星的数量。该航线的ID沿该车辆。所有这些数据被用在预测算法。
    考虑两种选择接收数据。

    角色和职责listnera:
    • 获取从提供“原始”的数据。分析和处理数据的系统理解的格式。从行,或JSON的POJO。转发接收到的POJO数据JMS在预定的话题。故障转移。为了确定获得来自供应商或物理交通不便listnera数据问题,听者应该发送ping包JMS。保存POJO解析在一个单独的数据库之后。保存原始数据到一个漫长的一周。此机构由以能够累积的算法统计是最小的。在系统的使用寿命假定完成和裁缝的算法,并能够检查变化的算法中,我们存储数据。他们知道怎么打积累了更改后的算法的统计和评估。  在TCP的情况下,我们指定的主机和端口,并将数据提供者发送数据包到该主机。然后,它出自于我们的监听TCP通道。

      我们作为TCP listnera Netty的一个基础。这是非常容易使用和运行稳定。在REST API的情况下,我们所使用的客户Jsoup,这民意测验API计时器。

      听者本身,与指定主机,端口和设置JMS和数据库的能力,一个控制台应用程序。

      工作listnera的过程:
      • 在获取数据与TCP或定时器时,REST API 分析字符串或JSON的,创造一流NavigationPackage的对象的情况。发送NavigationPackage到JMS 保存NavigationPackage数据库。发送ping包的JMS(对象类PingPackage)。

        其结果是每30秒,我们填补了我国关于车辆(以下简称TC)的实际动作信息数据库。

        什么,我们需要了解发生了什么与怎么回事?
        1。分段路线。
        2.协调站。


        我们把这些路线,并停止GIS系统的,对待它们以这样的方式,以获得分段路由

        好了,现在我们知道谁,是怎么回事,所以现在是时候开始构建的预测。但在此之前,办理了出院的数字扯远了。

        为了获得它是如何工作显示数字更好的手感: