Remote Monitoring System Report
Remote Monitoring System Report
ON
REMOTE MONITORING SYSTEM
Submitted to
ITR,DRDO
In Partial Fulfilment of the Requirement for the Award of
BACHELORS DEGREE IN
COMPUTER ENGINEERING
BY
in association with
CERTIFICATE
This is certify that the project entitled
REMOTE MONITORING SYSTEM
submitted by
is a record of bonafide work carried out by them, in the partial fulfilment of the
requirement for the award of Degree of Bachelor of Engineering (Computer Engi-
neering) at National Institute of Technology, Rourkela. This work is done during
year 2017-2018, under our guidance.
Date: / /
I am profoundly grateful to Mr. SOURAV KAITY for his expert guidance and
continuous encouragement throughout to see that this project rights its target since
its commencement to its completion.
I would like to express deepest appreciation towards Dr. B.K. DAS, Director,Integrated
Test Range,Chandipur,for having us here Mr. H.K. RATHA, Additional Director
(CDP) whose invaluable guidance supported us in completing this project.
At last we must express our sincere heartfelt gratitude to all the staff members of
ITR,Chandipur, who helped me directly or indirectly during this course of work.
AKANKHYA BEHERA
ABSTRACT
This software can be used in classrooms and in labs where the teacher can mon-
itor the students as well as provide them with the required help and support with-
out having to physically go to each student individually. This saves time and en-
ergy.Conferences can be held without actually assembling workers physically.The
boss can regulate his/her workers and can monitor what they are doing and how
much work is being done by whom.The rockets that are launched from test ranges
need constant monitoring and from different angles all at the same time.This pur-
pose is also met by this software.Finally,as this software runs at boot time,it can be
used to play pranks on friends,leaving them bewildered as to how their computers
are behaving like they have a mind of their own.
Contents
1 Introduction 2
1.1 DRDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 ITR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Requirements Analysis 4
2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Similar Softwares 24
5 Screenshots of Project 25
5.1 Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
References 28
Remote Monitoring System
Chapter 1
Introduction
1.1 DRDO
1.1.1 About
DRDO was formed in 1958 from the amalgamation of the then already function-
ing Technical Development Establishment (TDEs) of the Indian Army and the Di-
rectorate of Technical Development Production (DTDP) with the Defence Science
Organisation (DSO). DRDO was then a small organisation with 10 establishments or
laboratories. Over the years, it has grown multi-directionally in terms of the variety
of subject disciplines, number of laboratories, achievements and stature.
Today, DRDO is a network of more than 50 laboratories which are deeply en-
gaged in developing defence technologies covering various disciplines, like aeronau-
tics, armaments, electronics, combat vehicles, engineering systems, instrumentation,
missiles, advanced computing and simulation, special materials, naval systems, life
sciences, training, information systems and agriculture. Presently, the Organisation
is backed by over 5000 scientists and about 25,000 other scientific, technical and
supporting personnel. Several major projects for the development of missiles, arma-
ments, light combat aircrafts, radars, electronic warfare systems etc are on hand and
significant achievements have already been made in several such technologies.
Make India prosperous by establishing world class science and technology base
and provide our Defence Services decisive edge by equipping them with internation-
ally competitive systems and solutions.
Mission
3. Develop infrastructure and committed quality manpower and build strong in-
digenous technology base.
1.1.2 ITR
ITR(Integrated Test Range) was set up to provide safe and reliable launch facilities
for performance evaluation of rockets missiles and airborne weapon systems. Start-
ing in 1982 as a project under Integrated Guided Missile Development Programme
(IGMDP), it has been graduated to perfection over the years and has reached the
status of world class test range maiden test launch of intermediate range ballistic
missile, agni AE 01 on 22nd May, 1989 from this test range has put it at a prominent
place in the world map. Since then it has tested more than 1000 missions including
300 major missions of national importance.
All these test are conducted at idea which is 200 km from two major cities of the
country Kolkata in the north and Bhubaneswar in the south. Strategically placed
along the Bay of Bengal it has the advantage of safe corridor for short and medium
range missile systems. The receding sea of Chandipur serves as a God-gifted test-
bed for weapons. The sprawling Chandipur range has an area of about 475 acres
of Technical facilities and about 120 acres of launch complexes. Apart from this it
has several pockets of land mass all along the coast line where a number of high
performance instrumentation systems are deployed for effective real-time capture
and data recording.
Chapter 2
Requirements Analysis
2.1
Ubuntu
Features
Ubuntu operates under the GNU General Public License (GPL) and all of the
application software installed by default is free software. In addition, Ubuntu installs
some hardware drivers that are available only in binary format, but such packages
are clearly marked in the restricted component.
Security
Ubuntu also supports full disk encryption as well as encryption of the home and
Private directories
1. hardware auto configuration - Ubuntu comes with the drivers for most hardware
built-in. Anyone whos installed a generic version of Windows (i.e., not one
2. multiple desktops - virtual desktops are like tabbed web browsingyou dont
realize how extraordinarily useful they are until you try them. There are some
third-party tools to achieve the same functionality in Windows, but in my ex-
perience few of them work well, if at all, in Vista and above.
4. ssh client - this probably only matters to geeks, but having an ssh client built
into the operating system is a major plus for me. There are some decent
ssh clients available for Windows, like Putty, but none are available in Win-
dows out-of-the-box, and even the best of them isnt as functional as the trusty
gnome-terminal.
2.2
NetBean
NetBeans is used as the IDE while the project is made using Java Programming
Language.The NetBeans Platform is a framework for simplifying the development
of Java Swing desktop applications. The NetBeans IDE bundle for Java SE contains
what is needed to start developing NetBeans plugins and NetBeans Platform based
applications; no additional SDK is required.
Applications can install modules dynamically. Any application can include the
Update Center module to allow users of the application to download digitally signed
upgrades and new features directly into the running application. Reinstalling an up-
grade or a new release does not force users to download the entire application again.
The platform offers reusable services common to desktop applications, allowing de-
velopers to focus on the logic specific to their application.
Among the features of the platform are: User interface management (e.g. menus
and toolbars) User settings management Storage management (saving and loading
any kind of data) Window management Wizard framework (supports step-by-step
dialogs) NetBeans Visual Library Integrated development tools
NetBeans IDE is the official IDE for Java 8. With its editors, code analyzers,
and converters, you can quickly and smoothly upgrade your applications to use new
Java 8 language constructs, such as lambdas, functional operations, and method ref-
erences. Batch analyzers and converters are provided to search through multiple
applications at the same time, matching patterns for conversion to new Java 8 lan-
guage constructs.
With its constantly improving Java Editor, many rich features and an extensive
range of tools, templates and samples, NetBeans IDE sets the standard for develop-
ing with cutting edge technologies out of the box.
An IDE is much more than a text editor. The NetBeans Editor indents lines,
matches words and brackets, and highlights source code syntactically and seman-
tically. It lets you easily refactor code, with a range of handy and powerful tools,
while it also provides code templates, coding tips, and code generators.
The editor supports many languages from Java, C/C++, XML and HTML, to PHP,
Groovy, Javadoc, JavaScript and JSP. Because the editor is extensible, you can plug
in support for many other languages.
Keeping a clear overview of large applications, with thousands of folders and files,
and millions of lines of code, is a daunting task. NetBeans IDE provides different
views of your data, from multiple project windows to helpful tools for setting up
your applications and managing them efficiently, letting you drill down into your
data quickly and easily, while giving you versioning tools via Subversion, Mercurial,
and Git integration out of the box.
When new developers join your project, they can understand the structure of
your application because your code is well-organized.
Design GUIs for Java SE, HTML5, Java EE, PHP, C/C++, and Java ME applica-
tions quickly and smoothly by using editors and drag-and-drop tools in the IDE.
For Java SE applications, the NetBeans GUI Builder automatically takes care
of correct spacing and alignment, while supporting in-place editing, as well. The
GUI builder is so easy to use and intuitive that it has been used to prototype GUIs
live at customer presentations.
The cost of buggy code increases the longer it remains unfixed. NetBeans provides
static analysis tools, especially integration with the widely used FindBugs tool, for
identifying and fixing common problems in Java code. In addition, the NetBeans
Debugger lets you place breakpoints in your source code, add field watches, step
through your code, run into methods, take snapshots and monitor execution as it
occurs.
The NetBeans Profiler provides expert assistance for optimizing your applica-
tions speed and memory usage, and makes it easier to build reliable and scalable
Java SE, JavaFX and Java EE applications. NetBeans IDE includes a visual debug-
ger for Java SE applications, letting you debug user interfaces without looking into
source code. Take GUI snapshots of your applications and click on user interface
elements to jump back into the related source code.
The key features that are appreciated by NetBeans users around the world
1. Maven
Around the world, a key term that comes up repeatedly in the context of NetBeans
is Maven. The fact that no plugins need to be installed to use Maven and that Maven
projects do not need to be imported, but can simply be opened, is a key feature
appreciated by NetBeans users. Just go to File Open Project and NetBeans will
recognize any folder containing a POM file as a Maven project and then use the
POM file as the NetBeans project definition.
Following on from the above, a key feature of NetBeans is the short time dif-
ference between installing it and beginning to create meaningful applications in it.
Despite its significant plugin ecosystem, not much is needed to be installed or con-
figured, since everything is available out of the box as soon as you start it up.
3. Java Editor
The language-aware NetBeans editor detects errors while you type and assists
you with documentation popups and smart code completion all with the speed and
simplicity of your favourite lightweight text editor. Of course, the Java editor in Net-
Beans is much more than a text editor it indents lines, matches words and brackets,
and highlights source code syntactically and semantically.
4. Java EE
NetBeans tools for the Java EE platform are developed in close cooperation with
the Java EE, GlassFish, and WebLogic teams to provide the tightest integration and
easiest possible use of the Java EE specification. Consequently, if you are new to the
Java EE specification and framework, as well as if youre experienced in need to be
productive and focused on your domain logic, using NetBeans IDE is the best way
to quickly learn and become productive in Java EE programming.
Java tooling. The speed and simplicity of working with the web-frontend distri-
bution of NetBeans IDE lets you significantly accelerate HTML5 web application
development, from creating HTML5 projects, to developing them in editors for
HTML, JavaScript, and CSS, to integration with SASS, LESS, Karma, Grunt, and
the Chrome browser. The integration with Apache Cordova enables deployment of
native packages to iOS and Android, while HTML5 applications can be deployed to
the Chrome browser on iOS and Android, from where applications can be debugged
and profiled live on the device.
6. Internet of Things
Directly from NetBeans, you can create, test, debug, deploy, and profile applica-
tions that will run on the Raspberry Pi, mobile phones, PDAs, set-top boxes, and
other mobile and embedded systems.
7. Profiler
Built into NetBeans and available for free, the NetBeans Profiler provides expert
assistance for optimizing your applications speed and memory usage, while making
it easier to build reliable and scalable Java SE, JavaFX and Java EE applications.
Without requiring you to install any plugins, NetBeans automatically lets you
work easily and intuitively with a wide range of popular versioning systems, specif-
ically Git, Mercurial, and Subversion.
9. Configurability
The NetBeans workspace can easily be modified. Customize the buttons in the
toolbar or drag and reposition tabs in the application frame to suit your individual
workflow. Undock tabs and drag them outside the application frame, even onto a
different monitor and change keyboard shortcuts to match your own preferences.
10. Community
Join the network of users and developers, writers and designers, bloggers and
translators, who are shaping the future of NetBeans. A lot of documentation and
tutorials, as well as mailing lists and discussion forums, are available for free.
2.3
According to Sun, 3 billion devices run java. There are many devices where java
is currently used. Some of them are as follows:
4. Mobile
5. Embedded System
6. Smart Card
7. Robotics
8. Games etc
Java, created by Sun Microsystems in the year 1995, was not initially meant for
internet. One of the significant features that made it extremely popular and useful
for internet was its platform independence. The language was suitable for creating
both small components and complex standalone applications. Some of the features
that make Java a powerful programming language are as follows:
5. Portability- The internet is a sea where multiple Operating Systems and com-
puters converge. This calls for programs that can run on all types of Operating
Systems. Java allows the creation of portable executable codes, one of the fore-
most requirements for an internet language.
Chapter 3
3.1 Swing
Swing is a set of program components for Java programmers that provide the
ability to create graphical user interface ( GUI ) components, such as buttons and
scroll bars, that are independent of the windowing system for specific operating
system . Swing components are used with the Java Foundation Classes ( JFC ).
Swing Framework contains a large set of components which provide rich function-
alities and allow high level of customization. All these components are lightweight
components. They all are derived from JComponent class. It supports the pluggable
look and feel.
JButton
JButton class provides functionality of a button. JButton class has three constuc-
tors, It allows a button to be created using icon, a string or both. JButton supports
ActionEvent. When a button is pressed an ActionEvent is generated.
JTextField
JTextField is used for taking input of single line of text. It is most widely used
text component. It has three constructors.
JCheckBox
Java JPanel
To add GUI components such as JLabel, JTextField, JButton to the panel, we use
the add() method. There are different versions of the add() method, so which method
to be used is depending on the layout manager of the panel.
The most widely used programming interfaces for these protocols are sockets.
TCP is a connection-oriented protocol that provides a reliable flow of data between
two computers. Example applications that use such services are HTTP, FTP, and
Telnet. UDP is a protocol that sends independent packets of data, called datagrams,
from one computer to another with no guarantees about arrival and sequencing. Ex-
ample applications that use such services include Clock server and Ping. The TCP
and UDP protocols use ports to map incoming data to a particular process running
on a computer. Port is represented by a positive (16-bit) integer value. Some ports
have been reserved to support common/well known services:
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp
login 513/tcp
http 80/tcp,udp
https 443/tcp,udp
Each Internet packet contains both the destination host address and the port num-
ber on that host to which the message/request has to be delivered. The host computer
dispatches the packets it receives to programs by looking at the port numbers spec-
ified within the packets. That is, IP address can be thought of as a house address
when a letter is sent via post/snail mail and port number as the name of a specific
individual to whom the letter has to be delivered.
If everything goes well, the server accepts the connection. Upon acceptance, the
server gets a new socket bound to a different port. It needs a new socket (con-
sequently a different port number) so that it can continue to listen to the original
socket for connection requests while serving the connected client.
The Classes
ContentHandler
DatagramPacket
DatagramSocket
DatagramSocketImpl
HttpURLConnection
InetAddress
MulticastSocket
ServerSocket
Socket
SocketImpl
URL
URLConnection
URLEncoder
URLStreamHandler
The Interfaces
ContentHandlerFactory
FileNameMap
SocketImplFactory
URLStreamHandlerFactory
Exceptions
BindException
ConnectException
MalformedURLException
NoRouteToHostException
ProtocolException
SocketException
UnknownHostException
UnknownServiceException
The two key classes from the java.net package used in creation of server and client
programs are:
ServerSocket
Socket
A server program creates a specific type of socket that is used to listen for client
requests (server socket), In the case of a connection request, the program creates
a new socket through which it will exchange data with the client using input and
output streams. The socket abstraction is very similar to the file concept: developers
have to open a socket, perform I/O, and close it.
A simple Server Program in Java The steps for creating a simple server program
are:
Perform communication with client Receive from client: String line = is.readLine();
Send to client: os.writeBytes(Hello);
As already said, TCP guarantees the delivery of packets and preserves their order
on destination. Sometimes these features are not required and since they do not come
without performance costs, it would be better to use a lighter transport protocol. This
kind of service is accomplished by the UDP protocol which conveys datagram packet
s. Datagram packets are used to implement a connectionless packet delivery service
supported by the UDP protocol. Each message is transferred from source machine
to destination based on information contained within that packet. That means, each
packet needs to have destination address and each packet might be routed differently,
and might arrive in any order. Packet delivery is not guaranteed.
DatagramPacket
DatagramSocket
The class DatagramPacket contains several constructors that can be used for cre-
ating packet object. One of them is: DatagramPacket(byte[] buf, int length, InetAd-
dress address, int port); This constructor is used for creating a datagram packet for
sending packets of length length to the specified port number on the specified host.
The message to be transmitted is indicated in the first argument.
int getLength() : Returns the length of the data to be sent or the length of the
data received.
void setData(byte[] buf) : Sets the data buffer for this packet.
The class DatagramSocket supports various methods that can be used for trans-
mitting or receiving data a datagram over the network. The two key methods are:
void send(DatagramPacket p) Sends a datagram packet from this socket. void re-
ceive(DatagramPacket p) Receives a datagram packet from this socket. A simple
UDP server program that waits for clients requests and then accepts the message
(datagram) and sends back the same message is given below. Of course, an extended
server program can manipulate clients messages/request and send a new message as
a response.
3.5 Multithreading
A program can be divided into a number of small processes. Each small process
can be addressed as a single thread (a lightweight process). Multithreaded programs
contain two or more threads that can run concurrently. This means that a single
program can perform two or more tasks simultaneously. For example, one thread
is writing content on a file at the same time another thread is performing spelling
check.
An instance of Thread class is just an object, like any other object in java. But a
thread of execution means an individual lightweight process that has its own call
stack. In java each thread has its own call stack.
Even if you dont create any thread in your program, a thread called main thread
is still created. Although the main thread is automatically created, you can control it
by obtaining a reference to it by calling currentThread() method.
1. New : A thread begins its life cycle in the new state. It remains in this state
until the start() method is called on it.
2. Runable : After invocation of start() method on new thread, the thread becomes
runable.
3. Running : A method is in running thread if the thread scheduler has selected it.
4. Waiting : A thread is waiting for another thread to perform a task. In this stage
the thread is still alive.
5. Terminated : A thread enter the terminated state when it complete its task.
This class is used to generate native system input events for the purposes of test
automation, self-running demos, and other applications where control of the mouse
and keyboard is needed. The primary purpose of Robot is to facilitate automated
testing of Java platform implementations.
Using the class to generate input events differs from posting events to the AWT
event queue or AWT components in that the events are generated in the platforms
native input queue. For example, Robot.mouseMove will actually move the mouse
cursor instead of just generating mouse move events.
Note that some platforms require special privileges or extensions to access low-
level input control. If the current platform configuration does not allow input con-
trol, an AWTException will be thrown when trying to construct Robot objects. For
example, X-Window systems will throw the exception if the XTEST 2.2 standard
extension is not supported (or not enabled) by the X server.
Applications that use Robot for purposes other than self-testing should handle
these error conditions gracefully.
Method Details:
mouseMove
mousePress
Presses one or more mouse buttons. The mouse buttons should be released using
the mouseRelease method.
mouseRelease
keyPress
Presses a given key. The key should be released using the keyRelease method.
Key codes that have more than one physical key associated with them (e.g. KeyEvent.VK SHIFT
could mean either the left or right shift key) will map to the left key.
keyRelease
.properties is a file extension for files mainly used in Java related technologies to
store the configurable parameters of an application. They can also be used for stor-
ing strings for Internationalization and localization; these are known as Property
Resource Bundles.
Each parameter is stored as a pair of strings, one storing the name of the parameter
(called the key/map), and the other storing the value.
Property files support two formats
1.Text file format In this format, different key, value pairs are separated by newline
character
2.XML format This is standard XML format.
Properties is a file extension for files mainly used in Java related technologies to
store the configurable parameters of an application. Java Properties files are amazing
resources to add information in Java. Generally, these files are used to store static
information in key and value pair. Things that you do not want to hard code in your
Java code goes into properties files. The advantage of using properties file is we
can configure things which are prone to change over a period of time without the
need of changing anything in code. Properties file provide flexibility in terms of
configuration.
JNativeHook is a library to provide global keyboard and mouse listeners for Java.
The library aims to provide a portable and reliable method for delivering keyboard
and mouse events to a Java application that would otherwise be inaccessible. This
will beneficial for any Java application that requires user input without having focus.
The library accomplishes this task by leveraging platform dependent native code to
create a low level hook and deliver native events back to the virtual machine through
Javas native interface.
The output video can be post-processed to other formats, using a video conversion
tool such as ffmpeg.
The screen recorder, player and converter tools are all self contained jar files,
requiring only the Java Runtime Environment for execution. These tools operate
independently of any other external software codecs and libraries, to provide true
platform independent video capture.
java-screen-recorder is licensed under the MIT License.
Chapter 4
Similar Softwares
1. TeamViewer
2. Join.me
4. WebEx Free
5. AMMYY Adminn
6. Mikogo
7. Ultra VNC
8. Splashtop
Chapter 5
Screenshots of Project
5.1 Clients
5.2 Server
Chapter 6
There is a lot of scope for further development and polishing of the software. This
software can only connect those computers that are connected to the same LAN
connection.That is a major drawback. Security is also a primary concern as it is
not encrypted.Functionality like file transfers, collaborations and mobile access are
not available. Chat option has not been deployed in the software. Audio and video
streaming are also met with a disappointing no.
References