Synopsis
Synopsis
Synopsis
Title: Easy FTP an FTP Client Implementation and Interface. Objective: Easy FTP is an implementation of client side FTP (File Transfer Protocol) and provides rich user interface to work with FTP protocol from client side. We aimed to develop this tool such that one can manipulate the remote file system as local file system. Our objective mainly includes a person with no knowledge of FTP fundamentals should also do his job with this tool. A rich set of offline and online help and guidance system to help the new people. A good interpretation of command or process progress status report at every millisecond. Multithreading support for simultaneous uploads and downloads to and from remote system and local system. Simultaneous views of local and remote file systems on which this tool is performing its operations. A good time management system that eliminates the system hanging or crashing in case of transfer or other errors. Support for both passive and active data connections defined in FTP. Support for account login and also anonymous login. Support for selected data format like ASCII, EBCDIC etc and file format like File, Record or Page etc and transmission mode like Stream, Block or Compressed etc. Complete support for FTP command set which are classified as Access Commands, File Management Commands, Data Formatting Commands, Port Defining Commands, File Transfer Commands and Miscellaneous. A well defined log writer facility that logs access, operations and errors. Internet / Networking / Protocol Hardware & Software To Be Used: Operating System Graphical User Interface Application Logic Processor Hard Disk RAM : : : : : : Windows 98 Java Swing (JFC/Swing) Java 2 (Socket Programming) Pentium III 900 MHz 20 GB 128 MB
Category:
We adopted the OMT (Object Oriented Modeling Technique) as Project development and implementation strategy. For entire design and development process of this project we used object oriented techniques. Analysis: Analysis, the first step of the OMT methodology, is concerned with devising a precise, concise, understandable, and correct model of the real world. The purpose of object oriented analysis is to model the real world system so that it can be understood. The result of analysis should understand the problem as a preparation for design. 1) Object Modeling: FTPClient: A main class that describes an FTP client attributes and behaviors such as control connection, data connection status, and log destination. FTPURLConnection: This class describes all the properties and behaviors of an FTP connection in common. It contains attributes like input stream, output stream, time, and other connection properties. FTPControlConnection: This class is the blue print for FTP control connection defined in FTP specifications. FTPDataConnection: This class is the blue print for FTP data connection defined in FTP specifications. This class is used to manage different data transfers between client and server. FTP Input Stream: This class is an input stream that is particularly designed for reading different formats, types and modes of input data. FTP Output Stream: This class is an output stream that is particularly designed for sending different formats, types and modes of output data. FTP Log Stream: This class is an output stream with particular use of different log messages and formats. FTP Request: This class wraps the FTP request commands and their related argument and other details.
FTP Response: This class wraps the FTP request commands and their related argument and other details.
FTPLogStream
FTPRequest
Sends
Connects through
Logs through
FTPClient
Gets
FTPResponse
Associated with
FTPURLConnection
Associated with
FTPControlConnection
FTPDataConnection
OBJECT DIAGRAM
2) Dynamic Modeling: FTP Client scenario: i. ii. iii. iv. v. vi. vii. viii. ix. x. xi. xii. FTP Client tries to connect to the server FTP Client established a control connection FTP Client issues USER command If user does not exist try again USER command If user exists issues PASS command If password does not match try again USER command If password matches issue PASV or PORT command to establish data connection Issue data transfer command Data connection opened After data transfer completed server closes data connection Repeats viii, ix, and x. Issues quit closing control connection.
Event Trace Diagram: Client Connects Service Ready USER command User ok pass? PASS command User login ok PORT or PASV command Data Connection will open shortly Data transfer command Data Connection ok Closing Data Connection Server
Idle Connect Connecting Service Ready Control Connection OK Issued USER Checking account Account OK Waiting for PASS Issued PASS Mismatch Checking password Ready to open QUIT Waiting Command Issued command Data Con. OK Transfer completed Data Con. Closed Service ready No account Time out
3) Functional Modeling: Data Flow Diagrams: A graphic tool used to describe and analyze the moment of data through a system manual or automated including the processes, stores of data, and delays in the system. Data flow diagrams are the central tools and the basis from which other components are developed. The transformation of data from input to output, through processes, may be described logically and independently of the physical components associated with the system.
FTP request
FTP Server
FTP response
Log data
Log Store
User
Data command
FTP Server
Ftp Response
Log data User Access Log Process
Ftp Response
Log Data
Log data
Log data
FTP Server
Ftp Response
Log data User Data transfer Log Process
Ftp Response
Log Data
Log data
Log data
Data Structures: A data dictionary is a catalogue a repository of the elements in a system. As the name suggests, these elements center on data the way they are structured to meet user requirements and organization needs. In a data dictionary you will find a list of all the elements composing the data flow through a system. ACCESS_LOG: Name SERVER USERNAME PASSWORD DATE TIME MSG DATA_LOG: Name USERNAME SERVER CMD DATE TIME FAIL_SUC MESG Modules: Well structured designs improve the maintainability of a system. A structured system is one that is developed from the top down and modular, that is, broken down into manageable components. In this project we modularized the system so that they have minimal effect on each other. This application is designed into three independent modules which take care of different tasks efficiently. Type VARCHAR2(30) VARCHAR2(30) VARCHAR2(10) DATE TIME VARCHAR2(10) VARCHAR2(500) Constraints Description user name of the user ftp account Server that processes Command issued Date of issue Time of issue Command succeeded or failed Message of remarks Type VARCHAR2(30) VARCHAR2(30) VARCHAR2(20) DATE TIME VARCHAR2(500) Constraints Description Name of the server to be accessed User name used to connect Password used for authorization Date of access Time of access Remark message
GUI Module: This module defines and implements the look and feel of application. It creates an easy and flexible interface to the user. The aim of this module is to minimize the interactivity problems. Control Module: This module defines and implements all semantics of FTP control connection. That means it handles the control connection part defined in the FTP protocol and will be responsible for user sessions and connections. Data Module: This module handles all the data transfer connection part of the FTP. That means it handles all the data transfer commands and responses which format and record type are also controlled. Reports: The reports generated in project depict the up to date information about the current status of various records. The various types of reports that will be generated in this project are as mentioned below. Access Report: These reports will give details of user accesses and their results like username, server name, date, time and result of the operation which are helpful to revise once. Data Reports: These reports give details of user transactions with the server with detailed description like user name, command, fail or success and message which will help the user to correct his errors if any. Future Scope: The current version of this application v1.0 which will be enhanced in future evolution. In next version of this application we will include password protection even in client side, approximate times and durations of each command to complete. We will also try to support the latest enhancements made to the FTP protocol.