本发明专利涉及一种空间作业开发平台,尤其涉及一种基于网络的空间作业协作模式。
背景技术:
目前市场上用于dlg(数字线画地图)、dem(数字高程模型)、dom(数字正社影像图)、三维立体模型等生产的空间作业平台采用了一种单机作业模式或者基于局域网文件共享方式的协作模式,然而,这种/这些设计存在以下问题和缺点:
1.单机空间作业平台是各自基于预定空间范围作业生成在空间数据成果的模式,该模式要求作业结束后将空间数据成果文件导入同一工程进行接边任务,用以消除各个空间数据成果文件在空间范围边界上的坐标差异,增加了后续的工作量;
2.基于局域网文件共享协作作业平台是通过共同读取nas(网络附属存储)上的文件实现协作作业,该模式协作作业人数受限于nas上文件支持的共享读写的人数上限;
3.基于局域网的消息协作机制由于没有路由管理及消息转发控制,采用的是局域网消息广播方式,无法穿过路由器应用于互联网,且消息通道占用率高;
4.基于局域网文件共享协作作业平台由于没有中心节点,所以没有消息备份、回溯模式,导致异常恢复机制薄弱,缺少断网、断电、程序异常退出等异常问题的处理;
5.单机空间作业平台和基于局域网文件共享协作作业平台都会作业端位置有约束:单机空间作业平台只能在原机器上使用;基于局域网文件共享协作作业平台只能在局域网内使用;
技术实现要素:
为了解决上述问题,本发明专利提供了一种基于网络协作的空间作业开发平台,其目的在于,提供一种基于空间路由表的c/s模式网络协作模式,通过空间路由表实现客户端程序图幅(任务空间范围)之间的网络协作而非消息广播或者用户之间消息转发,服务端程序通过消息数据库、锁定信息数据库、工作空间数据库和hadoop超算平台来保证服务端程序的高可用性。
为实现上述目的,本发明提供的基于网络协作的空间作业开发平台是这样实现的:
1.在工程任务划分阶段,根据图幅(任务空间范围)在服务端生成该工程的空间路由;作业员领取任务时,根据领取的图幅,添加空间路由表的转发地址;
2.服务端由hadoop超算平台启动,当程序挂掉之后保证程序能重新启动,保证服务端程序的高可用性;
3.客户端的操作通过rpc协议(远程过程调用协议)发送到服务端,服务端将过程消息记录到消息数据库,并根据空间路由转发到对应的其他客户端;
由于本发明专利采用空间路由的c/s结构,从而可以得到以下有益效果:
1.网络协作模式让相邻图幅作业过程均可看到其他图幅的操作,可在作业过程中保证图幅边界坐标的一致性,减少接边工作,减少工作量。
2.由于采用了rpc协议协议,可在网络上进行消息转发,不再有连接客户端的数量和客户端登陆位置的限制。
3.客户端可根据空间路由表,按照空间范围将消息准确的转发到相邻图幅范围作业的客户端,而客户端不用知道相邻图幅的客户端地址。且由于空间路由表支持实时修改,让网络协作可以基于空间范围而非ip地址的灵活转发。
4.由于采用c/s模式,所以服务端支持断网重连,程序重启等异常恢复机制;服务端有消息记录功能,支持消息回溯等功能。
附图说明
图1为本发明专利的结构图;
图2为本发明专利的空间路由表结构图;
图3为本发明专利的客户端启动流程图;
图4为本发明专利的客户端空间作业的网络协作时序图;
图5为本发明专利的消息结构图;
图6为本发明专利的服务端异常恢复流程图;
以下结合附图对本发明专利做进一步详细描述。
附图1是本发明专利结构图;
具体实施方式
本发明专利的优选实施方式如下:
1.空间路由表生成
任务中心划分图幅生成任务,分配任务或者客户端领取任务时,将图幅名与该图幅相关的用户id管理,生成空间路由表。
当客户端开始空间作业,启动客户端程序,登陆rpc网络时,将用户id与ip对应上,最终完善了图幅名到转发用户ip的对应关系,完善了空间路由表。空间路由表结构如图2所示。
2.服务端启动
任务中心调用服务器hadoop超算平台启动服务器程序,服务器程序启动后向hadoop超算平台注册启动成功,定时发送心跳消息,当服务器程序心跳超时时,超算平台将会重启服务器程序,服务端程序启动后恢复现场,保证了服务端程序的高可用性。
3.客户端启动
客户端启动后需要向服务器请求初始的同步数据,具体流程如图3所示:
客户端程序启动后,客户端程序向服务器程序请求该作业图幅的相邻图幅信息,服务器程序访问空间路由表数据库,获取相关的图幅名;客户端程序收到相关图幅信息后,向服务器程序请求初始文件,收到初始文件后,客户端程序请求最新的协作消息,服务器程序根据初始文件同步后收到的消息返回客户端程序,保证客户端程序数据更新到最新。
4.空间作业网络协作
客户端空间作业的网络协作时序图如图4所示:
客户端程序将空间作业的消息通过rpc协议发送给服务器程序,服务端程序收到协作消息后将消息存储到消息数据库,存储成功则返回客户端消息发送成功;同时服务端程序将协作消息通过消息转发服务转发给相关的用户。协作消息结构如图5所示:
消息转发服务通过图幅id(mapid),查找空间路由表,找到消息需要转发的用户,最终找到用户的ip,实现根据图幅的消息转发。
5.服务器异常恢复机制
服务器异常恢复流程图如图6所示:
服务器程序宕机后hadoop超算平台由于服务器程序心跳超时重启服务器程序,服务器程序重启后先从工作空间数据库中获取数据恢复服务器程序宕机前打开的工作空间,然后从锁定信息数据库中恢复已锁定的对象到内存中,最后从消息数据中回滚消息处理到最新的协作消息,完成服务器程序宕机现场恢复过程。