thought-works: Object Oriented design for a cloud based file storage system like SkyDrive
The typical characteristics/requirements of a cloud storage system:
1) They are essentially file hosting services
2) Allow users to register/sign in
3) Allow registered users to buy more storage
4) Allow users to access/upload/delete the files on the cloud
5) Interact with a Distributed file system to store/delete/retrieve the files on the cloud
Read full article from thought-works: Object Oriented design for a cloud based file storage system like SkyDrive
The typical characteristics/requirements of a cloud storage system:
1) They are essentially file hosting services
2) Allow users to register/sign in
3) Allow registered users to buy more storage
4) Allow users to access/upload/delete the files on the cloud
5) Interact with a Distributed file system to store/delete/retrieve the files on the cloud
From the above description of the system, the main components of the system to be built are:
1) SkyDriveController-> Main controller of the system. Allows user interaction with the system
2) DFSController-> Stores the file in the cloud and also allows access/deletion
3)OperationValidator -> performs validations before allowing user interactions with SkyDrive
4)StorageSpaceAllocator -> allocates extra space for users who want to but space
Lets put down the use cases in visual form:
Above use cases describe the user actions and the corresponding system side actions. Now lets move to the Class diagram to see how the different components inter operate: