-
Notifications
You must be signed in to change notification settings - Fork 2
Project Description
Coding Style is an important aspect in any collaborative software project. In order to prevent any issues, we have set up a coding style to be applied to all the software components written us. This coding style does not apply to any component that is not directly developed by us.
The important coding style rules are based on the official “Style Guide for Python Code”, available at the address http://www.python.org/dev/peps/pep-0008/.
Line width is 80 characters (with the possibility of extending this number in the future).
The directory structure used in the git repository is the following:
/docs/
articles
/reports/
/src/
client/
fuse-exporter
knowledge-modeller
storage/
dymanimc-storage
permanent-storage
common/
knowledge-balancer
multicast-manager
p2p-manager
The project target is to design and build an architecture of a collective knowledge based repository, implemented as a distributed file system. The knowledge is dynamically shared between the entities of the distributed system and it consists of either static or dynamic information provided by the hosts. The model provides support for concurrent data access and redundant storage of critical metadata.
The development team is composed of:
- Mircea BARDAC, PhD Student, Computer Science and Automatic Control Faculty, Politehnica University of Bucharest, email: cs@mirca.bardac.net
- George MILESCU, PhD Student, Computer Science and Automatic Control Faculty, Politehnica University of Bucharest, email: george.milescu@gmail.com
The Dycofs architecture is summarized in the following diagram:
The main modules are:
- Ensures host discovery based on local network multicast protocols
- Ensures host discovery outside the local network
- Provides a data access model for the information stored by the hosts. It can address the information from all the nodes, or only from part of them, based on a defined criteria.
- Provides information modeling based on:
- type
- presents persistent (static) data stored in the system
- presents non-persistent (dynamic) data stored in the system
- location
- presents information based on host
- presents information based the area where the host is located
- presents information based the system the host is included in
- type
- Ensures the storage and distribution of non-persistent (dynamic) data
- Ensures the storage and distribution of persistent (static) data
- Exports the data in a file hierarchy
Each component will have it’s own separate documentation section, in order to increase its re-usability.
The overall architectural design, implementation and results will be included in an article, that is to be written by the end of January 2009.
The project will have two main deliverables:
- an article, describing the overall architectural design, implementation and results
- the source code, binary files and a test campaign that performance of the proposed architecture
- FUSE (pyfuse)
- Zeroconf (pyzeroconf)
- Lots of Python
