research2: Draft architecture + figures
[swifty.git] / doc / research2 / src / arch.tex
index e69de29..1e16e6e 100644 (file)
@@ -0,0 +1,42 @@
+
+
+In this section we present our current architectural design along with the motivation of choices. We are also going to 
+detail our protocol and the packet structure used.
+
+In figure \labelindexref{Figure}{img:archov} we see the main conceptual modules: Application module, 
+wrapper library, peer discovery overlay and the swift transport protocol layer.
+
+\image[scale=0.4]{img/archov.png}{img:archov}{Overview architecture}
+
+The Application module represents the remaining part of the old swift implementation. This is the part that remains in
+user space and contains the file management and hash management features. 
+
+The wrapper library module defines a socket-like API for the user space applications. An regular program will use those
+calls instead of the normal socket ones to use the multiparty sockets. For the moment those calls are simulated system
+calls that initially are resolved with the socket raw implementation (still in user space) . 
+In the future this wrapper library will represent entry points into the kernel.
+
+The peer discovery overlay will remain unchanged. It is still going to work based on UDP sockets and link the same
+levels in the swift implementation as before. 
+
+The multiparty protocol is implemented for now by a user level socket raw layer. This has the advantage of simulating the
+real design modularization but also permit an easier debugging and testing procedure of the integration. In the next step
+this part will be represented by a kernel patch that will communicate through custom made system calls with the wrapper
+library. 
+
+\image[scale=0.5]{img/kernel.png}{img:kernel}{Detail architecture}
+
+\begin{comment}
+In this picture we try to define more which elements are in US and which are in KS. 
+In the first implementation we will make an US implementation for our protocol with raw socket to validate our architecture 
+and to make easier our kernel implementation that will communicate with this implementation.  
+
+Raw socket implementation will support all syscalls and it will be a copy of our kernel implementation. 
+This implementation will have the same API and behavior with kernel implementation. The peer discover will be in 
+Application implementation and it will be developer problems how to implement and how to manage it. 
+When you make a syscall you need to pass the ips where the protocol can find the specify hash 
+
+In the first implementation a swift socket will be available for only one operation transmit data or receive data.  
+In the last implementation the swift protocol will be develop in kernel space, and it will be accessible with a datagram 
+socket that will support all socket syscalls. It will intend to support both operations (receive/ send) data over only one socket.
+\end{comment}
\ No newline at end of file