0% found this document useful (0 votes)
106 views37 pages

Software Requirements Specification Distributed File System

This document provides a software requirements specification for a distributed file system. It outlines the purpose, scope, and functions of the system. The system will allow clients to upload files that will be encrypted, split into multiple chunks, and distributed across other clients for storage. The uploading client will have a key to decrypt and download the file. The document defines requirements for system components like the server and clients. It describes functional requirements for uploading, downloading, and common file operations. Non-functional requirements around performance, security, and quality are also specified. User interfaces, stored file attributes, and example workflows are documented through tables, diagrams, and descriptions.

Uploaded by

Nupur Aggarwal
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views37 pages

Software Requirements Specification Distributed File System

This document provides a software requirements specification for a distributed file system. It outlines the purpose, scope, and functions of the system. The system will allow clients to upload files that will be encrypted, split into multiple chunks, and distributed across other clients for storage. The uploading client will have a key to decrypt and download the file. The document defines requirements for system components like the server and clients. It describes functional requirements for uploading, downloading, and common file operations. Non-functional requirements around performance, security, and quality are also specified. User interfaces, stored file attributes, and example workflows are documented through tables, diagrams, and descriptions.

Uploaded by

Nupur Aggarwal
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 37

Software Requirements Specification

For

Distributed File System

Prepared By Aarshi Taneja(10104666) Akshit Bansal(10104669) Nupur (10104676) Rajat Bhatia (10104773)

Proposed To Mr. Sandeep Kumar Singh

Date 24 Nov, 2012


th

Software Requirements Specification for DFS

Page ii

Table of Contents
1. Introduction ........................................................................................................1
1.1 Purpose ........................................................................................................................................ 1.2 Scope ........................................................................................................................................... 1.3Glossary........................................................................................................................... 1.4 References................................................................................................................................... 1.5 Overview ..................................................................................................................................... 1 1 1 2 2

2. Overall Description .......................................................................................... 3


2.1 Product Perspective.......................................................................................................................3 2.2 Product Functions..........................................................................................................................3 2.2.1 Server...................................................................................................................................... 3 2.2.2 Normal Users ( client)............................................................................................................. 4 2.3 Operating Environment................................................................................................................. 4 2.4 User Characteristics....................................................................................................................... 5 2.5 Design and Implementation Constraint ........................................................................................ 5 2.6 Assumptions and Dependencies ....................................................................................................7

3. Specific Requirements...................................................................................... 8
3.1 Functional Requirements ...............................................................................................................8 3.1.1 Server...........................................................................................................................................8 3.1.2 Normal User(Client).................................................................................................................... 9 3.1.3 Common Functions ................................................................................................................... .9 3.1.4 UML Diagrams......................................................................................................................... .10 3.1.4.1 Use Cases................................................................................................................................ 10 3.1.4.2 Class Diagrams........................................................................................................................11 3.1.4.3 Sequence Diagrams........................................................................................................................12 3.2 Non-Functional Requirements ......................................................................................................20 3.2.1 Performance Requirements.........................................................................................................20 3.2.2 Safety Requirements...................................................................................................................20 3.2.3. SecurityRequirements................................................................................................................20 3.2.4 Software quality attributes .........................................................................................................21 3.2.5. Error Handling....... 21

4. Interfaces and Possible Scenarios .................................................................. 22


4.1 Startup Interface............................................................................................................................ 22 4.1.1 Registration Interface................................................................................................................. 23 4.1.2 Login Interface........................................................................................................................... 23 4.2 Client Interface............................................................................................................................. 24 4.3 Command Prompt and Server Interface.........................................................................................25 4.4 Client folders................................................................................................................................. 26 4.5 Downloading The File....................................................................................................................28

5. Stored Items........................................................................................................ 31
5.1 Original file.....................................................................................................................................31 5.2Encrypted File................................................................................................................................. 31 5.3Split File.......................................................................................................................................... 31 5.4.Key File.......................................................................................................................................... 32 5.5File To Download............................................................................................................................ 32

5.6.Downloaded File............................................................................................................................. 32
Software Requirements Specification for DFS Page iii

LIST OF TABLES
Table 1 Table 2 Table 3 Table 4 Table 5 Table 6 Attributes Saved About original file.................................................... 31 Attributes Saved About Encrypted File................................................ 31 Attributes Saved About Split File......................................................... 31 Attributes Saved About Key File.......................................................... 32 Attributes Saved About File To Download ........................................... 32 Attributes Saved About Downloaded File.............................................. 32

Software Requirements Specification for DFS

Page iv

LIST OF FIGURES
Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Startup Interface.................................................................................... 22 Registration Interface............................................................................ 23 Login Interface...................................................................................... 24 Client Interface...................................................................................... 25 Command Prompt and Server Interface ................................................ 26 Client folders.......................................................................................... 27 Client folders.......................................................................................... 28 Downloading The File........................................................................... 29 Downloading The File........................................................................... 30

Software Requirements Specification for DFS

Page 1

1. Introduction 1.1 Purpose


The purpose of this document is to describe the distributed file system on cloud computing. This document contains the functional and non-functional requirements of the project. This document contains the guidelines for website developers system engineers and designers to start working the project.

1.2

Scope
This product is provides facility to the clients to upload the file and split it within other clients. This distribution of file into multiple chunks would help to reduce the load on the system. The splitting is done by server. Also, for security purpose, the client who uploaded the file has the key to access the file and hence can download it. The project is specifically designed for the use of file upload and download. The product will work as a complete user interface for file upload and download from ordinary users. Distributed file system project can provide a free easy-to-use system for uploading and downloading the files. At one time, it can deal with many clients and many files.

1.3 Glossary
Term Client Server Distributed IEEE Definition the user who uploads/downloads the file. System handling the splitting function and connecting the clients to one another. A file is splitted into small chunks Institute of Electrical and Electronics Engineers

Software Requirements Specification for DFS

Page 2

1.4 References
[IEEE] The applicable IEEE standards are published in IEEE Standards Collection, 2001 edition.

1.5 Document overview


In the following sections, the requirements for the new system are described. This document is organized such that functional requirements are detailed in Section 3, and non-functional requirements can be found in Section 4. The requirements are described by use cases, providing a view of the high level functionality of the system from the users perspective.

Software Requirements Specification for DFS

Page 3

2. Overall description 2.1 Product Perspective


The new system is a custom client/server application. The system is to be a fully functional Uploading, splitting, downloading system that collects the files uploaded by the client and automates splitting of the file into multiple chunks making it a distributed file system. The chunks are distributed among all the clients attached to the server at that time. The servers computer system hooks up the clients and become an integrated system that feeds into proprietary software that collects and stores the data (files/chunks). For the purposes of this SRS, these systems will be referred to simply as Server.

A valid chunk number is provided to the chunk (for eg. The chunks of file1 will be names ad file1.1,file1.2), after which the number of copies made or sent are transmitted via the network to the server where it stores the file and its chunks after splitting it. A valid key must be selected in order to download the file. The system can then calculate the number of chunks created and transferred. The data is collected and stored within the Servers own software which is fully JAVA compliant. The information will be queried by the custom application at regular user defined intervals, and recorded in the appropriate client accounts in the system. The custom application that is the subject of this SRS will handle all aspects of uploading, splitting and downloading for the client, with an interface.

2.2 Product Functions


2.2.1 Server Server should be able to create a connection among the clients and itself. should register a new client according to the port number and ip address of the server.

Should be able to recognize all the connected clients.


Software Requirements Specification for DFS Page 4

should receive the file uploaded by the client and encrypt it successfully. should be able to split the file into the chunks and it should know the number of chunks it created. should be aware about all the folder paths. should distribute the chunks between the connected clients successfully and send a key to the client who uploaded the file. should be able to collect back all the distributed chunks and simultaneously delete them from the clients space. should merge the chunks decrypt the file successfully send the file to the client who requested for the same allow other clients to upload and download the file should be able to delete a client can remove the connection between itself and the client can exit. 2.2.2 Normal Users (Client) The member should be able to login into the main window. The member should be able to register his username and the password which is used later for logging into the main window. The member should be able to register themselves with the server and create a connection between them. Members are given the option to upload, download the file. Members can look into their computers directories for uploading a file. Members can download a file by selecting the key. Members can edit, modify, delete and open the downloaded file at the respective location.

2.3

Operating Environment
Windows Operating System: The server is currently running Windows 2000 and it is assumed that this is the operating system the software must run on. The client software will run on Windows 98 or higher for the desktops.

Software Requirements Specification for DFS

Page 5

2.4

User Characteristics
The skill set of the users of this software is varied. The main user, the server acts as a administrator who has the knowledge about networking system and distributed file handling. The other user is the client who has the knowledge to use this software. He/She has been using a computer for the past ten years and is a competent user of Windows programs and the Windows operating system.

. Most, but not all, of the clients level of comfort varies with computer, but all are at least familiar with the functionality standard among Windows programs. The client may have a high school education, some with a year of college, but no degrees. They are all comfortable with the Windows operating system and standard Windows program functionality. Administrators of the system should have more knowledge of internal modules of the system and are able to rectify small problems that may arise due to disk crashes, power failures and other catastrophes. Friendly user interface, online help and user guide must be sufficient to educate the users on how to use this product without any problems or difficulties.

2.5 Design and Implementation Constraints


This subsection will specify the constraints placed on design that will limit the development options of the system. Hardware Limitations This system must be designed and built to run within the confines of the current hardware and technology. The only exception to this is the purchasing another hard drive for the server to serve as a redundant disk backup for the system. The design requires one system acting as a server and one or more acting as a clients system. The following table represents the hardware and systems currently in existence:

Software Requirements Specification for DFS

Page 6

Item Operating system Processors RAM capacity Hard Drive

Desktops Windows 98 Pentium II 400 or higher 64MB RAM or higher 10 GB or More

Server Windows 2000 Pentium 4 512MB

Item Operating system Processors RAM capacity Hard Drive

Desktops Windows 98 Pentium II 400 or higher 64MB RAM or higher 10 GB or More

Client Windows 2000 Pentium 4 512MB

Interfaces to other applications The new system must provide an internal interface to the client for purposes of uploading and downloading the data collected and stored by that system. The information of all clients username, password, the number of clients connected at a time, the uploader, file name, file size must be stored in a database. Users may access software from any computer that has the java platform. Users must have their correct usernames and passwords to enter into their accounts and do actions. The server and the client, both should be aware about all the folder paths. Criticality of the application - This application is considered to be critical software as defined by IEEE Std 610.12-1990 (Standard Glossary of Software Terminology) as follows: Software whose failure could have an impact on safety, or could cause large financial or social loss. However, the Law Society has set strict guidelines on the storage of law firm data, as well as the traceability of uploading and downloading of file. The data, as well as the uploading and downloading of file logs must be stored for a minimum of seven years. While this may seem like only an archival issue, any loss of information from a system crash or malfunction is considered critical by GGA. It is critical that no data be lost. It must therefore be considered a critical design priority to ensure the integrity of the data. Functionality of the system that is not related to data storage can be considered as less than critical.

Software Requirements Specification for DFS

Page 7

2.6

Assumptions and Dependencies


These factors are not design constraints on the software, but rather assumptions on which the requirements have been based. Any changes to these assumption affect the requirements stated herein. If these assumptions are not true, these requirements cannot be considered valid. For this reason, the requirements are said to be dependent on these assumptions. The following assumptions have been made about the system. Windows Operating System: The server is currently running Windows 2000 and it is assumed that this is the operating system the software must run on. The client software will run on Windows 98 or higher for the desktops. JAVA platform to run the software. The success of this system depends on Existence of java and command prompt in all the computers involved with the software. Are clients comfortable with computers and have enough conation to work with the product? java interface must be friendly and easy-to-use. The uploading, downloading, splitting, file transfer, distribution, merging, encryption and decryption mechanism should be simple and fast.

Software Requirements Specification for DFS

Page 8

3. Specific Requirements 3.1 Functional Requirements


3.1.1 Server Prerequisite server folder path, encryption folder path,port number should be correct for all requirements below: Title Register Description This action is done to register and start the server. Title Register clients Description This action is done to add new clients to the network by socket computing. Title Receive uploaded file Description This action is done to receive the file uploaded by the client. Title Encryption Description This action is done to encrypt the received file. Title Splitting Description This action is done to split the encrypted file uploaded by the client into the chunks. Title Distribution Description This action is done to distribute the chunks among the clients connected with the server at that time. Title Sending a key Description This action is done to send a key to the client which client can select to download the file.The download option is only available to the one who uploads the file. Title Collecting the chunks Description This action is done to collect back all the distributed chunks when the client requests to download the file.

Software Requirements Specification for DFS

Page 9

Title Merging Description This action is done to merge the collected chunks. Title Decryption Description This action is done to decrypt the merged file. Title Send the file Description This action is done to send the file after decryption, to the client who requested for it. Title Exit Description This action is done to exit from the servers interface. 3.1.2 Normal User (client) Title Login Description This action is done to let the client enter into the main clients interface if the username and the password is correct. Title Registration Description When new user enters the software for the first time then he has to register. Title Upload Description This action is done to upload the file. Title Download Description This action is done to download the file. Title Exit Description This action is done to exit from the clients interface. 3.1.3 Common Functions Title Register Description This action is done to register themselves. Title File Transfer Description This action is done to transfer file.

Software Requirements Specification for DFS

Page 10

Title Exit Description This action is done to exit from the interface.

3.1.4

UML DIAGRAMS

3.1.4.1 USE CASE

Software Requirements Specification for DFS

Page 11

3.1.4.2 CLASS DIAGRAMS

class SplitFile

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
CommRWBufferMemory buffer :byte ([]) RWMemory -

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial:BufferMemory Version([]) EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg - buffers eop :boolean
interface NamingAlgorythm cursor :int freeBuffers :int reading :boolean writting :boolean maxSize :int {readOnly} size :int SplitFileEvent + + + + + + + CommRWBufferMemory(int) getBuffer() :byte[] getMaxSize() :int getSize() :int isEOP() :boolean setEOP() :void setSize(int) :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg + getOutputFile(long) :File
+ init(File, long) :ErrorSplittingEvent

+ getReadMemory() :BufferMemory EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg + getWriteMemory() :BufferMemory -nameAlg + releaseReadMemory() :void

-memory + releaseWriteMemory() EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version:voidEA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg + RWMemory(BufferMemory, BufferMemory) -memory -memory

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
Observable ErrorSplittingEvent

RunnableEA 9.3 Unregistered Trial Version EA 9.3+ Unregistered EA 9.3 Unregistered Trial Version Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg FILE_EMPTY :int = 5 {readOnly} FileWrite Observable FileRead + FILE_IS_DIRECTORY :int = 3 {readOnly} + FILE_NOT_FOUND :int = 4 {readOnly} + + + + + + + + + INTERNAL_ERROR1 :int = 10 {readOnly} INTERNAL_ERROR2 :int = 11 {readOnly} INTERNAL_ERROR3 :int = 12 {readOnly} IOEXCEPTION_READING :int = 6 {readOnly} IOEXCEPTION_WRITTING :int = 7 {readOnly} NOT_EXISTING_FILE :int = 2 {readOnly} NOT_READABLE_FILE :int = 1 {readOnly} reason :int SPLITFILE_SMALLER :int = 8 {readOnly} SPLITTING_CANCELLED :int = 9 {readOnly}

chunkSize :long Runnable EA 9.3- Unregistered fileName :String Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg EA-- 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version chunkWrite :long StartSplittingEvent currentChunk :long file :FileOutputStream memory :RWMemory nameAlg :NamingAlgorythm sendWriteEvents :boolean thisChunkSize :long thread :Thread write :long ChunkCreatedEvent constRead :long file :FileInputStream memory :RWMemory read :long sendReadEvents :boolean thread :Thread - chunkSize :long - fileSize :long - nChunks :long + + + + +

ReadEvent WriteEvent EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered - chunkSize :long Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered - fileNameTrial :String Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg - fileName :String - nChunk :long + + + + FinishOpEvent - bytesRead :long - fileRead :boolean StopSplittingEvent - bytesWritten :long - fileWritten :boolean

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
~ + ~ + + + ~ endAnyOp() :void + FileRead(FileInputStream, long, RWMemory) FileWrite(RWMemory, NamingAlgorythm, long, long) + run() :void getOutputFile() :FileOutputStream + startReading(Observer, boolean) :void -fileWrite run() :void + stopReading() :void startWritting(Observer, boolean) :void -fileRead stopWritting() :void writeFile(byte[], int, boolean) :ErrorSplittingEvent ChunkCreatedEvent(String, long, long) getFileName() :String getFileSize() :long getSequenceNumber() :long + getBytesRead() :long + isFileRead() :boolean + ReadEvent(long, boolean) + getBytesWritten() :long + isFileWritten() :boolean + WriteEvent(long, boolean) getChunkSize() :long getFileName() :String getFileSize() :long getNumberOfChunks() :long StartSplittingEvent(String, long, long, long)

~ endAnyOp() :void Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg EA 9.3 Unregistered Trial Version EA 9.3 Unregistered + ErrorSplittingEvent(int)

getError() :int EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3+ Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg + getFileName() :String + reasonToString(int) :String

setFileName(String) Trial :void Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3++ Unregistered toString() :String

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
Observable

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg Observer
FileSplitter error :boolean fileRead :FileRead fileSize :long fileWrite :FileWrite fis :FileInputStream memory :RWMemory nChunks :long

- constBlockLength :int = 65536EA {readOnly} EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
~ finishWait() :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg ~ InitFileSplitter(String, long, NamingAlgorythm) :ErrorSplittingEvent
+ split(String, long, NamingAlgorythm, boolean) :void + stopSplitting() :void ~ waitToFinish() :void -splitter

+ update(Observable, Object) :void EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3Observer Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
ListChunks

chunks :Vector EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial-- Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg splitter :FileSplitter

getChunks() :Enumeration EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial++Version EA 9.3 getNumberOfChunks() :intUnregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg + ListChunks(FileSplitter) + update(Observable, Object) :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

Software Requirements Specification for DFS


class SplitFile

Page 12

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un
interface

BufferMemory EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un
-buffers

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un
ErrorSplittingEv ent + + + + + + + + + + + + FILE_EMPTY :int = 5 {readOnly} FILE_IS_DIRECTORY :int = 3 {readOnly} FILE_NOT_FOUND :int = 4 {readOnly} fileName :String INTERNAL_ERROR1 :int = 10 {readOnly} INTERNAL_ERROR2 :int = 11 {readOnly} INTERNAL_ERROR3 :int = 12 {readOnly} IOEXCEPTION_READING :int = 6 {readOnly} IOEXCEPTION_WRITTING :int = 7 {readOnly} NOT_EXISTING_FILE :int = 2 {readOnly} NOT_READABLE_FILE :int = 1 {readOnly} reason :int SPLITFILE_SMALLER :int = 8 {readOnly} SPLITTING_CANCELLED :int = 9 {readOnly}

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un CommRWBufferMemory
RWMemory buffers :BufferMemory ([]) cursor :int freeBuffers :int reading :boolean writting :boolean buffer :byte ([]) maxSize :int {readOnly} size :int

eop :boolean EA 9.3 Unregistered Trial Version EA 9.3 - Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 +Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un CommRWBufferMemory(int)
+ + + + getReadMemory() :BufferMemory + + + + getBuffer() :byte[] getMaxSize() :int isEOP() :boolean setEOP() :void releaseReadMemory() :void releaseWriteMemory() :void RWMemory(BufferMemory, BufferMemory) -memory -memory -memory

EA 9.3 Unregistered Trial Version EA 9.3 +Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un + getWriteMemory() :BufferMemory getSize() :int

+ ErrorSplittingEvent(int) EA 9.3 Unregistered Trial Version EA 9.3 +Unregistered setSize(int) :void Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un + getError() :int + getFileName() :String

+ reasonToString(int) :String EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un + setFileName(String) :void + toString() :String

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un
Runnable FileWrite Observable Runnable

Observable EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un - chunkSize :long
FileRead chunkWrite :long currentChunk :long ~ + + + + file :FileInputStream memory :RWMemory memory :RWMemory nameAlg :NamingAlgorythm thisChunkSize :long thread :Thread write :long endAnyOp() :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un - constRead EA :long9.3 Unregistered Trial - Version file :FileOutputStream
sendReadEvents :boolean thread :Thread endAnyOp() :void FileRead(FileInputStream, long, RWMemory) run() :void startReading(Observer, boolean) :void -fileWrite stopReading() :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un - read :longEA 9.3 Unregistered Trial - Version sendWriteEvents :boolean

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un
~

+ Version FileWrite(RWMemory, NamingAlgorythm, long, long) EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial EA 9.3 Unregistered Trial Version EA 9.3 Un ~ getOutputFile() :FileOutputStream + run() :void

+ startWritting(Observer, boolean) :void -fileRead EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un + stopWritting() :void ~ writeFile(byte[], int, boolean) :ErrorSplittingEvent

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EAObservable 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un
Observer FileSplitter constBlockLength :int = 65536 {readOnly} error :boolean fileRead :FileRead fileSize :long fileWrite :FileWrite fis :FileInputStream memory :RWMemory nChunks :long

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA~9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un finishWait() :void
~ + + + ~ InitFileSplitter(String, long, NamingAlgorythm) :ErrorSplittingEvent split(String, long, NamingAlgorythm, boolean) :void stopSplitting() :void update(Observable, Object) :void waitToFinish() :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Un

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
Software Requirements Specification for DFS Page 13

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version


class SplitFile Observer ListChunks chunks :Vector splitter :FileSplitter

ered Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version


+ + + getChunks() :Enumeration ListChunks(FileSplitter) update(Observable, Object) :void

+ getNumberOfChunks() ered Trial Version EA 9.3 Unregistered:int Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version


class SplitFile

ered Trial Version EA 9.3 Unregistered Trial Version


StartSplittingEv ent interface NamingAlgorythm + + getOutputFile(long) :File init(File, long) :ErrorSplittingEvent + + + + + chunkSize :long fileName :String fileSize :long nChunks :long getChunkSize() :long getFileName() :String getFileSize() :long getNumberOfChunks() :long StartSplittingEvent(String, long, long, long)

ered Trial Version EA 9.3 Unregistered Trial Version WriteEv ent


StopSplittingEv ent bytesWritten :long fileWritten :boolean

ered Trial Version EA 9.3 Unregistered Trial Version


+ + + getBytesWritten() :long isFileWritten() :boolean WriteEvent(long, boolean)

ered Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

class SplitFile red Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

red VersionEAEA Unregistered Trial Version eredTrial Trial Version 9.3 9.3 Unregistered Trial Version

SplitFileEvent

ered Trial Version EA 9.3 Unregistered Trial Version red Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

red Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

red VersionEAEA Unregistered Trial Version eredTrial Trial Version 9.3 9.3 Unregistered Trial Version

eredTrial Trial Version 9.3 9.3 Unregistered Trial Version red VersionEAEA Unregistered Trial Version
ReadEv ent + + + bytesRead :long fileRead :boolean getBytesRead() :long isFileRead() :boolean ReadEvent(long, boolean)

red Trial Version- EA 9.3 Unregistered Trial Version chunkSize :long


FinishOpEv ent nChunk :long + ChunkCreatedEvent(String, long, long) + getFileName() :String EA 9.3 Unregistered Trial Version + getFileSize() :long + getSequenceNumber() :long

ered Trial Version EA 9.3 Unregistered Version ChunkCreatedEvTrial ent

ered Trial Version EA 9.3 Unregistered Trial Version - fileName :String

red Trial Version EA 9.3 Unregistered Trial Version ered Trial Version EA 9.3 Unregistered Trial Version

eredTrial Trial Version red Version EA 9.3 Unregistered Trial Version

red Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

red Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

red VersionEAEA Unregistered Trial Version eredTrial Trial Version 9.3 9.3 Unregistered Trial Version

red Trial Version EA 9.3 Unregistered Trial Version

ered Trial Version EA 9.3 Unregistered Trial Version

Software Requirements Specification for DFS


class client javax.swing.JFrame Login

Page 14

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
jButton1 :javax.swing.JButton jButton2 :javax.swing.JButton jButton3 :javax.swing.JButton jLabel1 :javax.swing.JLabel jLabel2 :javax.swing.JLabel jLabel3 :javax.swing.JLabel jLabel4 :javax.swing.JLabel jPanel1 :javax.swing.JPanel txtpwd :javax.swing.JPasswordField txtuname :javax.swing.JTextField initComponents() :void

javax.swing.JFrame Thread EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version Register AppClientServ ice jButton1 :javax.swing.JButton

~ appClient :AppClient = null EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version - jButton2 :javax.swing.JButton ~ clientNode :Node = null ~ clientServiceSocket :ServerSocket = null ~ server :Node = null + + + + + + + + getAppClient() :AppClient getClientNode() :Node getServer() :Node run() :void setAppClient(AppClient) :void setClientNode(Node) :void setServer(Node) :void uploadSplitFile(File, String) :void jLabel1 :javax.swing.JLabel jLabel2 :javax.swing.JLabel jLabel3 :javax.swing.JLabel jPanel1 :javax.swing.JPanel txtpwd :javax.swing.JPasswordField txtuname :javax.swing.JTextField initComponents() :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
+ + jButton2ActionPerformed(java.awt.event.ActionEvent) :void jButton3ActionPerformed(java.awt.event.ActionEvent) :void Login() main(String[]) :void

- jButton1ActionPerformed(java.awt.event.ActionEvent) :void - jButton1ActionPerformed(java.awt.event.ActionEvent) :void Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 - jButton2ActionPerformed(java.awt.event.ActionEvent) :void + main(String[]) :void + Register()

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version ~acs

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
~appClient ActionListener AppClient

EA 9.3 Unregistered Trial Version JFrameEA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
~ ~ ~ acs :AppClientService = null btnBrowseClientPath :JButton btnBrowseUpload :JButton btnDownload :JButton btnExit :JButton btnRegister :JButton btnUploadFile :JButton client :Node = null CLIENT_PATH :String = "D:\\workspace\... {readOnly} lblClientIds :JLabel lblClientIP :JLabel lblClientPath :JLabel lblClientPort :JLabel lblServerIP :JLabel lblServerPort :JLabel lblUploadFile :JLabel lstClientIds :JList pnlContainer :JPanel sbrClientIds :JScrollPane server :Node = null txtClientIP :JTextField txtClientPath :JTextField txtClientPort :JTextField txtServerIP :JTextField txtServerPort :JTextField txtUploadFile :JTextField

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
+ actionPerformed(ActionEvent) :void + + + + + + AppClient() downloadFile() :void getClientPath() :String main(String[]) :void registerClient() :void removeClientId() :void unRegister() :void uploadFile() :void

+ 9.3 addClientId(String) :void Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA Unregistered

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

Software Requirements Specification for DFS

Page 15

class serv er

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister Serializable
ClientData ~ clientId :String ~ clientNode :Node

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ clientCount :int
~ key :String ~ splitFileCount :int

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version ~ encrFile :String EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister
Thread ~ uploadedFile :String ~ appServer :AppServer = null + getClientCount() :int + getClientId() :String

~ splitFolder :String EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister AppServ erServ ice

~ clientCount :int + ClientData(String, String, String, String, int, Node, int) EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ lstClients :List<Node> = new ArrayList<N... ~ mapClientBatFile :Map<String, File> = new HashMap<Str...

~ mapClientData :HashMap<String, ClientData> = new HashMap<Str... + getClientNode() :Node EA 9.3 Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ Unregistered mapSplitData :Map<String, List<String>> = new HashMap<Str... + getEncrFile() :String ~ server :ServerSocket = null ~ setClientTransProcessed :Set<String> = new HashSet<Str... + getAppServer() :AppServer + main(String[]) :void + setAppServer(AppServer) :void ~as + getKey() :String + getSplitFileCount() :int

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version :String EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister + getSplitFolder()
+ getUploadedFile() :String + setClientCount(int) :void + setClientNode(Node) :void + setEncrFile(String) :void + setSplitFileCount(int) :void + setSplitFolder(String) :void

+ Unregistered run() :void EA 9.3 Trial Version EA 9.3 Unregistered Trial + setClientId(String) Version EA :void 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

+ setKey(String) EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version :void EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

+ setUploadedFile(String) :void EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~appServer
JFrame AppServ er

Runnable EA 9.3 Unregistered Trial Version ActionListener EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version ClientHandlerImpl EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ appServer :AppServer = null

~ as :AppServerService = null EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version = null EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ bis :BufferedInputStream ~ btnBrowseEncrPath :JButton ~ btnBrowseServer :JButton ~ dos :DataOutputStream = null ~ inReader :BufferedReader = null

~ btnExit :JButton ~ lstClients :List<Node> = null EA 9.3 Unregistered ~ btnStartServer :JButton Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ lblChunkSize :JLabel ~ lblClientNo :JLabel ~ lblEncrPath :JLabel ~ lblMessage :JLabel ~ mapClientBatFile :Map<String, File> = null ~ mapClientData :HashMap<String, ClientData> = null

~ mapSplitData :Map<String, List<String>> = null EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ lblClients :JLabel ~ mode :String = null ~ setClientTransProcessed :Set<String> = null

~ lblMessages :JLabel Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister EA 9.3 Unregistered - areAllClientsActive(String) :boolean ~ lblServerPath :JLabel ~ lblServerPort :JLabel + ClientHandlerImpl() + ClientHandlerImpl(AppServer, List<Node>, BufferedReader, String, HashMap<String, ClientData>, BufferedInputStream, DataOutputStream, Map<String, List<String>>, Map<String, File>, Set<String>) - downloadFileToClient() :void + encryptFile(File, File) :void

~ lstClients :JList EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version - decryptFile(String, File) :File EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ lstMessages :JList ~ pnlContainer :JPanel

- SERVER_ENCR_PATH :String = "D:\\workspace\... {readOnly} + getAppServer() :AppServer EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister EA 9.3 Unregistered Version EA 9.3 Unregistered Trial Version - SERVER_PATH :StringTrial = "D:\\workspace\... {readOnly} ~ txtaClients :JTextArea ~ txtaMessages :JTextArea ~ ~ ~ ~ ~ + getInReader() :BufferedReader + getLstClients() :List<Node> + + + + + + + + + -

~appServer + getMode() :String EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister ~ txtChunSize :JTextField txtClientNo :JTextField txtEncrPath :JTextField txtMessage :JTextField txtServerPath :JTextField txtServerPort :JTextField mergeFiles(File) :void pullAllSplitFiles(String) :void registerClient() :void run() :void sendFileToClient(File) :int sendKeyFile(String, Node, File) :void sendOrgFileToClient(File, String, int) :void setAppServer(AppServer) :void setInReader(BufferedReader) :void setLstClients(List<Node>) :void setMode(String) :void splitFile(File, File) :void unRegisterClient() :void uploadClientSplitFile() :void uploadOriginalClientFile() :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister + actionPerformed(ActionEvent) :void
+ addClient(String) :void + clearMessages() :void + getChunkSize() :long

+ addMessage(String) :void EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister + AppServer()

EA 9.3 Unregistered Trial + getDownloadFolder(String) :File Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister
+ getEncrFolder(String) :File + getOrigFileFolder(String) :File + getServerPort() :String + getSplitFolder(String) :File + + + + + + + removeClient(String) :void setReadProgress(int) :void setWriteProgress(int) :void showClientNo(int) :void showError(String) :void showMessage(String) :void splittingFinished(boolean) :void

EA 9.3 + getServerPath() Unregistered :String Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

+ main(String[]) :void Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister EA 9.3 Unregistered

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregister

Software Requirements Specification for DFS

Page 16

class serv er

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA Serializable
ClientData ~ ~ ~ ~ ~ ~ ~ clientId :String clientNode :Node encrFile :String key :String splitFileCount :int splitFolder :String uploadedFile :String

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version ~ clientCount :int EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA
Thread

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA AppServ erServ ice
~ appServer :AppServer = null + + + + + + + + + + + + + + + + getClientCount() :int getClientId() :String getClientNode() :Node getEncrFile() :String getKey() :String getSplitFileCount() :int getSplitFolder() :String getUploadedFile() :String setClientCount(int) :void setClientId(String) :void setClientNode(Node) :void setEncrFile(String) :void setKey(String) :void setSplitFileCount(int) :void setSplitFolder(String) :void setUploadedFile(String) :void

~ clientCount :int + ClientData(String, String, String, String, int, Node, int) EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA ~ lstClients :List<Node> = new ArrayList<N... ~ ~ ~ ~ ~ + + + + mapClientBatFile :Map<String, File> = new HashMap<Str... mapClientData :HashMap<String, ClientData> = new HashMap<Str... mapSplitData :Map<String, List<String>> = new HashMap<Str... server :ServerSocket = null setClientTransProcessed :Set<String> = new HashSet<Str... getAppServer() :AppServer main(String[]) :void run() :void setAppServer(AppServer) :void

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
Software Requirements Specification for DFS

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
JFrame ActionListener

EA 9.3 Unregis

EA 9.3 Unregis

Page 17

EA 9.3 Unregis

EA 9.3 Unregistered Trial Version


class serv er EA 9.3 Unregistered Trial Version

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregistered Trial Version


AppServ er ~ as :AppServerService = null EA 9.3 Unregistered Trial Version ~ btnBrowseEncrPath :JButton ~ btnBrowseServer :JButton ~ btnExit :JButton EA 9.3 Unregistered ~ btnStartServer :JButton Trial Version

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version
+ + + + + + + + + + + + + + + + + + + + actionPerformed(ActionEvent) :void addClient(String) :void addMessage(String) :void AppServer() clearMessages() :void getChunkSize() :long getDownloadFolder(String) :File getEncrFolder(String) :File getOrigFileFolder(String) :File getServerPath() :String getServerPort() :String getSplitFolder(String) :File main(String[]) :void removeClient(String) :void setReadProgress(int) :void setWriteProgress(int) :void showClientNo(int) :void showError(String) :void showMessage(String) :void splittingFinished(boolean) :void

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

lblChunkSize :JLabel lblClientNo :JLabel lblClients :JLabel lblEncrPath :JLabel lblMessage :JLabel lblMessages :JLabel lblServerPath :JLabel lblServerPort :JLabel lstClients :JList lstMessages :JList pnlContainer :JPanel SERVER_ENCR_PAT H :String = "D:\\workspace\... {readOnly} SERVER_PAT H :String = "D:\\workspace\... {readOnly} txtaClients :JT extArea txtaMessages :JT extArea txtChunSize :JT extField txtClientNo :JT extField txtEncrPath :JT extField txtMessage :JT extField txtServerPath :JT extField txtServerPort :JT extField

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

EA 9.3 Unregis

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EASpecification 9.3 Unregistered Trial18 Version EA 9.3 Unreg Software Requirements for Trial DFSVersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Page

ersion EA 9.3 Unregistered class serv erTrial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

Runnable ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version ClientHandlerImpl EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg ~ appServer :AppServer = null ~ ~ ~ ~ ~ ~ ~ ~

ersion EA 9.3 Unregistered Trial Version= null EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg ~ bis :BufferedInputStream
dos :DataOutputStream = null inReader :BufferedReader = null lstClients :List<Node> = null mapClientBatFile :Map<String, File> = null mapClientData :HashMap<String, ClientData> = null mapSplitData :Map<String, List<String>> = null mode :String = null setClientTransProcessed :Set<String> = null

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version :boolean EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg - areAllClientsActive(String)
+ + + + + + + + + + + + + + + + ClientHandlerImpl() ClientHandlerImpl(AppServer, List<Node>, BufferedReader, String, HashMap<String, ClientData>, BufferedInputStream, DataOutputStream, Map<String, List<String>>, Map<String, File>, Set<String>) decryptFile(String, File) :File downloadFileToClient() :void encryptFile(File, File) :void getAppServer() :AppServer getInReader() :BufferedReader getLstClients() :List<Node> getMode() :String mergeFiles(File) :void pullAllSplitFiles(String) :void registerClient() :void run() :void sendFileToClient(File) :int sendKeyFile(String, Node, File) :void sendOrgFileToClient(File, String, int) :void setAppServer(AppServer) :void setInReader(BufferedReader) :void setLstClients(List<Node>) :void setMode(String) :void splitFile(File, File) :void unRegisterClient() :void uploadClientSplitFile() :void uploadOriginalClientFile() :void

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg
class crypt

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg DES

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial V

ersion EA 9.3 Unregistered Trialkey Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg :Key

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial V


+ encrypt(byte[]) :byte[]

ersion EA 9.3 Unregistered + Trialdecrypt(byte[], Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg Key) :byte[]

ersion EA 9.3 Unregistered + TrialgetKey() Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg :Key

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial V

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial V

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial V

ersion EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unreg

Software Requirements Specification for DFS

Page 19

class util

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre Serializable
FileUtil Node ~ + + + + + + + + STYLE_REDTEXT :String = "name=\"RedText\"" {readOnly} areMandatorySectionsLeftOut(byte[], String[]) :boolean listAllFiles(File, String, Map<String, File>) :void readByteFile(File) :byte[] readFile(File) :byte[] readInputStreamAsString(InputStream) :String readObjectFile(File) :Object writeByteFile(String, byte[]) :boolean writeObjectFile(String, Object) :boolean ~ ~ + + + + + + + ip :String = null port :int = 0

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre ~ folder :String = null
getFolder() :String getIp() :String getPort() :int setFolder(String) :void setIp(String) :void setPort(int) :void toString() :String

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

EA 9.3 Unregistered Trial Version EA 9.3 Unregistered Trial Version EA 9.3 Unre

3.1.4.3 Sequence Diagrams

Check the session

Software Requirements Specification for DFS

Page 20

3.2

NONFUNCTIONAL REQUIREMENTS

3.2.1 Performance Requirements It is not a resource hog and will run on almost every computer. Its functions and features are not computationally intensive. It does not require a powerful processor or graphics card, much RAM, or disk space, for both the install and Live version, and the program loads and runs fairly quick. The only real requirement is preinstallation of the java platform. The system shall accommodate high number of users without any fault. Responses shall take no longer than 10 seconds to appear on the screen. 3.2.2 Safety Requirements As it is stated with many warnings in the program, data loss is a serious possibility, if you are not careful, backup your data and/or use the program with extreme caution. It is obvious then if you deal with file manipulation; you could lose your data by human or application error. System use shall not cause any harm to human users.

3.2.3 Security Requirements Security is very important aspect of any application so it include authentication and cryptographic algorithms for encryption and decryption of files.

Software Requirements Specification for DFS

Page 21

System will use secured database. It provides a key to the client which restricts the accessibility of the file by the other clients. System will have different types of users and every user has access constraints.

3.2.4 Software Quality Attributes The application provides a quite friendly user interface with its operations accessible. An average or casual user should not find any problem using the program to perform at least its main functions. Response time It is really fast as it quickly performs all the actions. For eg: connection between the server and the clients, transfer of files, splitting of files into the chunks etc. No of clients It can connect any number of clients with the server, but with increasing number of clients its performance will degrade. 3.2.5 Error handling shall handle expected and non-expected errors in ways that prevent loss in information and long downtime period.

Software Requirements Specification for DFS

Page 22

4. INTERFACES AND POSSIBLE SCENARIOS 4.1 STARTUP INTERFACE

FIGURE 1

The figure1 above is the server interface. Server gets started on clicking the start server tab. The panel asks the user to give the desired path where the file will be encrypted. Path of the encrypted folder as well as the folder location is filled in the Encrypted folder and server path Boxes respectively. The server is then started.

Software Requirements Specification for DFS

Page 23

4.1.1 REGISTERATION INTERFACE The window below shows the registration interface.

FIGURE 2

In figure 2 the user is required to enter a username and a password to register itself as a client. A message box appears on successful registration. The username and password is stored in a database.

4.1.2 LOGIN INTERFACE


In FIGURE 3 the user is asked to enter the user name and password and then click on LOGIN. If username and password correctly matches with the one in the database it redirects to the clients interface .If the user enters the username and password incorrectly then an error message is shown and a message appears to create a new account as a client.

Software Requirements Specification for DFS

Page 24

FIGURE 3

4.2 CLIENT INTERFACE


The snapshot of FIGURE 4 below shows the information about the registered client with the server.the clients can register themselves with the server by clicking the register tab on the clients interface.here 3 clients are registered with 9191,9192,9193 ports.We can create as many clients as we want. All we have to do is set a unique client port different from other clients. Then set the client path where the file is to b sent. Click on register. Client is registered successfully.This can be checked in server interface. As soon as the client is registered a message appears in server interface where it shoes a messageRegistered Client localhost 9191.

Software Requirements Specification for DFS

Page 25

FIGURE 4

4.3 COMMAND PROMPT AND SERVER INTERFACE


The snapshot below of FIGURE 5 shows the server interface and the command prompt of server, client1, 2, 3. The client1 uploads the file which is displayed in the server message box.the server then retrieves the file form the client1 and then encrypts it.After encrypting the file ,it splits the file into chunks and distributes them among all the clients over the cloud.Hence the chunks are available in encrypted format in all d client folders. The client which uploads the file has an access key so that it can download the file later on and no other client is able to download it.

Software Requirements Specification for DFS

Page 26

FIGURE 5

4.4 CLIENT FOLDERS


FIGURE 6 shows the Orgfile: stores the original file which is then passed to encr folder after encryption. Encr: it stores the encrypted file. Split: contains all the splitted chunks. here the splitted files are distributed among client1,2,3 the key folder in client1 contains the key which permits only client1 to download the file(as client1 uploaded the file).

Software Requirements Specification for DFS

Page 27

The figure shows encrypted chunks among various clients wiyhonly !client having the access key to the cloud.

FIGURE 6

The figure 7 below displays the receiving of keys by client1. After the files are split into chunks and distributed a key is generated by the server. This key is received by the client which uploaded the file on server. Only client1 can download the files as it uploaded it. This is done for security purposes and the information remains safe on the cloud.

Software Requirements Specification for DFS

Page 28

FIGURE 7

4.5 DOWNLOADING THE FILE


In FIGURE 8 and FIGURE 9 Client can download the files after uploading it on the cloud. After receiving the key, the client is supposed to click on Download.The server then takes back all the distributed chunks from other clients. It then decrypts the file chunks and creates the original file. The file is then sent to the desired client. A new folder is created in server named downloads which contains all the splitted chunks collected back from the client.

Software Requirements Specification for DFS

Page 29

FIGURE 8

Software Requirements Specification for DFS

Page 30

FIGURE 9

Software Requirements Specification for DFS

Page 31

5. Stored Items
In this section we will list all stored information about every file in DFS

5.1 Original file


Any client can upload a file and send it to server for distributing among various other clients.

TYPE
Any file can be uploaded. (zip, text file..etc)

LOCATION
The file is stored in the original folder in the server system.

CONSTRAINTS

Table 1 Attributes Saved About original file

5.2 Encrypted file


The file uploaded by the client is encrypted by the server for security reasons.

TYPE
The file uploaded is encrypted by the server.

LOCATION
It is stored in the encrypt folder with ther server.

CONSTRAINTS

Table 2 Attributes Saved About Encrypted File

5.3 Split File


The file uploaded by any client is splitted by the server and its encrypted form is distributed among various clients in their respective folders.

TYPE
ANY FILE (text file, zip file..etc)

LOCATION
The splitted files are stored in the folders 1,2 3,.. of client 1, client 2, client 3 respectively.

CONSTRAINTS
The original file is splitted with eact split file of size 10000 bytes and is in encrypted format. for eg. Zip file is splitted 1234567891011_com.zip.enc.1

Table 3 Attributes Saved About Split File

Software Requirements Specification for DFS

Page 32

5.4 Key File


Server generates a key file and sends this file to the client who uploaded the file.

TYPE
Key file

LOCATION
It is stored in the key folder of the client who uploaded the file.

CONSTRAINTS
Only given to the client who uploaded the file. For ex. 1234567891011_manifest.zip.key

Table 4 Attributes Saved About Split file

5.5 File to download


The client who uploaded the file can download the file with the help of the key generated by the server.

TYPE
The file uploaded can be downloaded.

LOCATION
The server merges the splitted files and save the merged file in the download folder.

CONSTRAINTS
Server collects all the files from the client and merges them with the help of the key generated before.

Table 5 Attributes Saved About File to download

5.6 Downloaded file


The downloaded file is saved with the client who uploaded it.

TYPE
The file uploaded and splitted can be downloaded by the client.

LOCATION
The final file is saved with the client in its respective folder.

CONSTRAINTS
The file can be downloaded only by the client who uploaded the file and who has the key generated by the server while splitting.

Table 6 Attributes Saved About Downloaded File

You might also like