论文部分内容阅读
数码相机、摄像机、智能拍照手机的普及产生了海量的数码照片文件和视频文件。通常这些文件都被分散存储在用户的多台电脑、数码相机、手机、甚至社交网络里。面对分散存储的大量图像文件,个人用户需要专门的软件来管理这些图像文件,而不是简单地将图像文件集中到一台电脑上使用文件夹来组织它们。传统的图像文件管理系统通过将分散存储在多台设备上的图像文件复制到一台装有图像管理软件的设备上或者上传至Web,然后进行集中的照片管理。但是将分散存储的图像文件集中管理的模式会带来一些问题,包括网络带宽的浪费,存在单一失效点,无法离线访问,系统的可伸缩性弱等。为了解决这些问题,本文设计了一个新型分布式图像管理系统,使得用户可以高效、便利地对分散存储在各种设备上的图像文件进行管理。该系统包括用户接口管理器、虚拟图像库管理器,元数据同步管理器,图像分享管理器,消息总线,工作流引擎组件,图像文件存储管理器,图像文件解析器插件,RDF数据库访问插件等。本文设计并实现的系统具有以下的特点和优势:高可用性:通过将构成虚拟图像库的元数据在同一个用户的各个节点间复制使得用户可以在任一节点上访问虚拟图像库,即使节点处于离线状态。并且由于采用的是乐观复制技术,部分节点处于离线或网络分区状态不会阻碍其他节点之间的复制。性能:首先,以对等体系结构组织用户节点使得图像文件分布存储在每个节点上,从而将对单一节点的图像文件访问请求的负载分布到多个用户节点上。其次,在对等体系结构中,节点间的文件请求仅当用户所请求的图像文件不在本地节点时才发生,这从源头上减少了文件请求的次数。再次,通过P2P的方式完成对存储在远端节点上文件的请求后,文件将被缓存在本地节点以此减轻重复请求所带来的成本。最后,由于同一用户的每个节点上都通过乐观复制方式持有描述该用户虚拟图像库的元数据,这也在提高可用性的同时改善了对元数据访问的性能。可伸缩性:首先,用消息路由器组件和网关组件将本地节点上的内存消息队列分布式图像管理系统的设计与实现网络和节点间XMPP网络粘合在一起构成消息总线,这保证了底层系统通信基础设施具有XMPP即时通信网络所提供的地域可伸缩性。其次,各个用户节点间以对等的方式协作,这样使得系统可以具有很好的规模可伸缩性。易用性:描述图像库的元数据在同一用户的不同节点间的同步是由部署在各个节点上同步管理器组件使用乐观复制的方式协作完成的,整个过程对于最终用户或客户应用程序是透明的。另外,节点间的P2P文件传输和缓存对于用户和客户应用程序同样是透明的。可修改性:系统通过使用配置文件来定制系统行为。并使用依赖注入的方式实现插件的加载,提高系统的可修改性。另外对于一些容易变化的业务,系统采用BPEL来定义业务流程。良好的可修改性保证系统可以部署在不同计算能力的平台上。通过基于本文设计的系统平台所开发的一个客户应用程序验证了本系统的主要功能,并对一些关键系统服务进行了性能测试。