【发明内容】
本发明的目的在于提供一种使得高分辨图像可以及时快捷地显示在拼墙上面,并且对用户的操作快速响应的显示图像的方法。
为实现本发明目的,提供以下技术方案:
提供一种在拼墙上显示高分辨率图像的方法,其中该拼墙系统包括控制服务器、图像前端、显示端、图像索引服务器和图像存储服务器。
所述显示端由一台显示器或其他显示设备,和一台主机构成,用于显示高分辨率图像,每个显示端的主机逻辑上相互独立,在实际中可以为合并为更少的或者一台主机,显示端可以是无盘工作站,也可以是有盘工作站;在逻辑上显示端属于分布式显示系统,但在实际应用中可以将它合并为同一个显示端。该分布式显示系统是系统中出于性能考虑,一般使用多个显示端,组成分布式处理系统,分布处理图像的数据请求和显示。
所述控制服务器采用计算机,其配置和性能可以根据实际应用的需求而定,其主要实现用户对系统的操作与控制,对显示端、图像索引服务器、图像存储服务器和图像前端进行管理和控制。
所述图像索引服务器亦采用计算机,其配置和性能可以根据实际应用的需求而定,用于响应控制服务器的控制,管理图像存储服务器,管理图像存储服务器上面的高分辨率地图图像或图像块资源,响应显示端的高分辨率图像数据请求,即主要用于记录系统中的图像数据存储在哪些图像存储服务器上面,告知控制服务器在系统中拥有的图像资源,告知显示端所请求的图像块存储在哪些存储服务器上面等。所述图像索引服务器和控制服务器在逻辑上分离,实际中可以设置为同一台服务器。
所述图像存储服务器是由一台主机组成,显示器可有可无,但出于性能考虑,我们一般会在系统中使用多个存储服务器,组成分布式处理系统,分布处理图像的数据请求和显示。图像存储服务器用于存储系统中图像块的数据,响应显示端的图像数据请求,为显示端提供图像数据。在逻辑上图像存储服务器属于分布式图像存取系统,但在实际应用中可以将它合并为同一个图像存储服务器,出于性能考虑,一般会在系统中使用多个存储服务器,组成分布式处理系统,分布处理图像的数据请求和显示。所述图像索引服务器和图像存储服务器在逻辑上分离,实际中可以设置为同一台服务器。
所述图像前端为图像索引服务器和图像存储服务器实时提供分块图像信息和数据,或预先为图像索引服务器和图像存储服务器提供分块图像信息和数据,并让图像索引服务器和图像存储服务器存储这些图像块信息和数据,供用户随时使用。所述图像索引服务器和图像前端在逻辑上分离,实际中可以设置为同一台服务器。
本发明提供的在拼墙上显示高分辨率图像的方法包括以下步骤:
一种在拼墙上显示高分辨率图像的方法,该拼墙系统包括控制服务器、图像前端、显示端、图像索引服务器和图像存储服务器,该方法包括如下步骤:
(1)用户通过控制服务器操作打开图像命令;
(2)控制服务器向图像索引服务器请求该图像的详细信息,图像索引服务器向控制服务器反馈图像的详细信息;
(3)控制服务器成功收到图像索引服务器的反馈信息后,向显示端发送打开图像的请求,要求显示端显示图像;
(4)显示端根据请求内容计算出其需要请求图像的图像块组成,向图像索引服务器请求这些图像块的位置信息,图像索引服务器向显示端反馈图像块位置信息;
(5)显示端根据图像索引服务器反馈的位置信息,向图像存储服务器请求图像块,图像存储服务器向显示端发送图像块数据;
(6)显示端在接收到图像存储服务器发送来的图像块数据后,将图像块数据进行解码,将图像同步显示出来。
系统中,图像块数据有两种提供方式,一是由系统将要显示的图像预处理成图像块,然后存储到各存储服务器上面去;二是由图像前端实时提供图像块数据。用户可以通过控制服务器运用图像块分割技术先将图像前端的数据处理成图像块数据,并将这些图像块数据通过图像索引服务器调度,分布存储到各个图像存储服务器上。
系统初始化过程中,图像存储服务器向图像索引服务器注册,并告知图像索引服务器其拥有哪些图像的哪些图像块和这些图像的一些信息(如图像的名称、简介、图像的总的宽高、图像块的宽高等信息);图像索引服务器向控制服务器注册,告知控制服务器当前系统中有哪些可用的图像资源;显示端向控制服务器注册,得到该显示端在拼墙显示端矩阵中的位置和当前拼墙的相关信息(如当前显示图像的缩放比例、显示的图像范围等),同时获得图像索引服务器的位置(IP地址等)。
该图像索引服务器向控制服务器反馈的图像信息包括如图像的总宽高、图像块宽高等;该控制服务器向显示端发送的图像信息包括如图像显示缩放比例、显示图像范围、图像块位置等信息。
显示端收到控制服务器发送的打开图像的请求后,根据请求内容中的图像的总宽高、图像块宽高、拼墙显示的图像的范围和该显示端在拼墙显示端矩阵中的位置,计算出其需要请求图像的哪些图像块(注:在整个拼墙中,各显示端拥有相同的屏幕分辨率);显示端根据上一步的计算结果,向图像索引服务器请求这些图像块的位置信息(这些图像块分别存储在哪些图像块上面);图像索引服务器根据显示端的请求,向显示端反馈图像块位置信息,告知显示端其所请求的那些图像块存储在哪些图像存储服务器上面;显示端根据图像索引服务器反馈的位置信息,向图像存储服务器请求图像块;图像存储服务器在接收到显示端的图像块数据请求的时候,向显示端发送图像块数据;显示端在接收到存储服务器发送来的图像块数据后,将图像块数据进行解码,应用图像显示同步技术将图像显示出来。
显示端都尽可能多地缓存或保存其有可能马上就要用到的图像块,因此其在响应用户的“移动”、“比例尺切换(如果要显示的高分图像是地图)”、“缩放”等操作时,可以直接在缓存中或自身文件系统中获取到其所需要的图像块,而无需再向图像索引服务器请求图像块数据。
以上步骤对于显示“预存储的图像”完全适用,但对于“实时图像”的显示,需要注意的是,用户在图像前端操作图像的时候(比如移动图像),图像前端会将用户的操作(如向左移动了多少像素)告知控制服务器;控制服务器在收到图像前端发送的实时图像的操作请求(比如向左移动100个像素)时,会将拼墙显示的该幅实时图像的信息(如显示的图像范围)更新,然后将新的实时图像信息(如图像的显示范围、图像前端的IP地址等)发送给显示端;显示端在收到控制服务器发送来的新的实时图像信息的时候,会重新计算所需请求的图像块数据,并向图像前端请求所需的图像块数据;图像前端在收到显示端发送的图像块数据请求之后,会将相应的图像块数据计算出来,并发送给显示端;显示端在收到图像块数据之后,会将图像块数据进行解码,并显示出来。
用户可以在图像的特定位置打开热点资源,例如我们可以在拼墙中,点击某幅高分辨率地图中的路口A处的摄像机,便弹出监视视频窗口供我们查看路口A的交通状况;我们还可以在建筑物B处点击按钮,弹出对建筑物的详细介绍对话框。
用户除了可以看到自己电脑屏幕上的一些画面,还可以通过拼墙查看其周围的图像画面;用户还可以通过一个可变大小的矩形选择框在地图缩略图上选择想要查看的区域,并在拼墙上显示;用户还可以用矩形选择某个具体的范围加以放大或切换比例尺(如果要显示的高分图像是地图),观察该区域的详细信息等。
与现有技术对比,本发明具有以下有益效果:
本发明采用了分布式处理的方法,它使得图像数据在网络中的传输和显示更加快捷,对用户操作的响应更加及时和流畅。系统中每个显示端自动计算并请求自己显示所需的图像块,每个图像存储服务器独立响应显示端的图象数据请求,使得该方法对图像数据的传输和显示更加快捷;同时每个显示端都尽可能多地缓存或保存其有可能马上就要用到的图像块,因此其在响应用户的“移动”、“比例尺切换(如果要显示的高分图像是地图)”、“缩放”等操作时,可以直接在缓存中或自身文件系统中获取到其所需要的图像块,而无需再向图像索引服务器请求图像块数据,这一方面减轻了网络负荷,另一方面缩短了对用户操作的响应时间,再加上用户可以通过简易快捷的操控方式选择所要观察的区域或查看某区域的更加详细的地图,该发明使得对用户操作的响应更加及时和流畅。
【具体实施方式】
本发明中的拼墙系统包括控制服务器、图像前端、显示端、图像索引服务器和图像存储服务器,请参阅图6。本发明在拼墙上显示高分辨率图像的方法包括如下步骤:
(1)用户通过控制服务器操作打开图像命令;
(2)控制服务器向图像索引服务器请求该图像的详细信息,图像索引服务器向控制服务器反馈图像的详细信息;
(3)控制服务器成功收到图像索引服务器的反馈信息后,向显示端发送打开图像的请求,要求显示端显示图像;
(4)显示端根据请求内容计算出其需要请求图像的图像块组成,向图像索引服务器请求这些图像块的位置信息,图像索引服务器向显示端反馈图像块位置信息;
(5)显示端根据图像索引服务器反馈的位置信息,向图像存储服务器请求图像块,图像存储服务器向显示端发送图像块数据;
(6)显示端在接收到图像存储服务器发送来的图像块数据后,将图像块数据进行解码,将图像同步显示出来。
图像块数据存储在图像存储服务器上面,图像块数据来源于图像前端,或由系统管理员通过控制服务器向图像存储服务器存储图像数据,图像索引服务器拥有全部的图像资源信息。
请参阅图7本发明系统操作流程图,系统在初始化后,用户动感控制端发出操作命令,控制端则在收到命令后进行处理,将相关的命令和拼墙信息等发送给显示节点和索引服务器;显示端、索引服务器分别根据控制端的请求进行相应的处理,存储服务器同时根据索引服务器的请求和显示端的请求进行相应处理。
存储服务器上的图像块数据通过以下方式进行更新:
(a)首先,图像前端的数据发生变化(或图象索服务器和图像存储服务器不存在某幅地图,图像前端就需要向图像索引服务器和图像存储服务器发送这幅地图的数据);
(b)图像前端告知控制服务器哪些图像块数据发生了改变;
(c)控制服务器告知图像索引服务器哪些图像块数据发生了改变,让图像索引服务器去获取新的图像块数据信息;
(d)图像索引服务器经过计算,告知图像前端需要将哪些图像块分别发送到哪些图像存储服务器上面去;
(e)图像前端根据图像索引服务器发送过来的信息,将相应的图像块数据发送到相应的图像存储服务器上面去;
(f)图像存储服务器接收完图像块数据之后,会向像图像索引服务器报告已经成功接收了哪些图像块;这样,图像索引服务器可以随时知道哪些图像块已经传输完毕,哪些图像块还没有传输完毕;
(g)图像索引服务器在所有的图像块数据都已经传输完毕的时候,告知控制服务器图像块数据已经更新完毕;
(h)控制服务器收到图像索引服务器发送过来的更新完毕消息后,就会通知显示端去更新相应的图像块数据;
(i)显示端向图像索引服务器请求图像块数据,图像索引服务器会告知显示端去哪个图像存储服务器获取相应的图像块数据,然后显示端就去该图像存储服务器获取图像块数据;
(j)显示端在成功更新图像块数据之后,便会将相应的图像块重新显示;
(k)至此,图像的更新和同步显示即已完成。
图像中可能存在“热点”(热点可以简单理解为其它资源的一个链接),当鼠标滑过“热点”时,拼墙就要给用户相应的提示;当鼠标点击“热点”时,拼墙就要在特定的位置打开并显示相应的资源。
当用户在图像前端操作的时候,会在图像前端打开其他“热点”资源,为了保证图像前端的显示和拼墙保持一致,图像前端就需要向控制服务器申请打开相应的“热点”资源。
“热点”资源的打开与显示步骤如下:
(a)控制服务器向图像前端实时报告鼠标的位置;
(b)图像前端根据控制服务器报告的鼠标位置,判断当前位置是否存在“热点”。如果存在“热点”,就告诉控制服务器该“热点”资源的相关信息;
(c)如果是用户直接在图像前端打开一个“热点”资源,图像前端就告诉控制服务器该“热点”资源的相关信息;
(d)控制服务器在收到图像前端发送过来的“热点”资源信息的时候,就告知图像索引服务器去获取相应的“热点”资源数据;
(e)图像索引服务器根据控制服务器发送过来的“热点”资源信息,经计算之后,告诉图像前端应将“热点”资源数据发送到哪个图像存储服务器上面去;
(f)图像前端根据图像索引服务器发送过来的相关信息,将“热点”资源数据发送到相应的图像存储服务器上面去;
(g)图像存储服务器接收完“热点”资源数据的时候,就会向图像索引服务器报告“热点”资源数据已经接收完毕;
(h)图像索引服务器在接收到图像存储服务器发送过来的“已接收完毕”消息的时候,就会向控制服务器报告“热点”资源数据已经接收完毕;
(i)控制服务器在接收到图像索引服务器发送过来的“已经接收完毕”的消息后,就会告知显示端去获取相应的“热点”资源数据,并将其显示出来。
为了使图像的移动、缩放、比例尺切换(如果要显示的高分图像是地图)等动作的响应更加流畅,我们就需要在显示端上面缓存尽可能多的可能用到的图像块。我们可以预申请当前显示端正在显示的图像块的周围一圈的图像块,并且申请前面一个比例尺和后面一个比例尺的相应图像块数据,缓存在显示端的内存中。由于内存容量有限,我们可以采用一些机制来从内存中删除一些不必要的图像块,如果显示端有本地硬盘,我们已可以将那些需要从内存中删除的图像块先保存到本地硬盘,再从内存中删除,这样,显示端在申请图像块数据的时候,就可以预先查询本地是否保存有相应的图像块,如果有的话,就直接从硬盘中读取,而无须再向图像索引服务器申请。
为了提高图像存储服务器的图像块存取命中率,一般会将图像前端的图像保存到图像存储服务器的硬盘中去,这样,当显示端向图像存储服务器申请某个图像块数据的时候,图像存储服务器就可以先查询本地是否保存有相应的图像块数据,如果有的话,就无需再向图像前端申请,这样既可以减轻网络负载,又可以提高图像存储服务器的图像块命中率。
在一般情况下,我们会将整幅的高分图像画面保存到图像存储服务器上面去,但有些图像大至几个TB,一下子在将这么大的数据发送到图像存储服务器保存下来,一是会需要比较长的时间,造成用户等待,二是会增加网络负载。因此,我们可以采取一些措施将拼墙需要显示和即将要显示的那些图像块数据发送到图像存储服务器上面去,而那些剩下的图像块可以在网络空闲的时候、或者是需要用到的时候,再从图像前端发送到图像存储服务器保存下来。这样,既平衡了网络负载,又比较好地解决了显示端的图像块命中率问题。
所述拼墙系统中控制服务器、图像前端、显示端、图像索引服务器和图像存储服务器这些模块之间的联系以及工作原理结合附图如下所述:
请参阅图1,本发明中的控制服务器的工作流程图,图中方框之间的“粗线”表示设备之间的信息交互,图中所有的设备都位于互通的网络之中。
在启动控制服务器的进程的时候,控制服务器根据用户输入参数初始化分布式显示系统的显示端矩阵的规模(M*N)和显示端的IP顺序,并初始化图像显示的缩放比例(默认1:1)和图像显示的初始位置(默认从整幅图像的左上角开始显示),并创建通信通道监听和响应其他系统设备的请求。
控制服务器接受显示端的注册,先获取显示端的通信通道信息,将其保存下来,而后将该显示端在显示端矩阵中的位置(m,n)、拼墙的信息(显示端的矩阵规模、显示缩放比例等)和“注册成功/失败”信息反馈给显示端。控制服务器接受图像索引服务器的注册,先获取图像索引服务器的通信通道信息,将其保存下来,而后将“注册成功/失败”的消息反馈给图像索引服务器。控制服务器接受图像前端的注册,先获取图像前端的通信通道信息,将其保存下来,而后将“注册成功/失败”的消息反馈给图像前端。
控制服务器与显示端的交互发生在以下几种情况:
(a)控制服务器要求显示端开始显示图像。
此种情况下,显示端就会向控制服务器请求将要显示的图像的名称、拼墙中显示的图像在整幅图像中的位置(相对于整幅图像左上角的偏移和图像的宽高)、图像显示的比例尺(如果要显示的高分图像是地图)、缩放比例等一系列信息,然后显示端根据这些信息计算出其应显示和预先申请的图像块,再然后就向图像索引服务器请求相应的图像块数据。
(b)控制服务器告知显示端新的缩放比例和新的偏移。
此种情况一般发生在用户对图像进行缩放和移动的时候。
(c)控制服务器告知显示端要显示的新的比例尺(如果要显示的高分图像是地图)。
此种情况一般发生在用户切换比例尺(如果要显示的高分图像是地图)、或观看局部地区的其他比例尺图像的时候。在该种情况下,显示端向控制端申请新比例尺图像的信息(要显示的图像相对于整幅地图的偏移和图像的宽高),然后根据之前获取的拼墙信息(矩阵规模、缩放比例、该显示端在矩阵中的位置等)计算其应显示和预先申请的图像块,如果这些图像块在本地没有保存,就向图像索引服务器申请所要的图像块数据。
(d)控制服务器告知显示端关闭显示或关机。
此种情况一般发生响应用户操作的时候。用户需要关闭显示或关闭显示端。
(e)控制服务器告知显示端有哪些图像块数据发生了更新。
此种情况一般发生在图像前端的地图图像发生改变(图像操作员随时可以在图像前端对图像进行编辑)的时候。在这种情况下,显示端首先判断这些图像块是否是自己所需的图像块,如果是,则向图像索引服务器申请相应的新的图像块数据并显示。
(f)控制服务器告知显示端打开新的图层资源。
此种情况一般发生在图像前端打开新的资源(如某幅高分地图中某地的摄像头监控画面等),控制服务器告知显示端,以便让显示端的显示和图像前端保持一致。
控制服务器与图像索引服务器的交互一般发生在以下几种情况:
(a)控制服务器向图像索引服务器申请某个名称的图像的详细信息。
此种情况一般发生在用户需要打开一幅图像或切换比例尺(如果要显示的高分图像是地图)的时候。用户根据控制服务器提供的图像名称、比例尺信息和图像缩略图、图像简介等信息,选择一幅地图进行显示,此时,控制服务器就要向图像索引服务器申请该幅图像的详细信息(整幅图像的宽高、图像块的宽高)。
(b)图像索引服务器向控制服务器回馈其所申请的图像的详细信息。
(c)图像索引服务器告知控制服务器所要更新的图像块已经更新完毕。
此种情况一般发生在图像前端的图像发生改变(用户随时可以在图像前端编辑图像)的时候。当图像存储服务器成功更新图像块之后会向图像索引服务器报告“已成功更新了哪些图像块”,图像索引服务器根据这些信息便可以判断是否所有的需要更新的图像块已经更新完毕,当更新完毕的时候,图像索引服务器通知控制服务器“图像块已经更新完毕”。
控制服务器与图像前端的交互一般发生在以下几种情况:
(a)控制服务器向图像前端实时报告鼠标在拼墙中的位置。
通过控制服务器实时地向图像前端报告鼠标在拼墙中的位置,图像前端便可向控制服务器反馈当前鼠标所在的位置是否有其他图层资源(如摄像机画面等)和图层资源的类型等信息,实现图层资源跟踪技术。
(b)图像前端根据控制服务器报告的鼠标位置,向控制服务器反馈当前鼠标所在的位置是否有其他图层资源(如摄像机画面等)和图层资源的类型。
(c)图像前端向控制服务器申请打开其他图层资源。
用户在图像前端操作的时候,也可以在图像前端就地打开其他图层的资源,为了将图像前端的操作和拼墙显示进行同步,图像前端就要向控制服务器报告“要开辟什么样的资源,新资源显示的位置及占用的窗口大小等”,随后,控制服务器就要向图像索引服务器发出命令,让图像索引服务器协调图像前端和图像存储服务器之间的数据传输。
(d)图像前端地图图像发生变化的时候。
由于用户可以在图像前端随时编辑图像,为了保持图像前端和拼墙显示的同步,图像前端就要将图像发生变化的消息发送给控制服务器,然后控制服务器将该消息发送给图像索引服务器,让图像索引服务器协调图像存储服务器和图像前端之间的数据传输。
请参阅图2,为本发明中的显示端的工作流程图。
1.首先初始化显示端内部的资源(如一些系统变量等),创建并监听通信通道。
2.显示端向控制端注册,以及将控制端注册反馈信息保存。
显示端向控制端发送注册请求,控制端根据该显示端的IP为其返回相应的矩阵位置(m,n)和拼墙信息(矩阵规模(M*N)、缩放比例等),显示端将这些反馈信息保存,以便计算图像块的时候使用。如果该显示端的IP未在控制端初始化的时候注册过,即该显示端不是拼墙中的一个节点,则控制服务器为其反馈“失败”信息。
3.显示端监听通信通道,获取请求/命令/信息。
其他设备对显示端的控制都是通过通信通道间的通信进行的。显示端通过监听其通信通道,便可获取系统的控制信息和相关数据。
4.显示端处理来自控制服务器的请求。
与控制服务器的交互一般发生在以下几种情况:
(a)控制服务器要求显示端开始显示地图。
此种情况下,显示端就会向控制服务器请求将要显示的图像的名称、拼墙中显示的图像在整幅图像中的位置(相对于整幅地图左上角的偏移和图像的宽高)、图像显示的比例尺(如果要显示的高分图像是地图)、缩放比例等一系列信息,然后显示端根据这些信息计算出其应显示和预先申请的图像块,再然后就向图像索引服务器请求响应的图像块数据。
(b)控制服务器告知显示端新的缩放比例和新的偏移。
此种情况一般发生在用户对地图进行缩放和移动的时候。
(c)控制服务器告知显示端要显示的新的比例尺。
此种情况一般发生在用户切换比例尺(如果要显示的高分图像是地图)、或观看局部地区的其他比例尺图像的时候。在该种情况下,显示端向控制端申请新比例尺图像的信息(要显示的图像相对于整幅地图的偏移和图像的宽高),然后根据之前获取的拼墙信息(矩阵规模、缩放比例、该显示端在矩阵中的位置等)计算其应显示和预先申请的图像块,如果这些图像块在本地没有保存,就向图像索引服务器申请所要的图像块数据。
(d)控制服务器告知显示端关闭显示或关机。
此种情况一般发生响应用户操作的时候。用户需要关闭显示或关闭显示端。
(e)控制服务器告知显示端有哪些图像块数据发生了更新。
此种情况一般发生在图像前端的地图图像发生改变(GIS地图操作员随时可以对GIS地图进行编辑)的时候。在这种情况下,显示端首先判断这些图像块是否是自己所需的图像块,如果是,则向图像索引服务器申请相应的新的图像块数据并显示。
(f)控制服务器告知显示端打开新的图层资源。
此种情况一般发生在图像前端打开新的资源(如某地的摄像头监控画面等),控制服务器告知显示端,以便让显示端的显示和图像前端保持一致。
5.显示端处理来自图像索引服务器的请求。
与图像索引服务器的交互一般发生在以下几种情况:
(a)显示端向图像索引服务器请求图像块的信息。
在此种情况下,图像索引服务器一般会返回给显示端“去哪个图像存储服务器”获取图像块数据。
(b)显示端向图像索引服务器报告获取图像块出错信息。
此种情况一般发生在显示端向图像存储服务器申请图形块数据失败时。
6.显示端处理图像存储服务器的相关信息。
与图像存储服务器的交互一般发生在以下情况:
显示端根据图像索引服务器返回的“向哪一台图像存储服务器获取图像块数据”,向相应的图像存储服务器获取图像块数据。
7.显示端处理图像前端的相关信息。
与图像前端的交互一般发生在以下情况:
显示端根据控制端发送给它的新的实时图像的信息(如显示的范围、缩放比例等)计算出新的需要请求和显示图像块,并向图像前端申请图像块数据;图像前端在接收到显示端的这个请求后,会向显示端发送相应的图像块数据。
请参阅图3,为本发明中的图像索引服务器的工作流程图。
1.首先初始化图像索引服务器的相关资源,创建并监听通信通道,并等待所有的图像存储服务器向图像索引服务器注册完毕,根据图像存储服务器发送来的注册数据,整理出图像存储服务器拥有的图像资源的总的信息并保存。
2.图像索引服务器向控制端注册,并发送其掌握的图像资源信息(地图名称和比例尺等)。
3.图像索引服务器处理控制服务器的请求/命令。此种情况一般发生在以下情形:
控制服务器要求图像索引服务器“打开”某幅图像,在这种情况下,图像索引服务器一般会向控制服务器返回该幅图像的相关信息(图像的总的宽高、图像块宽高等)。
4.图像索引服务器处理显示端的请求,与显示端的交互一般发生在以下几种情况:
(a)显示端向图像索引服务器请求图像块的信息。
在此种情况下,图像索引服务器一般会返回给显示端“去哪个图像存储服务器”获取图像块数据的信息;
(b)显示端向图像索引服务器报告获取图像块出错信息。
此种情况一般发生在显示端向图像存储服务器申请图形块数据失败时。在此种情况下,图像索引服务器会去相应的图像存储服务器测试出错的图像块,如果测试失败,就要求该图像存储服务器重新向图像索引服务器注册。
5.图像索引服务器处理图像存储服务器的请求,此种情况一般发生在以下几种情形:
(a)图像存储服务器重新向图像索引服务器注册,该种情况一般发生在图像存储服务器和图像索引服务器之间的通信连接中断,或图像索引服务器要求图像存储服务器重新注册。
图像存储服务器向图像索引服务器注册的时候,一般携带有“该图像存储服务器拥有哪些地图图像的哪些数据块”的信息。
图像索引服务器在接收到图像存储服务器注册请求时,会将其发送的相关图像块信息保存并归纳起来。
(b)图像存储服务器的数据反馈。
此种情况一般发生在图像索引服务器要求测试某个图像块是否存在于某个图像存储服务器上面时。
当显示端从图像存储服务器获取图像块信息失败时,会向图像索引服务器报告“在某个图像存储服务器上获取某个图像块出错”。此时,图像索引服务器就会向图像存储服务器发出图像块测试请求,测试图像块是否真的存在于该图像子节上,如果存在,就返回,否则,就让该图像存储服务器进行重新注册。
(c)图像存储服务器向图像索引服务器汇报已获取到的新的图像块。
此种情况一般发生在图像前端图像发生变化(用户可以随时在图像前端编辑地图)的时候。当图像前端图像发生变化的时候,图像索引服务器会告诉图像前端将发生改变的数据块发送给哪个图像存储服务器,然后图像前端便根据这些信息向相应的图像存储服务器发送数据,当该图像存储服务器成功接收到这些新的图像数据块的时候,就会向图像索引服务器报告它已经成功接收到了哪些图像数据块,以便让图像索引服务器从全局上掌握所有需要更新的图像块是否全部已经更新完毕。
6.图像索引服务器处理图像前端的请求。
此种情况一般发生在以下几种情形:
(a)图像前端向图像索引服务器发送数据时,图像前端一开始就会将当前操作的地图数据发送给图像索引服务器,图像索引服务器就会检测是否有必要重新获取这幅图像(检查图象存储服务器子节点上面是否存在有这幅地图,如果没有,就需要向图像前端重新获取。
(b)图像索引服务器告诉图像前端往哪个图像存储服务器发送数据,为了提高网络I/O性能,本方法中采用了“分布式”存储方法,一幅地图的图像块被分散到了不同图像存储服务器上面,因此在图像前端向图像存储服务器发送数据之前,图像索引服务器就会告诉图像前端将哪些图像块发送到哪些显示端上面去。
请参阅图4,为本发明中的图像存储服务器的工作流程图。
1.图像存储服务器向图像索引服务器注册。该步骤主要完成图像存储服务器的资源初始化,并向图像索引服务器注册,同时向图像索引服务器发送“该显示端有哪些图像的哪些图像块”。
2.图像存储服务器处理来自图像索引服务器的请求,此种情况主要发生在以下情形:
(a)来自图像索引服务器的测试请求和重新注册的请求。
当显示端从图像存储服务器获取图像块数据失败的时候,会向图像索引服务器报告错误:“从哪个图像存储服务器获取哪个图像块数据发生错误”。图像索引服务器收到这个错误报告的时候,就会测试该图像块是否存在于该图像存储服务器,如果存在,则直接返回,如果不存在,则要求图像存储服务器重新向图像索引服务器注册。
3.图像存储服务器处理来自显示端的请求,与显示端的交互一般发生在以下情况:
显示端根据图像索引服务器返回的“向哪一台图像存储服务器获取图像块数据”,向相应的图像存储服务器获取图像块数据,图像存储服务器收到这个请求时,就会将相应的图像块数据发送给显示端。
4.图像存储服务器处理来自图像前端的请求,此种情况一般发生在图像前端图像发生变化(用户可以随时在图像前端编辑地图)的时候。当图像前端图像发生变化的时候,图像索引服务器会告诉图像前端将发生改变的数据块发送给哪个图像存储服务器,然后图像前端便根据这些信息向相应的图像存储服务器发送数据。
请参阅图5,为本发明中的图像前端的工作流程图。
1.初始化系统资源,图像前端向控制服务器注册,以便让控制服务器对图像前端进行管理。
2.图像前端与控制服务器进行交互,此种情况主要发生在以下情形:
(a)图像前端告知控制服务器“图像前端地图图像已经发生变化”,当图像前端地图图像发生变化的时候,为了使图像前端的图像和拼墙的图像显示保持一致,图像前端就要向控制服务器报告“地图图像已经发生变化”。改种情形适用于:
(1)用户在图像前端编辑图像致使图像发生改变;
(2)图像前端要打开一幅地图,但图像索引服务器上没有这幅地图的相关记录、图像存储服务器上没有这幅地图的相关数据,此时图像前端就要将整幅地图的图像数据分块发送给图像存储服务器和图像索引服务器。
(b)图像前端向控制服务器报告“需要打开新的图层资源”,此种情况主要发生在以下情形:
(1)用户在图像前端操作,需要打开新的图像资源(例如打开某地的摄像机监控画面)。此时,为了保持图像前端和拼墙显示的同步,图像前端就需要向控制服务器报告“需要在什么位置打开什么样的图层资源”;
(2)用户的鼠标在拼墙上面移动时。由于图像中可能存在热点(热点可理解为图像中其他资源的一个链接),控制服务器就需要实时向“图像前端”报告拼墙鼠标的位置,以便让“图像前端”判断当前鼠标所在的位置是否存在一个热点,是否有必要给出提示(鼠标滑过热点时,系统应给出提示),是否需要打开资源以及打开哪个资源(鼠标点击热点时候,应打开该热点链接的资源,并在拼墙上面显示)。
3.图像前端与图像索引服务器进行交互,此种情况主要发生在图像前端需要存储新的图像数据时。
当图像前端图像发生改变时,图像前端需要将发生变化的新的图像块数据发送给图像存储服务器,此时图像前端就要向图像索引服务器请求“将新的图像块发送给哪个图像存储服务器”,并且需要图像索引服务器对这些新的图像块信息进行管理。
4.图像前端与图像存储服务器进行交互,此种情况主要发生在图像前端需要存储新的图像数据时。
图像前端除了用于向显示端提供实时图像数据之外,有时还需要将新的图像数据存储起来,以便日后使用。图像前端为了存储这些新的图像数据,就要先向索引服务器请求“将新的图像块数据存放在哪些存储服务器上面去”,当成功接收到索引服务器的反馈后,便将新的图像块数据发送到图像存储服务器上面存储起来。
以上所述仅为本发明的较佳实施例,本发明的保护范围并不局限于此,任何基于本发明技术方案上的等效变换均属于本发明保护范围之内。