| |
Based on the
architecture of the system the project has been split into four different
Modules, namely
Server management Module:
|
The Functionalities of this
module are as follows
|
To maintain particulars of
Clients that are currently active in the network
|
|
To allow a client to register
itself to the Server
|
|
To update all clients about any
registering or removal of client from the network
|
|
|
The Server Management Module consists of a
centralized server which runs a RMI Registry to bind itself to the clients.
The RMI Registry is implemented using an interface called ClientRegister
and a class called ClientRegisterImpl. The Server is implemented using
the class CrossXServer. When the server is active, it starts the RMI
Registry in it and binds the Remote object ClientRegister so that when a
client needs to establish a connection with the server it may look up the
remote object and bind itself to the server. The Server informs the number of
active clients to the new client through a function called
registeredsystems() that can be looked up in the remote object. The Server
then updates the arrival or removal of any client to all other active clients
periodically.
|
Authentication Module:
|
The functionalities of this module are
|
To create new Users for Remote Clients
|
|
To do remote system authentication before
entering into the other machine based on the user list maintained in the
server |
|
To delete or do other operations on the
users list maintained on the server
|
|
|
The Authentication Module facilitates the creation of users for different
systems and allows user creation only from the Server through the default user
name “Admin” which is supposed to be the administrator of the system. This
restriction of user creation only form the server adds to the security and
avoidance of illegal users from entering into the system. The details needed
for user creation are the User Name, Password, Description and the IP address
of the client to which the user belong to. |
|
The Password is being encrypted by using the MD5 (Message Digest) Crypto
Algorithm which simply digests the password using a salt like function. The
User information are being stored in the server in the form a text file, to be
neutral for all the heterogeneous platforms. |
|
The authentication module is implemented using the following classes namely
User for creation of users,
PasswordUtility for encrypting the
password using MD5 and AuthenticateUser for remote authentication from
server
|
Event Module:
|
The Functionalities of this module are
|
To Contact the client systems and place a
request for the access of the files when an call event occurs in the
local machine |
|
To perform Copy, Cut, Delete, Rename, and
other operations on the remote or local files |
|
To map a file to its appropriate
application in the local machine |
|
|
The Event module is used to trigger all the
events that will execute the different file manipulation logic as needed.
Once the active clients list is obtained form the server and a particular
client is selected in the client window, the client must now establish
connection between itself and the selected client. This is also done by
using RMI Registry i.e. all the client binds a remote object to be looked up
by the other clients. The local client looks up the remote object of the
remote client system and establishes connection between them. This is
facilitated by the Interface ClientAcceptor and the
Class Client AcceptorImpl. The Client is being implemented using a
CrossXClient Class.
|
|
The GUI (Graphical
user Interface) is implemented using the class
ClientOpenFrame which consists of the Files
Panel and the Folders Panel. The other dialogs such as copying, Property,
Copy Progress and Login window are implemented by the
classes CopyToDialog,
PropertyWindow,
ProgressDialog and LoginWindow respectively. The mapping of
the file to an appropriate application is being implemented in the
FilesPanel class. |
|
The Copying and Moving to operations are performed by establishing a
separate connection between the source and the destination clients by the
interface
FileHandle
and class
FileHandleImpl. The file manipulation
operations are being implemented in the class
FilehandleVO |
Hand Over Module:
|
The Functionalities
of this module are
|
To transfer the information of the files
requested by another client system in the format of XML Data. |
|
The Hand Over module in the client system gets the XML data from the remote
system and parses it using the SAX (Simple API for XML) Parser to get the
appropriate file information |
|
|
The main function of the Hand Over Module is
the handling of the File information from Different Systems. The Hand Over
module is used to retrieve the file information in the form of Extensible
markup Language (XML) data both from the local machine and the remote machine.
The main Classes used to implement the hand over module are
FileSystemDAO and
FileSystemFactory. The FileSystemDAO is the class that creates the XML data
from the File information and on the other end the XML information is parsed
back using an XML parser called SAX (Simple API for XML) to get back the
original file information. The FileSystemFactory is used to avoid the direct
access of the FileSystemDAO. |
|
The XML information constructed from the file
information consists of tags and attributes as follows
|
|