350 likes | 454 Views
INFINI DRIVE. 044167 – Project A Spring, 2008. Guy Jacob Roee Shapiro. Project Supervisor: Hai Vortman Lab Chief Engineer: Dr. Ilana David. Agenda. Goal Project Objective Technologies InfiniDrive Architecture System Overview Layers Overview InfiniDrive Demonstration Future Plans.
E N D
INFINI DRIVE 044167 – Project A Spring, 2008 • Guy Jacob • Roee Shapiro • Project Supervisor: Hai Vortman • Lab Chief Engineer: Dr. Ilana David
Agenda • Goal • Project Objective • Technologies • InfiniDrive Architecture • System Overview • Layers Overview • InfiniDrive Demonstration • Future Plans
Final Goal • One logic drive with infinite storage space
Project Objective • Distributed Disk Application over the Internet. • Physical The physical part of the disk would be made from a number of disk fragments in different machines over the network which have different applications or protocol interfaces. Example for physical disks on the Internet could be: email accounts, ftp sites, peer-to-peer file sharing networks. • Logical The logical part will give the end user one logic disk which will be the size of the fragments sum. The application will give the end user one united interface for the logic disk and will hide all other different interfaces for the different physical disks.
Technologies • Application Tier • .Net Framework 3.5 (C#) • Database Tier • XML Serialization • Development Environment • Visual Studio 2008
Protocols • SMTP The objective of the Simple Mail Transfer Protocol (SMTP) is to transfer mail reliably and efficiently. When an SMTP client has a message to transmit, it establishes a two- way transmission channel to an SMTP server. The responsibility of an SMTP client is to transfer mail messages to one or more SMTP servers, or report its failure to do so • IMAP The Internet Message Access Protocol, allows a client to access and manipulate electronic mail messages on a server. IMAP4 permits manipulation of mailboxes (remote message folders) in a way that is functionally equivalent to local folders. IMAP also provides the capability for an offline client to resynchronize with the server.
Management System Overview Restore Point Files Database Internet SMTP Connection IMAP IMAP Physical Logical Account Database GUI
Management GUI Layer • Show local/remote file system • Show graphical indication for: • Transfer Status • Connection Status • Provide account management facilities • Add or remove accounts • Change priority • Provide InfiniDrive facilities • Create Restore Point • Refresh InfiniDrive Connection Physical Logical GUI
GUI – Class Diagram Windows Forms Classes Service Classes
Management Logical Layer • Manage virtual file system • Initiate Upload and Download flows • Build schemes holding logical limitations: • Upload scheme • Redundancy scheme • Scatter Data scheme • Invoking a controller for each thread • Each file is processed in a different thread Connection Physical Logical GUI
Logical – Class Diagram Logic Classes Data Structure Classes Service Classes
Management Physical Layer • Split files to fit the maximum attachment size • Add information to metadata header • Merge parts in to a single file Connection Physical Logical GUI
Physical – Class Diagram Logic Classes
Management Connection Layer • Manage clients database • Via IMAP: • Retrieve accounts properties • Retrieve InfiniDrive files • Via SMTP: • Send file parts to one or more accounts Connection Physical Logical GUI
Connection – Class Diagram Logic Classes Data Structure Classes Service Classes
Management Management Layer • OpenCM (Client Management) • Monitor accounts connection and respond to changes • Discovery • Discover and monitor InfiniDrive files • Build Download Assembly • Retrieve Restore Point Connection Physical Logical GUI
Management – Class Diagram Logic Classes Data Structure Classes Service Classes
Management Upload File - GUI Internet SMTP Connection IMAP IMAP Physical • Activated by mouse click or drag and drop • Pass folder tree or file to Logical Layer • Update Transfer and Status panes Logical GUI Database
Management Upload File - Logical Internet SMTP Connection IMAP IMAP • Check logical conditions (space, connection, …) • Assign account/s • Generate metadata header • Upon successful completion - Update Remote FS and DB Physical Logical GUI Database
Management Upload File - Physical Internet SMTP • Split files and build message with attachment • Complete metadata header Connection IMAP IMAP Physical Logical GUI Database
Management Upload File - Connection • Send each part to one or more accounts • Send new database files Internet SMTP Connection IMAP IMAP Physical Logical GUI Database
Upload File - Management Internet SMTP Connection IMAP Physical • Discover upload files • Update InfiniDrive file system • Update GUI Logical Management GUI Database
InfiniDrive Demonstration Upload Download User Account
Documentation Code documented using C# XML documentation. This documentation is compiled using SandCastle / DocProject creating user friendly help file
Future Plans • Add more protocols (today supports imap and smtp) • Add namespace shell extension • Encryption • Beat the Competition
Competition - livedrive • http://www.livedrive.com/
Competition - Gladinet • http://gladinet.com/
The End… Questions?