Training Report On
LAN ShareIT
Submitted By:
Aastha Nandwani (1120215) Namrata Sharma (1120406)
Acknowledgement
“Gratitude is not a thing of expression; it is more a matter of feeling.”
There is always a sense of gratitude which one express towards others for their help and supervision in achieving the goals. This formal piece of acknowledgement is an attempt to express the feeling of gratitude towards people who helped in the successful completion of my training. I would like to express my deep gratitude to Mr. Arun Goyat, director at GTI Software Pvt. Ltd., for his constant co-operation. He was always there with his competent guidance and valuable suggestions throughout the pursuance of this training. I would also like to place an appreciation to all the respondents and group members whose responses and co-ordination were of utmost importance for the training. Above all, no words can express my feelings for my parents, friends and those persons who supported me during my training. I am also thankful to all the respondents whose cooperation and support has helped me a lot in collecting necessary information.
Table of Contents
Certificate--------------------------------------------------------------------------------i Acknowledgement--------------------------------------------------------------------ii Table of Contents---------------------------------------------------------------------iii Company Profile
About the Company What they do ? Technology
Introduction to JAVA Features of JAVA Why JAVA? Introduction to Project
ShareIT working Technologies used Requirement Analysis Conclusion References
Company profile GTI Software Pvt. Ltd.
GTI Software Pvt. Ltd is a technology driven company focused on designing and developing innovative products and solutions in hi-technology areas. Its range of software development services span - Desktop to Client/Server to Enterprise, Internet, Embedded Systems and web applications. It has several state-of-the-art products in its bucket.GTI Software’s has excellent domain competencies in verticals such as financial services, insurance, retail and manufacturing covering discrete and process based operations. . Web development GTI Software is basically a service provider. They make products in web development and mobile applications. Most of the time technologies used are - .Net, Java, JSP, Android, iOs. We cooperate with our customers in each phase of software development, starting from strategy planning, through analysis, design, implementation and deployment of the product, to maintenance and extending it. Whole process is completed in following steps:
Technology Introduction to JAVA Java is an entire programming language resembling C or C++ introduced in 1995 by Sun Microsystems. Its objective was to develop software for embedding in consumer electronic devices. Initially JAVA was called ‘Oak. It takes a sophisticated programmer to create Java code. And it requires a sophisticated programmer to maintain it. With Java, you can create complete applications. Or you can attach a small group of instructions, a Java "applet" that improves your basic HTML. A Java Applet can also cause text to change color when you roll over it. A game, a calendar, a scrolling text banner can all be created with Java Applets. There are sometimes compatibility problems between Java and various browsers, operating systems or computers, and if not written correctly, it can be slow to load. Java is a powerful programming language with excellent security, but you need to be aware of the tradeoffs. Java’s magic: the Byte Code
The key that allows Java to solve both the securit y and the portability problems is that the output of a java compiler is not executable code. It is a byte code. Byte code is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM), i.e. JVM is an interpreter for byte code. Although the details of the JVM will differ from platform to platform, but all interpret same Java byte code. Thus, interpretation of the byte code is the easie st way to create truly portable programs. With most programming languages, you either compile or interpret a program so that you can run it on your computer. The Java programming language is unusual in that a program is both compiled and interpreted. With the compiler, first you translate a program into an intermediate language called Java byte codes — the platform-independent codes interpreted by the interpreter on the Java platform. The interpreter parses and runs each Java byte code instruction on the computer. Compilation happens just once; interpretation occurs each time the program is executed.
You can think of Java byte codes as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether it's a development tool or a Web browser that can run applets, is an implementation of the Java VM. Java byte codes help make "write once, run anywhere" possible. You can compile your program into bytecodes on any platform that has a Java compiler. The byte codes can then be run on any implementation of the Java VM. That means that as long as a computer has a Java VM, the same program written in the Java programming language can run on Windows 2000, a Solaris workstation.
Platform Independence
Features of JAVA Simple
Java was designed to be easy for the professional programmer to learn and use effectively. There are clearly defined ways to accomplish in Java which makes it easy to learn.
Object-Oriented
Java was not designed to be a source-code compatible with any other language. Thus, this was a clean, pragmatic approach to objects. The object model in Java is simple and easy to extend. Robust
The ability to create robust programs was given high priority in design of Java. As Java is a strictly typed language, it checks code at compile ti me. Also it checks code at run time. Multithreaded
Java was designed to meet the real-world requirements of creating interactive, networked programs. To accomplish this, Java supports multi-threaded programming, which allows us to write programs that do many things simultaneously. Distribute
Java is designed for the distributed environment of the Internet, because it handles TCP/IP protocols. The original version of Java (Oak) included features for interactive address-space messaging which allowed objects on two computers to execute procedures remotely. Java revived these interfaces in a package called Remote Method Invocation (RMI) Dynamic
Java programs carry with them substantial amounts of run time type information that is used to verify and resolve accesses to objects at run time. This makes it possible to dynamically link code in a safe and expedient manner.
Secure
Java is intended for use in networked/distributed environments. Toward that end, a lot of emphasis has been placed on security. Java enables the construction of virus-free, tamper-free systems. The authentication techniques are based on public-key encryption. There is a strong interplay between "robust" and "secure." For example, the changes to the semantics of pointers make it impossible for applications to forge access to data structures or to access private data in objects that they do not have access to. This closes the door on most activities of viruses. Portable
Being architecture neutral is a big chunk of being portable, but there's more to it than that. Unlike C and C++, there are no "implementation dependent" aspects of the specification. The sizes of the primitive data types are specified, as is the behavior of arithmetic on them. For example, "int" always means a signed two's complement 32 bit integer, and "float" always means a 32-bit IEEE 754 floating point number. Making these choices is feasible in this day and age because essentially all interesting CPUs share these characteristics. The libraries that are a part of the system define portable interfaces. Platform Independent
Java was designed to not only be cross-platform in source form like C, but also in compiled binary form. Since this is frankly impossible across processor architectures, Java is compiled to an intermediate form called byte-code.
Why Java? Java is Easy to learn
Many would be surprised to see this one of the top reason of le arning Java, or considering it as best programming language, but it is. If you have steep learning curve, it would be difficult to get in short span of time, which is the case with most of professional project. Java has fluent English like syntax with minimum magic characters e.g. Generics angle brackets, which makes it easy to read Java program and learn quickly. Once a programmer is familiar
with initial hurdles with installing JDK and setting up PATH and understand how Class path works, it's pretty easy to write program in Java. Java is an Object Oriented Programming Language
Another reason, which made Java popular, is that it's an Object Oriented Programming language. Developing OOPS application is much easier, and it also helps to keep system modular, flexible and extensible. Once you have knowledge of key OOPS concept like Abstraction, Encapsulation, Polymorphism and Inheritance, you can use all those with Java. Java itself embodies many best practices and design pattern in its library. Java is one of the few close to 100% OOPS programming language. Java also promotes use of SOLID and Object oriented design principles in form of open source projects like Spring, which make sure your object dependency is managed well by using dependency Injection principle.
Java has Rich API
One more reason of Java programming language's huge success is its Rich API and most importantly highly visible, because come with Java installation. When I first started Java programming, I used to
code Applets and those days Applets provides great animation
capability, which amazes new
programmer like us, who are used to code in Turbo C++
editor. Java provides API for I/O, networking, utilities, xml parsing, database connection, and almost everything. Whatever left is covered by open source libraries like Apache Commons, Google Guava and others. Powerful development tools e.g. Eclipse , Netbeans
Believe it or not, Eclipse and Netbeans has played huge role to make Java one of the best programming language. Coding in IDE is pleasure, especially if you have coded in DOS Editor or Notepad. They not only helps in code completion but also provides powerful debugging capability, which is essential for real world development. Integrated Development Environment (IDE) made Java development much easier, faster and fluent. It's easy to search, refactor and read code using IDEs. Apart from IDE, Java platform also has several other tools e.g. Maven and ANT for building Java applications, decompilers, JConsole, Visual VM for monitoring Heap usage etc. Great collection of Open Source libraries
Open source libraries ensure that Java should be used everywhere. Apache, Google, and other organization has contributed lot of great libraries, which makes Java development easy, faster and cost effective. There are framework like Spring, Struts, Maven, which ensures that Java development best practices of software craftsmanship, promotes use of design patterns and assisted Java developers to get there job done. I always recommend searching for functionality in Google, before writing your own code. There is good chance that, it's already coded, tested and available for ready to use. Wonderful community support
Community is the biggest strength of Java programming language and platform. No matter, how good a language is, it wouldn't survive, if there is no community to support, help and share their knowledge. Java has been very lucky, it has lots of active forums, Stack overflow, open source organizations and several Java user group to help everything. There is community to help beginners, advanced and even expert Java programmers. Java actually promotes taking and giving back to community habit. Lots of programmers who use open source, contribute as committer, tester etc. Expert programmer provides advice FREE at various Java forums and stack overflow. This is simply amazing and gives lot of confidence to a newbie in Java.
Java is FREE
People like FREE things, don’t you? So if a programmer want s to learn a programming language, or an organization wants to use a technology, COST is an important factor. Since Java is free from start, i.e. You don't need to pay anything to create Java application. This FREE thing also helped Java to become popular among individual programmers, and among large organizations. Availability of Java programmers is another big think, which makes organization to choose Java for their strategic development. Excellent documentation support - Javadocs
When I first saw Javadoc, I was amazed. It's great piece of documentation, which tells lot of things Java API. I think without Javadoc documentation, Java wouldn't be as popular, and it's one of the main reason, why I think Java is best programming language. Not everyone has
time and intention to look at code to learn what a method do or how to use a class. Javadoc made learning easy, and provide an excellent reference while coding in Java. With advent of IDE, you don't even need to look Javadoc explicitly in browser, but you can get all information in your IDE window itself. Java is Platform Independent
In 1990s, this was the main reason of Java's popularit y. Idea of platform independence is great, and Java's tag line "write once run anywhere" was enticing enough to attract lots of new development in Java. This is still one of the reasons of Java being best programming language, most of Java applications are developed in Windows environment and run in UNIX platform. Java is Everywhere
Yes, Java is everywhere, it's on desktop, it's on mobile, it's on card, almost everywhere and so is Java programmers. I think Java programmer out number any other programming language professional. Though I don't have any data to back this up, but it's based on experience. This huge availability of Java programmers is another reason, why organizations prefer to choose Java for new development than any other programming language.
Introduction to Project Introduction to LAN ShareIT
This project is a basic client server application which transfers files from client to server and other way round using a Lan wire. First a server socket is created which listens for client socket trying to connect. If port no used for creati ng the client socket matches a connection is established.
Client can perform three basic functionalities namely, sending, receiving and checking history which are implemented as three modules explained below:
Sending from Client to Server
This module can send four types of files: 1. 2. 3. 4.
Images Music tracks Videos Text files
Receiving from Server
This module prompts the sending module on server side which also can send four types of files: 1. 2. 3. 4.
Images Music tracks Videos Text files
Files will be received only after client clicks the accept button on client side.
Sent files
This module provides with the history of sent files. This information is retrieved from Oracle database being used. This database is updated every time a file is sent to server.
Choosing files
After selecting what type of file to send, a window opens with choosing and transfer buttons which as well shows the preview of image chosen. Files are chosen using JFileChooser.
Technologies Used Front end as: Eclipse Luna Back end as: Oracle Express Edition 11g Querying language: Sql
Requirement Analysis System Requirements: Operating System: Microsoft® Windows® XP/Vista/window7/linux Processor: 1 Ghz Memory: 512 MB RAM Hard Disk Space: 45 MB Available HDD Space Video Card: 3D graphics accelerator equivalent to GF6200 or higher Sound Card: 16-bit Sound Card
Conclusion The lan chat and file sharing is developed using java and mysql fully meets the objectives of the system for which it has been developed.The system has been found working effectively in the given conditions it was developed for. It is flexible and can accommodate changes easily whenever required. The speed and accuracy are maintained in proper way. The results obtained were fully satisfactory from the user point of view. It was verified with valid as well as invalid data in each manner. The system is run with an insight into the necessary modifications that may be required in the future. Hence the system can be maintained successfully.
References 1)
The Complete Reference Java By Herbert Schildit
2)
www.javatpoint.com
3)
www.stackoverflow.com
4)
www.javaworld.com
5)
www.java.sun.com
6)
www.programmersheaven.com
7)
www.ittools.com
8)
www.codeguru.com