Guy Jacob Roee Shapiro – Project A Spring, 2008 INFINI DRIVE 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: 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.
System Overview Internet Account Database Connection Physical Logical GUI IMAP SMTP Management IMAP Restore Point Files Database
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 Management
GUI – Class Diagram Windows Forms Classes Service Classes
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 Management
Logical – Class Diagram Logic Classes Data Structure Classes Service Classes
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 Management
Physical – Class Diagram Logic Classes
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 Management
Connection – Class Diagram Logic Classes Data Structure Classes Service Classes
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
Management – Class Diagram Logic Classes Data Structure Classes Service Classes
Management IMAP Upload File - GUI Internet Database Connection Physical Logical GUI IMAP SMTP Activated by mouse click or drag and drop Pass folder tree or file to Logical Layer Update Transfer and Status panes
Management IMAP Upload File - Logical Internet Database Connection Physical GUI IMAP SMTP Logical Check logical conditions (space, connection, …) Assign account/s Generate metadata header Upon successful completion - Update Remote FS and DB
Management IMAP Upload File - Physical Internet Database Connection Logical GUI IMAP SMTP Physical Split files and build message with attachment Complete metadata header
Management IMAP Upload File - Connection Internet Database Physical Logical GUI Connection IMAP SMTP Send each part to one or more accounts Send new database files
Upload File - Management Internet Database Physical Logical GUI Connection IMAP SMTP Management Discover upload files Update InfiniDrive file system Update GUI
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
Documentation – Preview
Future Plans Add more protocols (today supports imap and smtp) Add namespace shell extension Encryption Beat the Competition
Competition - livedrive
Competition - Gladinet
The End… Questions?
Upload
InfiniDrive – Internal View
Download
User Account