View
214
Download
0
Tags:
Embed Size (px)
Citation preview
Guy Jacob Roee Shapiro
044167 – Project ASpring, 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
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
SMTPThe 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
IMAPThe 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
AccountDatabase
Connection
Physical
Logical
GUI
IMAP
SMTP
Management
IMA
P
Restore PointFilesDatabase
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
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
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
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
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
IMA
P
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
IMA
P
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
IMA
P
Upload File - Physical
Internet
Database
Connection
Logical
GUI
IMAP
SMTP
Physical
Split files and build message with attachment
Complete metadata header
Management
IMA
P
Upload File - Connection
Internet
Database
Physical
Logical
GUI
ConnectionIMAP
SMTP
Send each part to one or more accounts
Send new database files
Upload File - Management
Internet
Database
Physical
Logical
GUI
ConnectionIMAP
SMTP
Management
Discover upload files Update InfiniDrive file
system Update GUI
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