| The popularity of digital cameras, camcorder, and smart camera phones generates a large number of digital image files and video files. Usually these image files are dispersedly stored in desktops, mobile phone, and even social networks. So specialized softwares are needed for managing all of these image files rather than the approach of putting together in folders managing in one PC.What traditional image files management systems are doing is to copy image files distributed across several devices into one device on that image file management software is running, or upload the image files into Web, then manage the image files centrally. However, the ways to manage image files centrally bring a number of issues, for example, the waste of bandwidth, single point of failure, offline access, weak scalability etc. To solve the issues, we design a distributed image file management system allowing users to efficiently and conveniently manage image files distributed across several devices. The system is composed of user interface manager, virtual collection manager, metadata synchronization manager, share manager, message bus, workflow engine handler, image file manager, image type handler, RDF metadata access handler etc. The system is designed and implemented with the following advantages.High availability: replicating the virtual image collection across all nodes of a user enable the user access virtual collection on any node, even if the accessing node is offline. And because of optimistic replication is adopted, part of offline nodes or network partition will not block the replication.High performance: firstly, peer-to-peer system architecture makes image files distributed on each node, so that image file requests to one node are spread across several nodes. Secondly, in peer-to-peer system structure, image file request only happen when the requested image file is not in local node, so this way the number of requests will be reduced. And after completion of image file transfer, the file will be cached on the local node to reduce cost caused by repeated requests. Finally, virtual image file collection held in each node of a user by replication also improves performance as well.Strong Scalability: firstly, message router and gateway connect the inner-node local memory queue network and inter-node XMPP network to construct a message bus, which make sure communication infrastructure have a strong geographically scalability provided by XMPP network. Secondly, peer-to-peer system architecture has a good scalability in the number of user.High Usability: virtual collection replication is performed by sync managers on each node coordination, and whole process is transparent to end user or client application. In addition, p2p file transfer and caching also be transparent for user.High Modifiability: Systems customize business behavior by using configuration file. And loading plug-in with dependency injection also improves system modifiability. In addition, for those volatile business logics, BPEL is used to define workflow. And the high modifiability can make sure system can be easily port to different platform.Finally we use a client application developed based on API provided by the system to validate major features of the system, and also run performance against the three major services of the system. |