SlideShare a Scribd company logo
1 of 92
1
Computer Science Department
RAPA Project
Graduation project for Remote access Pc Administrator
Submitted By
Khaled Elsawy
Mahmoud Housni
Mohamed Abd Elmoghny
Ramy wael
Rahma Moustafa
Aya Elsayed
Supervised By
DR. Dina Samir
Dr. Manar El Shazly
Computer Science Department
Modern Academy in Maadi
2013
2
Acknowledgement
Many Thanks to all who contributed in this project to be accomplished...
We would like to thank the management of our university Modern Academy in
Maadi presented in…
 Prof. Dr.Nabil Deabes
For providing all educational facilities and supplies needed to help students in
building their academic and professional career.
 Prof. Dr. Mahmoud El-Sayed Ahmed Gadallah
For his continues support to his all students in the academy, and his great
dedication to make the faculty of computer science a better place for his students.
 Dr. Dina Samir Moussa Hassan
For giving us the honor to be under her supervision and her wise advice for better
achievement.
 Eng. Manar El Shazly
For giving us her time and effort whenever we needed her for support.
3
Dedication
We would like to express our sincere thanks to our Academy Professors,
 Prof. Dr. Mahmoud El-Sayed Ahmed Gadallah , Head of Computer Science
Department,
 Dr. Dina Samir Moussa Hassan , Supervisor of our project
 Eng. Manar El Shazly , Assistant of our Project
 Dr.Sherif Hussein.
 Dr. Hany Al Nashar.
 Dr. Jane George Botros.
 Eng. Sherry Girgis.
For their constant encouragement, splendid and gracious guidance throughout
our work. They has been a constant source of inspiration and helped us in
each stage. We express our deep gratitude for such encouragement and kindly
cooperation.
This Project is a special dedication for our Academy that really helped us in
building this project.
In our future work, we are going to build our e-mail system on the Academy
website to make the learning process more efficient and more reliable using
the digital signature technology.
4
Abstract
As computer became an important thing in everyday use, so as our personal data on
the computer. But what if you are out and you need some of these data or want to send data
to your computer?
In this project we handled this problem using a technique called Remote Access application
[1, 2]. This application allows the computer to be controlled from a remote place with a smart
phone device (Android) [3, 4] through Internet. It means that the monitor of the computer
will be seen and controlled from the mobile. It turns the phone into a wireless keyboard and
mouse with a touchpad.
The project uses a back end PC application for the computer, and a front end Android based
application with some sort of wireless connection between them. By getting IP address from
the PC and browse it on mobile phone.
The mobile is able to access the computer and its functions by mobile keys and use built in
keyboard. Mobile user can access information from PC on remote place due to internet
connection. Operations can be controlled by mobile remote device of PC.
.
5
Contents
1. Introduction................................................................................................................................9
1.1 Overview.............................................................................................................................9
1.2 Survey and previouswork..................................................................................................11
2. Project idea and analysis and Design ..........................................................................................17
2.1 Project idea .......................................................................................................................17
2.2 Analysis and design for local mode .....................................................................................18
2.3 Analysis and design for internet mode .................................................................................21
3. Software life cycle.....................................................................................................................27
3.1 Water fall model................................................................................................................27
3.1.1 Requirements .............................................................................................................27
3.1.2 Ease of use.................................................................................................................27
3.1.3 Mobility.....................................................................................................................28
3.1.4 Flexible Control .........................................................................................................28
3.1.5 Power........................................................................................................................28
3.1.6 Reliability ..................................................................................................................28
3.1.7 Bandwidth..................................................................................................................28
3.1.8 Security .....................................................................................................................28
3.1.9 Use Case Diagram......................................................................................................29
3.2 Design ..............................................................................................................................31
3.2.1 For client side.............................................................................................................31
3.2.2 For the server side ......................................................................................................33
3.3 Coding ..............................................................................................................................35
3.3.1 Coding for the client side ............................................................................................35
3.3.2 Coding for the server side............................................................................................39
3.3.3 Android side code.......................................................................................................42
3.3.4 Sample code from the WOL........................................................................................45
4. TOOLS.....................................................................................................................................46
4.1 ANDROID........................................................................................................................46
4.2 TCP PROTOCOL..............................................................................................................50
4.3 JAVA...............................................................................................................................50
4.4 SQL..................................................................................................................................53
6
4.5 PHP..................................................................................................................................54
4.6 WakeOnLan......................................................................................................................56
5. Project RAPA manual................................................................................................................58
5.1 Requirement for client........................................................................................................58
5.2 Requirement for server.......................................................................................................58
5.3 1-For the (local mode) on computer to control another computer:..........................................58
5.4 For the (local mode) on computer to be controlled by another computer:...............................68
5.5 Setting up the RAPA app on your Android device (local mode) ............................................68
5.6 Setting up the RAPA app on your Android device (internet mode) ........................................80
5.7 Setting up the RAPA app on your computer (internet mode) .................................................84
6. Conclusion................................................................................................................................88
7. Future work ..............................................................................................................................89
8. References................................................................................................................................90
7
1. List of figures
FIGURE 1 LOG ME IN SERVER SIDE ..................................................................................................................................11
FIGURE 2 LOGMEIN SERVER SIDE.....................................................................................................................................12
FIGURE 3 TEAMVIEWER INTERFACE...............................................................................................................................13
FIGURE 4 TEAMVIEWER LOG IN ........................................................................................................................................14
FIGURE 5 TEAMVIEWER LOG IN ........................................................................................................................................14
FIGURE 6 TEAMVIEWER CONNECTED SCREEN ..........................................................................................................15
FIGURE 7 JOIN.ME LOG IN SCREEN...................................................................................................................................16
FIGURE 8 JOIN.ME LOG IN SCREEN FROM PC ..............................................................................................................16
FIGURE 9 LOG IN FROM PC CHOOSER.............................................................................................................................59
FIGURE 10 SERVER CONNECTED SCREEN.....................................................................................................................60
FIGURE 11 IP FIELD REQUEST IN CLIENT SCREEN ....................................................................................................61
FIGURE 12 ACCEPTING IP ADDRESS.................................................................................................................................61
FIGURE 13 CONNECTED SCREEN FROM PC CLIENT..................................................................................................62
FIGURE 14 MINIMIZING TASKBAR AT CLIENT SIDE.................................................................................................63
FIGURE 15 FILE TRANSFER WINDOW ..............................................................................................................................64
FIGURE 16 CHOOSING FILE TO TRANSFER....................................................................................................................65
FIGURE 17 SENDING FILE......................................................................................................................................................66
FIGURE 18 FILE TRANSFER SENT ......................................................................................................................................67
FIGURE 19 ANDROID LOCAL IP LOG IN ..........................................................................................................................69
FIGURE 20 ANDROID LOCAL FILLING IP ........................................................................................................................70
FIGURE 21 ANDROID CONNECTED SCREEN .................................................................................................................71
FIGURE 22 ANDROID VIRTUAL KEYBOARD.................................................................................................................72
FIGURE 23 ANDROID FILE TRANSFER MENU...............................................................................................................73
FIGURE 24 ANDROID BROWSING FILE ............................................................................................................................74
FIGURE 25 ANDROID SD CARD FILES BROWSING .....................................................................................................75
FIGURE 26 ANDROID FILE TRANSFER SENDING ........................................................................................................76
FIGURE 27 ANDROID WOL MENU......................................................................................................................................78
FIGURE 28 ANDROID WOL MAGIC PACKET SENT......................................................................................................79
FIGURE 29 ANDROID INTERNET LOG IN.........................................................................................................................81
FIGURE 30 ANDROID CONNECTED SCREEN .................................................................................................................82
FIGURE 31 ANDROID VIRTUAL KEYBOARD.................................................................................................................83
FIGURE 32 PC INTERNET CHOOSER..................................................................................................................................84
FIGURE 33 PC REGISTER MENU..........................................................................................................................................85
FIGURE 34 FILLING THE REGISTRATION MENU .........................................................................................................86
FIGURE 35 PC REGISTERAITION SUBMETTED.............................................................................................................87
8
2. List of Abbreviations
RAPA Remote access pc administrator
PC Personal computer
App Application
SD Card Secure digital card
TCP/IP Transmission control protocol / Internet protocol
ISP IP Internet service provider internet protocol
SQL Standard query language
GSM Global system for mobile communication
API Application programming interface
SDK Software development kit
Lan Local area network
GUI Graphical user interface
Fig Figure
NIC Network Interface Card
9
1. Introduction
1.1 Overview
This project is about how to control PC applications remotely inside a house or an office, etc.
Initially mobile phones were developed only for voice communication but now-a-days
the scenario has changed, voice communication is just one aspect of a mobile phone.
There are other aspects which are major focus of interest. The internet opened whole new
aspects for the mobile uses.
For this purpose, we designed and implemented mobile system software, called RAPA that
enables an Android phone to act as a remote controller device for desktop/laptop PCs and their
applications.
RAPA is a system/tool that allows users to control their desktop computer applications from
an android phone over a wireless network or Internet. Its architecture is based on client-server
system. It consists of two parts: a server part and a client part.
The server part runs on a desktop PC (or laptop PC depending on the usage scenario) to be
controlled remotely.
The client part runs on an android phone that can be easily carried by a user and that will act
as the remote controller device for desktop PC and its applications. The server side of the system
is capable of wake the server side, listening incoming connections, sending and receiving data,
processing control commands, taking screenshots, modifying and sending images back to client
side, and sending mouse and keyboard events to the operating system . (The client is capable of
opening connections to the server, sending/receiving data and processing control commands, and
sending mouse and keyboard events to the server side. Both the server side and client side of the
system are coded in JAVA. The server side of the system runs on top of the Windows XP
operating system or higher versions of Windows [1] and the client side runs on top of the
Android operating system. [2, 3].
The PC screen will be access on the mobile. The mobile can be able to access its functions
by mobile keys and using inbuilt keyboard. Mobile user can access information from PC on
remote place due to the internet connection. Operations can be controlled by mobile remote
device of PC. Accessing input controls of PC like keyboard, mouse and others can be done by
10
mobile. Integration of mobile & PC can be used to run the applications. Utilization of the database of PC
can be used for doing operations on PC like sending video files by accessing the information from Mobile
to PC. A central database server is hosted on the real IP with particular domain name. A web hosting
server is based on windows with IIS and apache. It supports web applications with database for storing
the web pages.
—
11
1.2 Survey and previous work
— There are already some products for controlling a PC from phone, similar to our work.
They are Remote Control and Mobile Administrator They uses also client/server [5] paradigm
and provides access to a PC over a TCP/IP [6] connection that goes over either a modem or a
wireless channel.[7]
— Here are the top and most famous software :
— LogMeIn [8]
The first and highest rated product in the remote access applications category is LogMeIn.
This is a web-based service that's extremely easy to set up and use and can be accessed from any
PC with a browser. The free version won't allow file transfer [9] or remote printing but is a great
solution for accessing your remote data as well as file sharing .Although the paid-for LogMeIn
service is not cheap.
— Photos for the server side and client side:
—
Figure 1 log me in server side
12
Figure 2 Logmein server side
13
— TeamViewer[10]
— It is very reliable, and has great features. There is a portable version of the viewer if you
want to use an application or they also have a web-based control site that requires no installation
to remotely control computers. Although TeamViewer is slower than LogMeIn. The web-based
version uses HTML and Flash so it is usable even if the browser or firewall doesn't allow Java.
— Photos for the server side and client side:
Figure 3 teamviewer interface
14
Figure 4 teamviewer log in
Figure 5 teamviewer log in
15
Figure 6 teamviewer connected screen
—
—
16
— Join.me [11]
Its small 1 MB download and simple security code make it very quick to establish a remote
session. Join.me gives you a conference line to call into, In live stream there is about 30 second or so
lag from what you are doing to what watchers see.
Photos for client side and server side:
Figure 7 Join.me log in screen
Figure 8 join.me log in screen from PC
17
2. Project idea and analysis and Design
2.1 Project idea
This project main idea is about control a computer via another computer or android based
mobile or tablet. The architecture of this software is based on client-server system. So it consists
of two parts: a server part and a client part. Both the server side and client side of the system are
coded in JAVA[12]. For the network communication between server and client the program uses
TCP protocol which allows reliable communication between two applications. TCP is typically
used over the Internet Protocol, which is referred to as TCP/IP. our main new idea in this
software was to allow FTP as a free software with no fee, but as a few software started to enable
this features, so we thought in a new idea .Remote accesses generally requires an open server to
connect to it so if the client wants to connect to his computer he must leave it working all the
time, And if he did the computer still may shut down for many reasons, like if the electricity
went off. To avoid this issue project RAPA enables the Wake On Lan [13] mode to start the
server.
Android mobiles have very limited computing power than a desktop. Therefore, a desktop
computer should not send a lot of commands and data to the mobile when it's not needed. an
example for the situations that the user don’t need some of the RAPA features is when the user is
on a work meeting and have a presentation so To increase the performance further for
applications like PowerPoint, the client has a presentation mode which only enables the user to
control the keyboard and mouse without getting screenshot images from the server. This saves
bandwidth and power.
18
2.2 Analysis and design for local mode
Client side flow chart
19
Server side flow chart
20
Use Case Diagram:-
It is a graphical representation of a user's interaction with the system. A use case diagram can
portray the different types of users of a system and the various ways that they interact with the
system.
21
2.3 Analysis and design for internet mode
Computer side flow chart
22
Mobile side flow chart
23
Data Flow Diagram:-
1. The user at first time he sets the user name that will be used later on mobile.
2. The user name and the IP automatically stored in the database.
3. The application generates a random password of 8 bites every time the application is
used.
4. The mobile requests a connection to computer by adding the username and password
obtained from the computer application and send the request to database.
5. If the username is correct the database sends the computers IP to the mobile application.
6. If the username is wrong the application denies the connection.
7. The mobile application uses the computers IP to connect to the computer. And the
computer application checks the password if it is right the computer application allows
the connection else it is disconnected.
8. The computer capture image repeatedly for the computer screen and sends it to the
mobile application.
9. The mobile application enables virtual keyboard and mouse to control the computer.
10. The application enables file transfer between mobile and computer.
24
25
Entity Relationship Diagram:-
• The data base table :
1. User name: where the user name is provided from the user.
2. Password: where the password is chosen by the user.
3. Computer (PC) IP: where the computer local IP address is stored.
4. Computer (PC) ISP: where the computer ISP address (Real IP) is stored.
5. The mobile IP: where the mobile IP is obtained from the mobile application and
stored.
6. The mobile ISP: where the mobile ISP address (Real IP) is obtained from the
mobile application and stored.
26
Structure of the RAPA Client:
The client side component is responsible for interacting with the phone user. With this
interaction it can get the server IP address, port number username and password. Those are the
information required to login into and authenticate with the server. Another function of the client
is to show the screenshot images arriving from the server side. This function is important for
enabling the phone user to have total control on the PC and to keep track of what is going on.
Another responsibility of the client side is to detect mouse and keyboard events, and send those
events to the server side. It contains the (Wake On Lan) wish responsible for start the Server side
if it is on sleep mode or shut down mode It uses TCP as the transport layer, therefore the
communication is stream oriented.
Structure of the RAPA Server:
The server side is running on a desktop PC or laptop PC to be controlled remotely. The
server process starts listening on TCP/IP port after being started up on the desktop PC. The client
user has to know the IP address of the desktop PC and the port number for being able to connect
to the desktop from the android phone.
In the Internet mode, a username and password is required for the user to login to the system.
The server process asks for the password, and then authenticates the user. In this way, only users
with previously created accounts can access the PC for controlling. These parameters (username,
password) are maintained at the server side and are configurable via a GUI interface.
27
3. Software life cycle
3.1 Water fall model:
It is the model which is use to linear process development. It is a sequential design process,
often used in software process development in which progress is seen as flowing steadily
downwards through the phases of Conception, Initiation, Analysis, Design, Construction,
Testing, Production/Implementation and Maintenance. [14]
3.1.1 Requirements:
In this phase we gather necessary information which will use for development of any project.
For our project we gather information like what are the user's needs in the remote access
software market. It also defines system requirement specification. This phase defines what to do.
The purpose of this project was to develop an effective system that allows a mobile device to
access and control a remote computer connected to the Internet, able to start computers from shut
down mode and transfer data between mobile and computer. With this in mind, it was decided to
use a client – server architecture due to its simplicity, practical usage and because it does not
require other non-user controllable components.
There were some requirements that have needed to be implemented in the RAPA project as it’s
required by the user; we used it as the basic guidelines in designing our system:
3.1.2 Ease of use:
The system should be easily launched, configured and used. It should have a nice and graphical
user interface.
28
3.1.3 Mobility:
The system should support mobility of the user while controlling the desktop computer
application. Mobility can be enabled if the remote control device is portable and if its connection
to the desktop computer is wireless. The wireless connection can be a short-range local or
personal area connection.
3.1.4 Flexible Control:
The user should be able to control as much functionality as possible. Our goal is to let the user
do everything that he/she can do on a desktop computer. The user will be given keyboard inputs
and mouse inputs to the desktop PC and will have as much screen information as possible.
3.1.5 Power:
The system should be power efficient as the android based devices have limited energy.
3.1.6 Reliability:
The system and connectivity should be reliable enough so that a user can control the desktop
computer without losing data and/or commands.
3.1.7 Bandwidth:
The system should be bandwidth efficient on the wireless link between the PDA and desktop PC,
since the same link can be used for many other applications that are run at the same time, like an
FTP transfer, a web browser activity, a backup activity, and so on.
3.1.8 Security:
Only authorized users should control the client computer. Therefore the system should support
authentication of the users that would like to access and control the system remotely via mobile.
[15]
Here is an example about what users should be able to do using RAPA system in the (local
mode) using a use case diagram.
29
3.1.9 Use Case Diagram:-
30
As we see in the use case the system basically involves communication between an android
phone and a remote desktop. The remote desktop and android phone can communicate with each
other using the IP address and ports. Data can be transferred using ports [16]. Socket [17] of
android phone and socket of computer. This transferred data can take the form of commands or
files. The Server is implemented in Java and Client in android.
31
3.2 Design
In design phase we then construct design to how to implement those requirements gathered into
phase (1). This phase define how to do .For this phase we then write algorithms
3.2.1 For client side:
3.2.1.1 Client initiator
This class is responsible for starting the communication through the socket and port.
Step 1: Start
Step 2: Declare variables ip, port, socket,
Step 3: Initialize variables
ip ← null
port ← null
socket ←ip, port
Step 4: socket(ip, port)
socket.accept();
Step 5: call image receiver class
Step 6: Call file transfer
3.2.1.2 Image receiver
This class is responsible for receiving the buffered image from the socket and views it.
Step 1: Start
Step 2: Declare variables socket, image, ObjectInputStream, view
Step 3: loop
3.1 get image from ObjectInputStream
3.2 displaying image in view
Step 4: from view call class controls
32
3.2.1.3 Controls sender
This class is responsible for sending the coordinates of the cursor to the server side, also sends
the keyboards orders.
Step 1: Start
Step 2: Declare variables controls, image, ObjectOutputStream, X, Y
Step 3: getting the dimensions of the X, Y of cursor the view throw
socket
Step 4: get keyboard keys and sent through socket in
ObjectOutputStream
Step 5: Stop
3.2.1.4 File transfer
It is responsible for transferring files between server and client.
Step 1: Start
Step 2: ObjectOutputStream, file ,socket
Step 3: selecting file
3.1 file fragmented to byte[]
3.2 byte [] sent in ObjectOutputStream through socket
Step 4: Stop
33
3.2.2 For the server side:
3.2.2.1 Sever initiator
Responsible for starting the communication in the server side
Step 1: Start
Step 2: Declare variables port, Serversocket,
Step 3: Initialize variables
Serversocket ← port
Step 4: Serversocket (port)
Serversocket.accept();
Step 5: call image sender class
Step 6: Call file transfer
3.2.2.2 Image sender
Responsible for capturing the image and sending it through the socket
Step 1: Start
Step 2: Declare variables image, ObjectOutputStream
Step 3: loop
3.1 capture image from computer
3.2 image sent through Serversocket
Step 4: call control receiver
34
3.2.2.3 Controls receiver
Responsible for receiving the events and cursor coordinates and synchronize them with the
server
Step 1: Start
Step 2: Declare variables controls, ObjectInputStream, X, Y ,key
Step 3: getting the dimensions of the X, Y of cursor from
ObjectInputStream through socket
Step 3.1 apply cursor movement and actions
Step 4: get keyboard keys from ObjectInputStream through socket
Step 4.1 apply keyboard actions
Step 5: Stop
3.2.2.4 File transfer
Responsible for transferring files between server and client
Step 1: Start
Step 2: ObjectOutputStream, file, socket
Step 3: selecting file
3.1 file fragmented to byte []
3.2 byte [] sent in ObjectOutputStream through socket
Step 4: Stop
35
3.3 Coding:
Now base on design phase we then write actual code to implement algorithms This code should
be efficient.
Here we will not be able to write the whole code as it is too long, and some parts of it are under
implementation
3.3.1 Coding for the client side
3.3.1.1 Client initiator
36
3.3.1.2 Image receiver
37
3.3.1.3 Controller
38
3.3.1.4 File transfer
39
3.3.2 Coding for the server side
3.3.2.1 Server initiator
40
3.3.2.2 Image sender
41
3.3.2.3 Command receiver
42
3.3.3 Android side code (not the full code as its under implementation)
3.3.3.1 Android initiator
3.3.3.2 Image receiver
43
3.3.3.3 File transfer
44
3.3.3.4 Android controller
45
3.3.4 Sample code from the WOL (magic packet)
46
4. TOOLS
4.1 ANDROID: [18, 19]
Android is a powerful Operating System supporting a large number of applications in
Smart Phones. These applications make life more comfortable and advanced for the users.
Hardware’s that support Android is mainly based on ARM architecture platform. All Android
hardware and system service access is managed using Dalvik as a middle tier. By using a VM to
host application execution, developers have an abstraction layer that ensures they never have to
worry about a particular hardware implementation.
Some of the current features and specifications of android are:
1. Application framework- it enables reuse and replacement of components
2. A run time used to execute and host Android applications, including the Dalvik virtual
machine and the core libraries that provide Android specific functionality. The run time is
designed to be small and efficient for use on mobile devices.
3. Integrated browser- it is based on the open source web kit engine
4. Optimized graphics- it is peered by a custom 2D, 3D graphics library.
5. SQLite
6. Media support
7. GSM technology
8. Bluetooth, EDGE, 3G, Wi-Fi, camera, GPS, compass etc.
9. A hardware reference design that describes the capabilities required of a mobile device in
order to support the software stack
10. A Linux operating system kernel that provides the low-level interface with the hardware,
memory management, and process control, all optimized for mobile devices.
11. Open source libraries for application development including SQLite, Web Kit, OpenGL, and
a media manager
47
Applications
• Android applications are composed of one or more application components (activities, services,
content providers, and broadcast receivers)
• Each component performs a different role in the overall application behavior, and each one can
be activated individually (even by other applications)
• The manifest file must declare all components in the application and should also declare all
application requirements, such as the minimum version of Android required and any hardware
configurations required
• Non-code application resources (images, strings, layout files, etc.) should include alternatives
for different device configurations (such as different strings for different languages)
The Android software development kit (SDK) includes everything you need to start developing,
testing, and debugging Android applications. Included in the SDK download are:
The Android APIs
The core of the SDK is the Android API libraries that provide developer access to the Android
stack. These are the same libraries used at Google to create native Android applications.
Development Tools
To turn Android source code into executable Android applications, the SDK includes several
development tools that let you compile and debug your applications.
The .dex executable are created by transforming Java language compiled classes using the tools
supplied within the SDK.
48
The Android Emulator
The Android Emulator is a fully interactive Android device emulator featuring several
alternative skins. Using the emulator, you can see how your applications will look and behave on
a real Android device. All Android applications run within the Dalvik VM so that the software
emulator is an excellent environment in fact, as it is hardware-neutral, it provides a better
independent test environment than any single hardware implementation.
Full Documentation
The SDK includes extensive code-level reference information detailing exactly what’s
included in each package and class and how to use them. In addition to the code documentation,
Android’s reference documentation explains how to get started and gives detailed explanations
of the fundamentals behind Android development.
Sample Code
The Android SDK includes a selection of sample applications that demonstrate some of
the possibilities available using Android, as well as simple programs that highlight how to use
individual API features.
Online Support
Despite its relative youth, Android has generated a vibrant developer community.
The Google Groups at http://code.google.com/android/groups are active forums of Android
developers with regular input from the Android development team at Google
Socket programming [20]
Sockets provide the communication mechanism between two computers using TCP. A client
program creates a socket on its end of the communication and attempts to connect that socket
to a server.
49
When the connection is made, the server creates a socket object on its end of the
communication. The client and server can now communicate by writing to and reading from the
socket.
The java.net. Socket class represents a socket, and the java.net. Server Socket class provides a
mechanism for the server program to listen for clients and establish connections with them.
The following steps occur when establishing a TCP connection between two computers using
sockets:
1. The server instantiates a Server Socket object, denoting which port number
communication is to occur on.
2. The server invokes the accept() method of the Server Socket class. This method waits
until a client connects to the server on the given port.
3. After the server is waiting, a client instantiates a Socket object, specifying the server
name and port number to connect to.
4. The constructor of the Socket class attempts to connect the client to the specified server
and port number. If communication is established, the client now has a Socket object
capable of communicating with the server.
5. On the server side, the accept() method returns a reference to a new socket on the
server that is connected to the client's socket.
After the connections are established, communication can occur using I/O streams. Each socket
has both an Output Stream and an Input Stream. The client's Output Stream is connected to the
server's Input Stream, and the client's Input Stream is connected to the server's Output Stream.
TCP is a two way communication protocol, so data can be sent across both streams at the same
time.
50
4.2 TCP PROTOCOL: [21]
TCP protocol allows for reliable communication between two applications. TCP is typically used
over the Internet Protocol, which is referred to as TCP/IP.
TCP server may serve several clients concurrently. The server creates one socket for each
client, and these sockets share the same local socket address.
During the design phase, we chose TCP as the transport layer instead of UDP in order to have
reliable delivery of commands and data. Additionally, we use IP addresses to address the end
points [22], [23]. This enables the system to work also over Internet, i.e. the client and server can
be located in any two points on the Internet. If the system is to be used only locally, then IP
addresses will be used
4.3 JAVA [24]
As the Java language is the most popular platform that works in both mobile and pc, its rapid
ascension and wide acceptance can be traced to its design and programming features, particularly
in its promise that you can write a program once, and run it anywhere. Java was chosen as the
programming language for network computers (NC) and has been perceived as a universal front
end for the enterprise database. As stated in Java language white paper by Sun Microsystems:
"Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral,
portable, multithreaded, and dynamic." So we chose it to create our program. It shares many
features common to most programming languages in use today, the language should look
familiar to C and C++ programmers because it was designed with C and C++ constructs where
the languages are similar. It is designed for maximum portability with as few implementation
dependencies as possible. An int, for example, is a 32-bit signed two's-complement integer in all
implementations, irrespective of the CPU architecture on which the program executes. Defining
everything possible about the language and its runtime environment enables users to run
compiled code anywhere and share code with anyone who has a Java runtime environment. It is
indeed valuable for distributed network environments like the Web. However, it goes well
51
beyond this domain to provide a powerful general-purpose programming language suitable for
building a variety of applications that either do not depend on network features or want them for
different reasons.as The ability to execute downloaded code on remote hosts in a secure manner
is a critical requirement for many organizations JAVA is the proper programing language.
Advantages of JAVA
JAVA offers a number of advantages to developers.
Java is simple: Java was designed to be easy to use and is therefore easy to write, compile,
debug, and learn than other programming languages. The reason that why Java is much simpler
than C++ [25] is because Java uses automatic memory allocation and garbage collection where
else C++ requires the programmer to allocate memory and to collect garbage.
Java is object-oriented: Java is object-oriented because programming in Java is centered on
creating objects, manipulating objects, and making objects work together. This allows you to
create modular programs and reusable code.
Java is platform-independent: One of the most significant advantages of Java is its ability to
move easily from one computer system to another.
The ability to run the same program on many different systems is crucial to World Wide Web
software, and Java succeeds at this by being platform-independent at both the source and binary
levels.
Java is distributed: Distributed computing involves several computers on a network working
together. Java is designed to make distributed computing easy with the networking capability
that is inherently integrated into it.
52
Writing network programs in Java is like sending and receiving data to and from a file. For
example, the diagram below shows three programs running on three different systems,
communicating with each other to perform a joint task.
Java is interpreted: An interpreter is needed in order to run Java programs. The programs are
compiled into Java Virtual Machine code called byte code.
The byte code is machine independent and is able to run on any machine that has a Java
interpreter. With Java, the program need only be compiled once, and the byte code generated by
the Java compiler can run on any platform.
Java is secure: Java is one of the first programming languages to consider security as part of its
design. The Java language, compiler, interpreter, and runtime environment were each developed
with security in mind.
Java is robust: Robust means reliable and no programming language can really assure reliability.
Java puts a lot of emphasis on early checking for possible errors, as Java compilers are able to
detect many problems that would first show up during execution time in other languages.
Java is multithreaded: Multithreaded is the capability for a program to perform several tasks
simultaneously within a program. In Java, multithreaded programming has been smoothly
integrated into it, while in other languages, operating system-specific procedures have to be
called in order to enable multithreading. Multithreading is a necessity in visual and network
programming.
53
4.4 SQL [26]
Structured Query Language or SQL is a standard computer language for accessing
and manipulating database systems. It comprises one of the fundamental building blocks of
modern database architecture. It defines methods using which user can create and manipulate
databases on all major platforms. It is a set based declarative programming language and not an
imperative programming language like C or BASIC. It allows the user to create, update, delete,
and retrieve data from a database. It is very simple and easy to learn. It works with database
programs like DB2, Oracle, MS Access, Sybase, and MS SQL Server etc.
Advantages of SQL:
High Speed:
SQL Queries can be used to retrieve large amounts of records from a database quickly and
efficiently.
Well Defined Standards Exist:
SQL databases use long-established standard, which is being adopted by ANSI & ISO. Non-SQL
databases do not adhere to any clear standard.
No Coding Required:
Using standard SQL it is easier to manage database systems without having to write substantial
amount of code.
Emergence of ORDBMS:
Previously SQL databases were synonymous with relational database. With the emergence of
Object Oriented DBMS, object storage capabilities are extended to relational databases.
54
Disadvantages of SQL:
Difficulty in Interfacing:
Interfacing an SQL database is more complex than adding a few lines of code.
More Features Implemented in Proprietary way:
Although SQL databases conform to ANSI & ISO standards, some databases go for proprietary
extensions to standard SQL to ensure vendor lock-in.
4.5 PHP (internet mode): [27]
As RAPA in the internet mode considered as a web application so we used PHP to connect our
system with the dynamic database that the client and the server will be connected through.
This language holds the capability to process all the data received from the client’s side or user
side before sending back as a hypertext. PHP is a general-purpose scripting language which is
used for web application development.
Advantages of PHP:
Open Source:
PHP is an open source technology, which means its source code, development environment etc.
are freely available. Also, PHP community is continually developing new functionalities of this
language thus improving its code package, base libraries and various classes.
55
Simple & Easy:
PHP developed websites or applications have much simple code to write or understand. The
level of complexity of a php code is much lesser than its competing technologies for developing
web applications or dynamic sites.
Platform Independent:
Applications developed in PHP are platform independent and can be executed on a variety of
platforms and web servers. Websites developed using PHP can be hosted on nearly all the web-
servers available in the market. The only constraint which can be considered is the version
incompatibility, which is also not a major issue because most of the time servers are back-
compatible with the language versions.
Enhanced graphics:
PHP can be used to generate images dynamically or at run-time. Using the image functionalities,
more number of image formats could be supported in a website or web application.
The list for the features of PHP applications is very long one. Mentioned above, were some of
the major features of a PHP application. These features bring the ease of coding to a developer
and high quality interaction for the user.
Advantages of developing an application in PHP:
PHP applications are much cheaper than other technologies for developing dynamic sites or
applications due to the proprietary or license issues. PHP is freely available which helps to cut
the cost of development to a considerable extent.
Provides a more secured website due to its high quality encryption scheme. Applications safety
is another advantage in the same category so that the application code cannot be tampered.
56
PHP applications provide a fast browsing experience due to the reason that all the processing is
performed at the server side. Therefore, despite of the system configuration of the user, a website
or an application developed in PHP loads equally.
We can estimate the popularity of PHP as a technology from the fact that many popular websites
like Facebook, Wikipedia, Wordpress, Baidu, etc. are primarily based on PHP with an addition
of C++, Java, Python and Erlang. Many software development companies which are into web
development services offer PHP development services to their clients.
Other advantages of php development include compatibility with almost every web-server and
operating system the application is laid on. The load time of php developed sites is also less as
php is a light weighted language for web-site development.
4.6 WakeOnLan[28]
Is an Ethernet computer networking standard that allows a computer to be turned on
or awakened by a network message.
The message is usually sent by a program executed on another computer on the same local area
network. It is also possible to initiate the message from another network by using subnet directed
broadcasts or a WOL gateway service. This message called magic packet.[29]
Most WoL hardware may be configured directly using the system BIOS. However, it is often
more desirable to configure the functionality without interrupting the normal operations of the
machine. The BIOS step is necessary in addition to configuration from the OS in some cases.
57
Disadvantages of WakeOnLan
Wake-on-LAN can be a frustrating technology to implement. This is because it requires
appropriate BIOS, network card and, sometimes, operating system and router support to function
reliably. In some cases, hardware may wake from one low power state but not from others. This
means that due to hardware issues the computer may be waking up from the "fully off state" (S5)
but doesn't wake from sleep or hibernation or vice-versa. Also, it is not always clear what kind of
magic packet a NIC expects to see.
.
Magic packets are sent via the data link or OSI-2 layer, which can be used or abused by anyone
on the same LAN, unless the L2 LAN equipment is capable of (and configured for) filtering such
traffic to match site-wide security requirements.
Firewalls may be used to prevent clients among the public WAN from accessing the broadcast
addresses of inside LAN segments, or routers may be configured to ignore subnet-directed
broadcasts.
The use of Wake-on-LAN technology on enterprise networks can sometimes conflict with
network access control solutions such as 802.1x or MAC-based authentication[30], which may
prevent magic packet delivery if a machine's WoL hardware has not been designed to maintain a
live authentication session while in a sleep state. Configuration of these two features in tandem
often requires tuning of timing parameters and thorough testing.
58
5. Project RAPA manual
Before starting the manual of RAPA system there are some requirement the user must have.
5.1 Requirement for client
The minimum android version on which the application is build is 2.3. The android device
should have SD Card installed of minimum 1GB memory. There must be an Internet connection
in the internet mode but in the local mode only network connection is required also need Java SE
Runtime Environment 1.5 or higher.
5.2 Requirement for server
Minimum 1 G RAM is required. Internet availability is needed on the internet mode but in the
local mode only network connection is required. also need Java SE Runtime Environment 1.5 or
higher.
5.3 1-For the (local mode) on computer to control another computer:
In the server computer that the user wants to control open the location to which he have the
jar file and run the file RAPAserver.jar. a chooser will appear and ask the user to choose wither
to run the client or the server in this case the user should choose client.(18)
59
Figure 9 log in from PC chooser
After choosing the client .the user will be waiting for the connection from the remote computer
as in fig (10):
60
Figure 10 server connected screen
61
To establish the connection, from the client computer that he want to use to control the server
Open the location to which he have the jar file and run the file RAPAclient.jar. Fig (11)
Figure 11 IP field request in client screen
The user must enter the IP of the computer that he wants to control in his local network. Then
click Ok as defined in fig (12):
Figure 12 accepting IP address
62
Then client pc will connect to the server as fig (13):
Figure 13 connected screen from PC client
63
The user will see all the screen of the server pc and your start menu too if he want to do any
action on his pc also RAPA software enable a task bar in the top of the screen includes
Terminate button if he want to close the connection the other button is File transfer if he want
transfer file from or to the client, the user can hide this task bar if it disturbs him in any time by
minimize it to the start bar as fig (14)
Figure 14 minimizing taskbar at client side
64
If the user want to start file transfer he will click the file transfer button, a file chooser will
appear fig (15)
Figure 15 file transfer window
65
Clients will the press the Browse button to choose from the server pc the file he wants to
transfer. Fig (16)
Figure 16 choosing file to transfer
66
By browsing the files and find the file that the user wants to transfer he just has to click on it and
the file will automatically be set in the file name field. Fig (17).
Figure 17 sending file
67
After choosing the file the have to click the send button to start transferring the file, fig (18).
Note: in the current project the RAPA software only capable to transfer files not folders, hope to
fix that in the next versions.
Figure 18 file transfer sent
68
5.4 For the (local mode) on computer to be controlled by another computer:
In the server computer that the user wants to control open the location to which he have the
jar file and run the file RAPAserver.jar. a chooser will appear and ask the user to choose wither
to run the client or the server in this case the user should choose server. Fig (9)
After running a new white screen will appear means that the server is waiting for new
connections. Fig (10)
There is a button to terminate the connection with the client in any time the users click it, also
there is file transfer button for transferring files between server and client. Fig (10)
5.5 Setting up the RAPA app on your Android device (local mode)
Now that the user have ran the RAPAserver.jar file on the PC that he want to control it is time to
run RAPA on his phone. The user must open the RAPA. Apk on his Android and run it; he will
be asked to enter the IP address of the server compute that he wants to control. Fig (19).
69
Figure 19 Android local IP log in
70
After entering the IP address of the server and clicking the Login button the connection should
establish.
Figure 20 Android local filling IP
71
After connecting to the server pc the screen of the controlled computer will appear in the android
mobile with a virtual mouse and keyboard for easy control of the computer. Fig (21).
Figure 21 Android connected screen
72
If the user wants to get the virtual keyboard to write anything in the controlled computer then he
just long touch it and the keyboard will appear. Fig (22)
Figure 22 Android Virtual Keyboard
73
Also the Android app have file transfer mode to transfer data from Android to pc.to start the file
transfer the user have to click the file transfer button to open file transfer window , Fig (23).
Figure 23 Android file transfer menu
74
Then choose the browse button in the widow that will be opened for him to choose a file to send.
Fig (24)
Figure 24 Android browsing file
75
A new widow will appear with the files stored in the SD Card of the Android mobile. Fig (25)
Figure 25 Android SD card Files browsing
76
After clicking on the file the user wants to send, it automatically sated in the path field then the
user click send to send the file to the server side. Fig (26)
Figure 26 Android file transfer sending
77
For more ease of use for the user, RAPA project provides WakeOnLan system to start on the
closed computer from the user’s android mobile (in the local mode).
This prevents any trouble for the users if he started the server computer and electricity went off
or any power issues occurred, and he is away from the controlled computer.
A few steps are required to use the WakeOnLan:
1- The user must have the mac address of the computer that he wants to control.
2- The user must have the IP address of the computer that he wants to control.
After getting the required addresses the user can start the WakeOnLan .when its opened a new
window will appear with 3 fields and 2 buttons, fig (27).
In the first field the user must enter the mac address of the pc that will be started.
In the second field the user must enter the IP address of the computer that will be started. The
third field is the port number that the magic packet will be send to and it is automatically filled
by the software.
There are 2 buttons although; the first button is the Clear Form buttons to clear the form if
anything wrong have been written.
The second button is Send Wake Packet to send the magic packet to the server computer that the
user want to start on.
78
Figure 27 Android WOL menu
79
After filing the form correctly the user will click the Send Wake Packet if the data correct a toast
will appear to the user saying (magic packet sent).fig (28)
Figure 28 Android WOL magic packet sent
80
5.6 Setting up the RAPA app on your Android device (internet mode) (under implementation)
There is no difference in the usage between the RAPA app for Android in the internet mode and
in the local mode else in 3 main things:
1- The login menu the user in the log in menu will not be asked for the IP address to
connect to the server but for a user name and password that he acquired from the pc
when he signed in in the first time. Fig(29)
2- In the internet mode doesn’t include the WakeOnLan mode.
3- The internet mod requires internet connection with the world wide web
When the user set the correct user name and password the connection will be established and the
user will be able to see the server pc screen .fig (30)
The user will also control a virtual key board and mouse for easy control of the computer .fig
(31)
81
Figure 29 Android internet log in
82
Figure 30 Android connected screen
83
Figure 31 Android virtual Keyboard
84
5.7 Setting up the RAPA app on your computer (internet mode) (under implementation)
There are some differences in the usage between the RAPA app for computer in the internet
mode and in the local mode and they are:
1- In the internet mode doesn’t include the WakeOnLan mode.
2- The internet mode requires internet connection with the world wide web
3- In The starting window there is a third button called register. This button is used only in
the first use of the program to submit the user name and password to the database
These data will be used later by the client program to accesses’ this computer. Fig (32)
Figure 32 PC internet chooser
85
If the client choose the register button anew window will appear contains three fields to fill
them .fig (33).
Figure 33 PC register menu
86
The first field requires the user name that will be used define the machine.
The second field requires the password for the security of the user to make sure that there
won’t be any unwanted access from another clients or hackers on the port
The third field requires the user to enter the same password again to make sure that there are
no mistakes or misspelling in the password. Fig (34)
Figure 34 filling the registration menu
87
After filling all the fields correctly a message will appear to confirm that the data have been
registered in the database. Fig (35)
Figure 35 PC registeraition submetted
88
6. Conclusion
This project is about how to control targeted PC using android mobile phones. During
implementation some requirements for the application were identified. This application does not
require any additional equipment’s or software. Although, the application will work fine.
This application contains tow modes local mode and internet mode (under implementation).
RAPA app works for both android as client to control remote computer or a client computer to
control another computer.
In the internet mode RAPA app provides security for the user by setting user name and password
for each user.
After the connection between client and server is established RAPA app allows file transfer
between them
RAPA app uses a web hosted SQL database for easy accessing and security for the user. (In the
internet mode)
RAPA app enables the user to start on the computer with the WakeOnLan technology in the local
mode.
89
7. Future work
For the future work the RAPA team is willing to update a lot of features in RAPA app here we
state some of:
1- Increase the GUI of the app as its simple in this version.
2- As the WakeOnLan works only in the local mode we will work on method ton include it
in the internet mode.
3- For more flexibility we will work in including chat to the internet mode.
4- In the local mode we will add more security methods like password and user.
5- In the file transfer mode we will implement the FTP code to transfer folders beside files.
6- As this version has some problems like slow speed in the wireless networks and some
lag in the android app we will test and implement methods to fix these issues.
7- In the next update on of our priorities is to include a class to automatically get the IP
address and the mac address for the user. (under implementation)
90
8. References
[1] Remote Control of Mobile Devices in Android Platform Angel, Gonzalez Villan , Student
Member, IEEE and Josep Jorba Esteve,Member, IEEE.
[2] Windows XP operating system.
[3] Android. http://www.android.com
[4] What is Android? http://developer.android.com/guide/basics/what-is-android.htmlRetrieved
March 1st, 2013.
[5] Essential Client/Server Survival Guide, R. Orfali, D. Harkey, and J. Edwards. John Wiley &
Sons, 1994. ISBN 0-471-13119-9.
Client/server frequently asked questions URLs:
http://www.abs.net/_lloyd/csfaq.txt
ftp://ftp.uu.net/usenet/news.answers/client-server-faq.Z
[6] Seddigh N, Et al, "Bandwidth Assurance Issues for TCP flows in a Differentiated Services
Network", to be presented at GLOBECOM’99, Rio de Janeiro, December 1999.
http://www7.nortel.com:8080/CTL/globe9806.pdf
[7] Matthew S Gast, 802.11 Wireless Networks: The Definitive Guide, 2nd Edition, O’Reilly,
2005
[8] www.LogMeIn.com. Retrieved Jan 3rd, 2013.
[9] Feinler, Elizabeth, "Internet Protocol Transition Workbook", Network Information Center,
SRI International, March 1982.
[10] h3p://www.teamviewer.com/ index.aspx. . Retrieved Jan 3rd, 2013.
[11] https://join.me/Downloads/joinme_architecture.pdf. Retrieved Jan 3rd, 2013.
[12] Object-oriented programming "The History of Java Technology". Sun Developer Network.
ca. 1995.
[13] Understanding 802.1X Authentication with Wake-on-LAN"., Cisco Catalyst 6500 Release
12.2SX Software Configuration Guide
91
[14] Whitten, Jeffrey L.; Lonnie D. Bentley, Kevin C. Dittman. (2003). Systems Analysis and
Design Methods. 6th edition. ISBN 0-256-19906-X.
[15] Charlie Kaufman, Radia Perlman, Mike Speciner, “Network Security: Private
Communication in a Public World”, Second Edition, Prentice Hall, April 15, 2002
[16] Postel, John. "RFC 793". Retrieved 29 June 2012. http://www.ietf.org/rfc/rfc793.txt .
.Retrieved Jan 15, 2013.
[17] "ANNEX A4: SOCKETS DIRECT PROTOCOL (SDP)". InInfiniBand™ Architecture
Release 1.2.1, p. 1215ff.
[18] "Philosophy and Goals". Android Open Source Project. Google. Retrieved 2012-10-27.
[19] Tim Bray (November 24, 2010). "What Android Is". ongoing by Tim Bray. Retrieved 2012-
11-12.
[20] Books.google.com - UNIX Network Programming: The sockets networking API
[21] The TCP/IP Guide - A comprehensive look at the protocols and the procedures/processes
involved http://www.tcpipguide.com/free/
[22] Larry L. Peterson, Bruce S. Davie, “Computer Networks: A Systems Approach”, 3rd
Edition, Morgan Kaufmann, May 2003.
[23] W. Richard Stevens, “TCP/IP Illustrated, Volume 1: The Protocols”, Addison-Wesley,
1993.
[24] Wampler, Dean (2009-01-15). "Adopting New JVM Languages in the Enterprise
(Updated)". objectmentor.com. Retrieved 2009-06-18
[25] Stroustrup, Bjarne (2000). The C++ Programming Language(Special ed.). Addison-
Wesley. ISBN 0-201-70073-5.
[26] C. J. Date with Hugh Darwen: A Guide to the SQL standard : a users guide to the standard
database language SQL, 4th ed., Addison Wesley, USA 1997, ISBN 978-0-201-96426-4
[27] Lynn Beighley and Michael Morrison : Head First PHP & MySQL (ISBN 0-596-00630-3)
92
[28] Wake on Wireless LAN, By Andrew vonNagy, November 8, 2010,Revolution Wi-Fi Blog
[29] Magic Packet Technology. AMD White Paper., Publication# 20213, Rev: A Amendment/0,
Issue Date: November 1995
[30] IEEE STD 802-2001. The Institute of Electrical and Electronics Engineers, Inc. (IEEE).
2002-02-07. p. 19. ISBN 0-7381-2941-0. Retrieved 2013-03-04. "The universal administration of
LAN MAC addresses began with the Xerox Corporation administering Block Identifiers (Block
IDs) for Ethernet addresses."

More Related Content

What's hot

Android College Application Project Report
Android College Application Project ReportAndroid College Application Project Report
Android College Application Project Reportstalin george
 
Final Year Project Report
Final Year Project ReportFinal Year Project Report
Final Year Project ReportChongKit liew
 
Human activity recognition
Human activity recognitionHuman activity recognition
Human activity recognitionRandhir Gupta
 
Online Examination System For Android AAD Report Akshay Kalapgar
Online Examination System For Android AAD Report Akshay KalapgarOnline Examination System For Android AAD Report Akshay Kalapgar
Online Examination System For Android AAD Report Akshay KalapgarAkshayKalapgar
 
An HCI Principles based Framework to Support Deaf Community
An HCI Principles based Framework to Support Deaf CommunityAn HCI Principles based Framework to Support Deaf Community
An HCI Principles based Framework to Support Deaf CommunityIJEACS
 
Asistencia | Live Face Recognition | Python
Asistencia | Live Face Recognition | Python Asistencia | Live Face Recognition | Python
Asistencia | Live Face Recognition | Python Naomi Kulkarni
 
GoHackaton - quantumsigmoid
GoHackaton - quantumsigmoidGoHackaton - quantumsigmoid
GoHackaton - quantumsigmoidgiamuhammad
 
Artificial Intelligence Face recognition attendance system using MATLAB
Artificial Intelligence Face recognition attendance system using MATLABArtificial Intelligence Face recognition attendance system using MATLAB
Artificial Intelligence Face recognition attendance system using MATLABNaomi Kulkarni
 
Paper id 24201453
Paper id 24201453Paper id 24201453
Paper id 24201453IJRAT
 
Campus news feed
Campus news feedCampus news feed
Campus news feedNoopur Koli
 
Campus news information system - Android
Campus news information system - AndroidCampus news information system - Android
Campus news information system - AndroidDhruvil Dhulia
 
Face recognition attendance system
Face recognition attendance systemFace recognition attendance system
Face recognition attendance systemJigarPatel597
 
Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)Shuja Hassan
 
VTU final year project report Main
VTU final year project report MainVTU final year project report Main
VTU final year project report Mainathiathi3
 
Comparison Between Artificial Intelligence, Machine Learning, and Deep Learning
Comparison Between Artificial Intelligence, Machine Learning, and Deep LearningComparison Between Artificial Intelligence, Machine Learning, and Deep Learning
Comparison Between Artificial Intelligence, Machine Learning, and Deep LearningZaranTech LLC
 

What's hot (20)

Android College Application Project Report
Android College Application Project ReportAndroid College Application Project Report
Android College Application Project Report
 
Final Year Project Report
Final Year Project ReportFinal Year Project Report
Final Year Project Report
 
Blue eyes seminar report
Blue eyes seminar reportBlue eyes seminar report
Blue eyes seminar report
 
Human activity recognition
Human activity recognitionHuman activity recognition
Human activity recognition
 
hardcopy
hardcopyhardcopy
hardcopy
 
Online Examination System For Android AAD Report Akshay Kalapgar
Online Examination System For Android AAD Report Akshay KalapgarOnline Examination System For Android AAD Report Akshay Kalapgar
Online Examination System For Android AAD Report Akshay Kalapgar
 
An HCI Principles based Framework to Support Deaf Community
An HCI Principles based Framework to Support Deaf CommunityAn HCI Principles based Framework to Support Deaf Community
An HCI Principles based Framework to Support Deaf Community
 
finalwithrec4
finalwithrec4finalwithrec4
finalwithrec4
 
Asistencia | Live Face Recognition | Python
Asistencia | Live Face Recognition | Python Asistencia | Live Face Recognition | Python
Asistencia | Live Face Recognition | Python
 
GoHackaton - quantumsigmoid
GoHackaton - quantumsigmoidGoHackaton - quantumsigmoid
GoHackaton - quantumsigmoid
 
Artificial Intelligence Face recognition attendance system using MATLAB
Artificial Intelligence Face recognition attendance system using MATLABArtificial Intelligence Face recognition attendance system using MATLAB
Artificial Intelligence Face recognition attendance system using MATLAB
 
Paper id 24201453
Paper id 24201453Paper id 24201453
Paper id 24201453
 
ABSTRACT
ABSTRACTABSTRACT
ABSTRACT
 
Campus news feed
Campus news feedCampus news feed
Campus news feed
 
Campus news information system - Android
Campus news information system - AndroidCampus news information system - Android
Campus news information system - Android
 
Face recognition attendance system
Face recognition attendance systemFace recognition attendance system
Face recognition attendance system
 
Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)Android Project report on City Tourist Location based services (Shuja ul hassan)
Android Project report on City Tourist Location based services (Shuja ul hassan)
 
VTU final year project report Main
VTU final year project report MainVTU final year project report Main
VTU final year project report Main
 
Complete-Mini-Project-Report
Complete-Mini-Project-ReportComplete-Mini-Project-Report
Complete-Mini-Project-Report
 
Comparison Between Artificial Intelligence, Machine Learning, and Deep Learning
Comparison Between Artificial Intelligence, Machine Learning, and Deep LearningComparison Between Artificial Intelligence, Machine Learning, and Deep Learning
Comparison Between Artificial Intelligence, Machine Learning, and Deep Learning
 

Similar to RAPA Project Documentaion

Minor Project Report On Intranet database
Minor Project Report On Intranet databaseMinor Project Report On Intranet database
Minor Project Report On Intranet databaseAnjeet Kumar
 
AC fan speed control using remote control power electronics term project report
 AC fan speed control using remote control power electronics term project report AC fan speed control using remote control power electronics term project report
AC fan speed control using remote control power electronics term project reportKramat ullah
 
AndriodMobileComputingAssignment
AndriodMobileComputingAssignmentAndriodMobileComputingAssignment
AndriodMobileComputingAssignmentRebecca Patient
 
DEVOPS SEMINAR INDEX (1) (10).docx
DEVOPS SEMINAR INDEX (1) (10).docxDEVOPS SEMINAR INDEX (1) (10).docx
DEVOPS SEMINAR INDEX (1) (10).docxmansooraliattar
 
AbleMoJah's IT Report
AbleMoJah's IT ReportAbleMoJah's IT Report
AbleMoJah's IT ReportAble MoJah
 
Design and Simulation of Local Area Network Using Cisco Packet Tracer
Design and Simulation of Local Area Network Using Cisco Packet TracerDesign and Simulation of Local Area Network Using Cisco Packet Tracer
Design and Simulation of Local Area Network Using Cisco Packet TracerAbhi abhishek
 
Report it department concord(retyped)
Report it department concord(retyped)Report it department concord(retyped)
Report it department concord(retyped)Arefin Rahman
 
computer network technology in modern universe.
computer network technology in modern universe.        computer network technology in modern universe.
computer network technology in modern universe. ShohanaakterKakon
 
Seminar report of ewt
Seminar report of ewtSeminar report of ewt
Seminar report of ewtRanol R C
 
common_report_2
common_report_2common_report_2
common_report_2RAHEEMA PP
 
Smart Facility of Real Life
Smart Facility of Real Life Smart Facility of Real Life
Smart Facility of Real Life MD.RAKIBUL ISLAM
 
Network System of ASMAA Electronics Company CCNA
Network System of ASMAA Electronics Company CCNANetwork System of ASMAA Electronics Company CCNA
Network System of ASMAA Electronics Company CCNAABDIRIZAK ABUKAR
 
GSM BASED DEVICES CONTROL SYSTEM PROJECT REPORT
GSM BASED DEVICES CONTROL SYSTEM PROJECT REPORTGSM BASED DEVICES CONTROL SYSTEM PROJECT REPORT
GSM BASED DEVICES CONTROL SYSTEM PROJECT REPORTAvinash Kannojia
 

Similar to RAPA Project Documentaion (20)

Intranet database
Intranet databaseIntranet database
Intranet database
 
Minor Project Report On Intranet database
Minor Project Report On Intranet databaseMinor Project Report On Intranet database
Minor Project Report On Intranet database
 
Thesis
ThesisThesis
Thesis
 
finalgoogle
finalgooglefinalgoogle
finalgoogle
 
Project proposal Module
Project proposal ModuleProject proposal Module
Project proposal Module
 
azeem final iot report.docx
azeem final iot report.docxazeem final iot report.docx
azeem final iot report.docx
 
AC fan speed control using remote control power electronics term project report
 AC fan speed control using remote control power electronics term project report AC fan speed control using remote control power electronics term project report
AC fan speed control using remote control power electronics term project report
 
AndriodMobileComputingAssignment
AndriodMobileComputingAssignmentAndriodMobileComputingAssignment
AndriodMobileComputingAssignment
 
DEVOPS SEMINAR INDEX (1) (10).docx
DEVOPS SEMINAR INDEX (1) (10).docxDEVOPS SEMINAR INDEX (1) (10).docx
DEVOPS SEMINAR INDEX (1) (10).docx
 
Cloud computing for universities
Cloud computing for universities Cloud computing for universities
Cloud computing for universities
 
AbleMoJah's IT Report
AbleMoJah's IT ReportAbleMoJah's IT Report
AbleMoJah's IT Report
 
Campus Network.pptx
Campus Network.pptxCampus Network.pptx
Campus Network.pptx
 
Design and Simulation of Local Area Network Using Cisco Packet Tracer
Design and Simulation of Local Area Network Using Cisco Packet TracerDesign and Simulation of Local Area Network Using Cisco Packet Tracer
Design and Simulation of Local Area Network Using Cisco Packet Tracer
 
Report it department concord(retyped)
Report it department concord(retyped)Report it department concord(retyped)
Report it department concord(retyped)
 
computer network technology in modern universe.
computer network technology in modern universe.        computer network technology in modern universe.
computer network technology in modern universe.
 
Seminar report of ewt
Seminar report of ewtSeminar report of ewt
Seminar report of ewt
 
common_report_2
common_report_2common_report_2
common_report_2
 
Smart Facility of Real Life
Smart Facility of Real Life Smart Facility of Real Life
Smart Facility of Real Life
 
Network System of ASMAA Electronics Company CCNA
Network System of ASMAA Electronics Company CCNANetwork System of ASMAA Electronics Company CCNA
Network System of ASMAA Electronics Company CCNA
 
GSM BASED DEVICES CONTROL SYSTEM PROJECT REPORT
GSM BASED DEVICES CONTROL SYSTEM PROJECT REPORTGSM BASED DEVICES CONTROL SYSTEM PROJECT REPORT
GSM BASED DEVICES CONTROL SYSTEM PROJECT REPORT
 

RAPA Project Documentaion

  • 1. 1 Computer Science Department RAPA Project Graduation project for Remote access Pc Administrator Submitted By Khaled Elsawy Mahmoud Housni Mohamed Abd Elmoghny Ramy wael Rahma Moustafa Aya Elsayed Supervised By DR. Dina Samir Dr. Manar El Shazly Computer Science Department Modern Academy in Maadi 2013
  • 2. 2 Acknowledgement Many Thanks to all who contributed in this project to be accomplished... We would like to thank the management of our university Modern Academy in Maadi presented in…  Prof. Dr.Nabil Deabes For providing all educational facilities and supplies needed to help students in building their academic and professional career.  Prof. Dr. Mahmoud El-Sayed Ahmed Gadallah For his continues support to his all students in the academy, and his great dedication to make the faculty of computer science a better place for his students.  Dr. Dina Samir Moussa Hassan For giving us the honor to be under her supervision and her wise advice for better achievement.  Eng. Manar El Shazly For giving us her time and effort whenever we needed her for support.
  • 3. 3 Dedication We would like to express our sincere thanks to our Academy Professors,  Prof. Dr. Mahmoud El-Sayed Ahmed Gadallah , Head of Computer Science Department,  Dr. Dina Samir Moussa Hassan , Supervisor of our project  Eng. Manar El Shazly , Assistant of our Project  Dr.Sherif Hussein.  Dr. Hany Al Nashar.  Dr. Jane George Botros.  Eng. Sherry Girgis. For their constant encouragement, splendid and gracious guidance throughout our work. They has been a constant source of inspiration and helped us in each stage. We express our deep gratitude for such encouragement and kindly cooperation. This Project is a special dedication for our Academy that really helped us in building this project. In our future work, we are going to build our e-mail system on the Academy website to make the learning process more efficient and more reliable using the digital signature technology.
  • 4. 4 Abstract As computer became an important thing in everyday use, so as our personal data on the computer. But what if you are out and you need some of these data or want to send data to your computer? In this project we handled this problem using a technique called Remote Access application [1, 2]. This application allows the computer to be controlled from a remote place with a smart phone device (Android) [3, 4] through Internet. It means that the monitor of the computer will be seen and controlled from the mobile. It turns the phone into a wireless keyboard and mouse with a touchpad. The project uses a back end PC application for the computer, and a front end Android based application with some sort of wireless connection between them. By getting IP address from the PC and browse it on mobile phone. The mobile is able to access the computer and its functions by mobile keys and use built in keyboard. Mobile user can access information from PC on remote place due to internet connection. Operations can be controlled by mobile remote device of PC. .
  • 5. 5 Contents 1. Introduction................................................................................................................................9 1.1 Overview.............................................................................................................................9 1.2 Survey and previouswork..................................................................................................11 2. Project idea and analysis and Design ..........................................................................................17 2.1 Project idea .......................................................................................................................17 2.2 Analysis and design for local mode .....................................................................................18 2.3 Analysis and design for internet mode .................................................................................21 3. Software life cycle.....................................................................................................................27 3.1 Water fall model................................................................................................................27 3.1.1 Requirements .............................................................................................................27 3.1.2 Ease of use.................................................................................................................27 3.1.3 Mobility.....................................................................................................................28 3.1.4 Flexible Control .........................................................................................................28 3.1.5 Power........................................................................................................................28 3.1.6 Reliability ..................................................................................................................28 3.1.7 Bandwidth..................................................................................................................28 3.1.8 Security .....................................................................................................................28 3.1.9 Use Case Diagram......................................................................................................29 3.2 Design ..............................................................................................................................31 3.2.1 For client side.............................................................................................................31 3.2.2 For the server side ......................................................................................................33 3.3 Coding ..............................................................................................................................35 3.3.1 Coding for the client side ............................................................................................35 3.3.2 Coding for the server side............................................................................................39 3.3.3 Android side code.......................................................................................................42 3.3.4 Sample code from the WOL........................................................................................45 4. TOOLS.....................................................................................................................................46 4.1 ANDROID........................................................................................................................46 4.2 TCP PROTOCOL..............................................................................................................50 4.3 JAVA...............................................................................................................................50 4.4 SQL..................................................................................................................................53
  • 6. 6 4.5 PHP..................................................................................................................................54 4.6 WakeOnLan......................................................................................................................56 5. Project RAPA manual................................................................................................................58 5.1 Requirement for client........................................................................................................58 5.2 Requirement for server.......................................................................................................58 5.3 1-For the (local mode) on computer to control another computer:..........................................58 5.4 For the (local mode) on computer to be controlled by another computer:...............................68 5.5 Setting up the RAPA app on your Android device (local mode) ............................................68 5.6 Setting up the RAPA app on your Android device (internet mode) ........................................80 5.7 Setting up the RAPA app on your computer (internet mode) .................................................84 6. Conclusion................................................................................................................................88 7. Future work ..............................................................................................................................89 8. References................................................................................................................................90
  • 7. 7 1. List of figures FIGURE 1 LOG ME IN SERVER SIDE ..................................................................................................................................11 FIGURE 2 LOGMEIN SERVER SIDE.....................................................................................................................................12 FIGURE 3 TEAMVIEWER INTERFACE...............................................................................................................................13 FIGURE 4 TEAMVIEWER LOG IN ........................................................................................................................................14 FIGURE 5 TEAMVIEWER LOG IN ........................................................................................................................................14 FIGURE 6 TEAMVIEWER CONNECTED SCREEN ..........................................................................................................15 FIGURE 7 JOIN.ME LOG IN SCREEN...................................................................................................................................16 FIGURE 8 JOIN.ME LOG IN SCREEN FROM PC ..............................................................................................................16 FIGURE 9 LOG IN FROM PC CHOOSER.............................................................................................................................59 FIGURE 10 SERVER CONNECTED SCREEN.....................................................................................................................60 FIGURE 11 IP FIELD REQUEST IN CLIENT SCREEN ....................................................................................................61 FIGURE 12 ACCEPTING IP ADDRESS.................................................................................................................................61 FIGURE 13 CONNECTED SCREEN FROM PC CLIENT..................................................................................................62 FIGURE 14 MINIMIZING TASKBAR AT CLIENT SIDE.................................................................................................63 FIGURE 15 FILE TRANSFER WINDOW ..............................................................................................................................64 FIGURE 16 CHOOSING FILE TO TRANSFER....................................................................................................................65 FIGURE 17 SENDING FILE......................................................................................................................................................66 FIGURE 18 FILE TRANSFER SENT ......................................................................................................................................67 FIGURE 19 ANDROID LOCAL IP LOG IN ..........................................................................................................................69 FIGURE 20 ANDROID LOCAL FILLING IP ........................................................................................................................70 FIGURE 21 ANDROID CONNECTED SCREEN .................................................................................................................71 FIGURE 22 ANDROID VIRTUAL KEYBOARD.................................................................................................................72 FIGURE 23 ANDROID FILE TRANSFER MENU...............................................................................................................73 FIGURE 24 ANDROID BROWSING FILE ............................................................................................................................74 FIGURE 25 ANDROID SD CARD FILES BROWSING .....................................................................................................75 FIGURE 26 ANDROID FILE TRANSFER SENDING ........................................................................................................76 FIGURE 27 ANDROID WOL MENU......................................................................................................................................78 FIGURE 28 ANDROID WOL MAGIC PACKET SENT......................................................................................................79 FIGURE 29 ANDROID INTERNET LOG IN.........................................................................................................................81 FIGURE 30 ANDROID CONNECTED SCREEN .................................................................................................................82 FIGURE 31 ANDROID VIRTUAL KEYBOARD.................................................................................................................83 FIGURE 32 PC INTERNET CHOOSER..................................................................................................................................84 FIGURE 33 PC REGISTER MENU..........................................................................................................................................85 FIGURE 34 FILLING THE REGISTRATION MENU .........................................................................................................86 FIGURE 35 PC REGISTERAITION SUBMETTED.............................................................................................................87
  • 8. 8 2. List of Abbreviations RAPA Remote access pc administrator PC Personal computer App Application SD Card Secure digital card TCP/IP Transmission control protocol / Internet protocol ISP IP Internet service provider internet protocol SQL Standard query language GSM Global system for mobile communication API Application programming interface SDK Software development kit Lan Local area network GUI Graphical user interface Fig Figure NIC Network Interface Card
  • 9. 9 1. Introduction 1.1 Overview This project is about how to control PC applications remotely inside a house or an office, etc. Initially mobile phones were developed only for voice communication but now-a-days the scenario has changed, voice communication is just one aspect of a mobile phone. There are other aspects which are major focus of interest. The internet opened whole new aspects for the mobile uses. For this purpose, we designed and implemented mobile system software, called RAPA that enables an Android phone to act as a remote controller device for desktop/laptop PCs and their applications. RAPA is a system/tool that allows users to control their desktop computer applications from an android phone over a wireless network or Internet. Its architecture is based on client-server system. It consists of two parts: a server part and a client part. The server part runs on a desktop PC (or laptop PC depending on the usage scenario) to be controlled remotely. The client part runs on an android phone that can be easily carried by a user and that will act as the remote controller device for desktop PC and its applications. The server side of the system is capable of wake the server side, listening incoming connections, sending and receiving data, processing control commands, taking screenshots, modifying and sending images back to client side, and sending mouse and keyboard events to the operating system . (The client is capable of opening connections to the server, sending/receiving data and processing control commands, and sending mouse and keyboard events to the server side. Both the server side and client side of the system are coded in JAVA. The server side of the system runs on top of the Windows XP operating system or higher versions of Windows [1] and the client side runs on top of the Android operating system. [2, 3]. The PC screen will be access on the mobile. The mobile can be able to access its functions by mobile keys and using inbuilt keyboard. Mobile user can access information from PC on remote place due to the internet connection. Operations can be controlled by mobile remote device of PC. Accessing input controls of PC like keyboard, mouse and others can be done by
  • 10. 10 mobile. Integration of mobile & PC can be used to run the applications. Utilization of the database of PC can be used for doing operations on PC like sending video files by accessing the information from Mobile to PC. A central database server is hosted on the real IP with particular domain name. A web hosting server is based on windows with IIS and apache. It supports web applications with database for storing the web pages. —
  • 11. 11 1.2 Survey and previous work — There are already some products for controlling a PC from phone, similar to our work. They are Remote Control and Mobile Administrator They uses also client/server [5] paradigm and provides access to a PC over a TCP/IP [6] connection that goes over either a modem or a wireless channel.[7] — Here are the top and most famous software : — LogMeIn [8] The first and highest rated product in the remote access applications category is LogMeIn. This is a web-based service that's extremely easy to set up and use and can be accessed from any PC with a browser. The free version won't allow file transfer [9] or remote printing but is a great solution for accessing your remote data as well as file sharing .Although the paid-for LogMeIn service is not cheap. — Photos for the server side and client side: — Figure 1 log me in server side
  • 12. 12 Figure 2 Logmein server side
  • 13. 13 — TeamViewer[10] — It is very reliable, and has great features. There is a portable version of the viewer if you want to use an application or they also have a web-based control site that requires no installation to remotely control computers. Although TeamViewer is slower than LogMeIn. The web-based version uses HTML and Flash so it is usable even if the browser or firewall doesn't allow Java. — Photos for the server side and client side: Figure 3 teamviewer interface
  • 14. 14 Figure 4 teamviewer log in Figure 5 teamviewer log in
  • 15. 15 Figure 6 teamviewer connected screen — —
  • 16. 16 — Join.me [11] Its small 1 MB download and simple security code make it very quick to establish a remote session. Join.me gives you a conference line to call into, In live stream there is about 30 second or so lag from what you are doing to what watchers see. Photos for client side and server side: Figure 7 Join.me log in screen Figure 8 join.me log in screen from PC
  • 17. 17 2. Project idea and analysis and Design 2.1 Project idea This project main idea is about control a computer via another computer or android based mobile or tablet. The architecture of this software is based on client-server system. So it consists of two parts: a server part and a client part. Both the server side and client side of the system are coded in JAVA[12]. For the network communication between server and client the program uses TCP protocol which allows reliable communication between two applications. TCP is typically used over the Internet Protocol, which is referred to as TCP/IP. our main new idea in this software was to allow FTP as a free software with no fee, but as a few software started to enable this features, so we thought in a new idea .Remote accesses generally requires an open server to connect to it so if the client wants to connect to his computer he must leave it working all the time, And if he did the computer still may shut down for many reasons, like if the electricity went off. To avoid this issue project RAPA enables the Wake On Lan [13] mode to start the server. Android mobiles have very limited computing power than a desktop. Therefore, a desktop computer should not send a lot of commands and data to the mobile when it's not needed. an example for the situations that the user don’t need some of the RAPA features is when the user is on a work meeting and have a presentation so To increase the performance further for applications like PowerPoint, the client has a presentation mode which only enables the user to control the keyboard and mouse without getting screenshot images from the server. This saves bandwidth and power.
  • 18. 18 2.2 Analysis and design for local mode Client side flow chart
  • 20. 20 Use Case Diagram:- It is a graphical representation of a user's interaction with the system. A use case diagram can portray the different types of users of a system and the various ways that they interact with the system.
  • 21. 21 2.3 Analysis and design for internet mode Computer side flow chart
  • 23. 23 Data Flow Diagram:- 1. The user at first time he sets the user name that will be used later on mobile. 2. The user name and the IP automatically stored in the database. 3. The application generates a random password of 8 bites every time the application is used. 4. The mobile requests a connection to computer by adding the username and password obtained from the computer application and send the request to database. 5. If the username is correct the database sends the computers IP to the mobile application. 6. If the username is wrong the application denies the connection. 7. The mobile application uses the computers IP to connect to the computer. And the computer application checks the password if it is right the computer application allows the connection else it is disconnected. 8. The computer capture image repeatedly for the computer screen and sends it to the mobile application. 9. The mobile application enables virtual keyboard and mouse to control the computer. 10. The application enables file transfer between mobile and computer.
  • 24. 24
  • 25. 25 Entity Relationship Diagram:- • The data base table : 1. User name: where the user name is provided from the user. 2. Password: where the password is chosen by the user. 3. Computer (PC) IP: where the computer local IP address is stored. 4. Computer (PC) ISP: where the computer ISP address (Real IP) is stored. 5. The mobile IP: where the mobile IP is obtained from the mobile application and stored. 6. The mobile ISP: where the mobile ISP address (Real IP) is obtained from the mobile application and stored.
  • 26. 26 Structure of the RAPA Client: The client side component is responsible for interacting with the phone user. With this interaction it can get the server IP address, port number username and password. Those are the information required to login into and authenticate with the server. Another function of the client is to show the screenshot images arriving from the server side. This function is important for enabling the phone user to have total control on the PC and to keep track of what is going on. Another responsibility of the client side is to detect mouse and keyboard events, and send those events to the server side. It contains the (Wake On Lan) wish responsible for start the Server side if it is on sleep mode or shut down mode It uses TCP as the transport layer, therefore the communication is stream oriented. Structure of the RAPA Server: The server side is running on a desktop PC or laptop PC to be controlled remotely. The server process starts listening on TCP/IP port after being started up on the desktop PC. The client user has to know the IP address of the desktop PC and the port number for being able to connect to the desktop from the android phone. In the Internet mode, a username and password is required for the user to login to the system. The server process asks for the password, and then authenticates the user. In this way, only users with previously created accounts can access the PC for controlling. These parameters (username, password) are maintained at the server side and are configurable via a GUI interface.
  • 27. 27 3. Software life cycle 3.1 Water fall model: It is the model which is use to linear process development. It is a sequential design process, often used in software process development in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance. [14] 3.1.1 Requirements: In this phase we gather necessary information which will use for development of any project. For our project we gather information like what are the user's needs in the remote access software market. It also defines system requirement specification. This phase defines what to do. The purpose of this project was to develop an effective system that allows a mobile device to access and control a remote computer connected to the Internet, able to start computers from shut down mode and transfer data between mobile and computer. With this in mind, it was decided to use a client – server architecture due to its simplicity, practical usage and because it does not require other non-user controllable components. There were some requirements that have needed to be implemented in the RAPA project as it’s required by the user; we used it as the basic guidelines in designing our system: 3.1.2 Ease of use: The system should be easily launched, configured and used. It should have a nice and graphical user interface.
  • 28. 28 3.1.3 Mobility: The system should support mobility of the user while controlling the desktop computer application. Mobility can be enabled if the remote control device is portable and if its connection to the desktop computer is wireless. The wireless connection can be a short-range local or personal area connection. 3.1.4 Flexible Control: The user should be able to control as much functionality as possible. Our goal is to let the user do everything that he/she can do on a desktop computer. The user will be given keyboard inputs and mouse inputs to the desktop PC and will have as much screen information as possible. 3.1.5 Power: The system should be power efficient as the android based devices have limited energy. 3.1.6 Reliability: The system and connectivity should be reliable enough so that a user can control the desktop computer without losing data and/or commands. 3.1.7 Bandwidth: The system should be bandwidth efficient on the wireless link between the PDA and desktop PC, since the same link can be used for many other applications that are run at the same time, like an FTP transfer, a web browser activity, a backup activity, and so on. 3.1.8 Security: Only authorized users should control the client computer. Therefore the system should support authentication of the users that would like to access and control the system remotely via mobile. [15] Here is an example about what users should be able to do using RAPA system in the (local mode) using a use case diagram.
  • 29. 29 3.1.9 Use Case Diagram:-
  • 30. 30 As we see in the use case the system basically involves communication between an android phone and a remote desktop. The remote desktop and android phone can communicate with each other using the IP address and ports. Data can be transferred using ports [16]. Socket [17] of android phone and socket of computer. This transferred data can take the form of commands or files. The Server is implemented in Java and Client in android.
  • 31. 31 3.2 Design In design phase we then construct design to how to implement those requirements gathered into phase (1). This phase define how to do .For this phase we then write algorithms 3.2.1 For client side: 3.2.1.1 Client initiator This class is responsible for starting the communication through the socket and port. Step 1: Start Step 2: Declare variables ip, port, socket, Step 3: Initialize variables ip ← null port ← null socket ←ip, port Step 4: socket(ip, port) socket.accept(); Step 5: call image receiver class Step 6: Call file transfer 3.2.1.2 Image receiver This class is responsible for receiving the buffered image from the socket and views it. Step 1: Start Step 2: Declare variables socket, image, ObjectInputStream, view Step 3: loop 3.1 get image from ObjectInputStream 3.2 displaying image in view Step 4: from view call class controls
  • 32. 32 3.2.1.3 Controls sender This class is responsible for sending the coordinates of the cursor to the server side, also sends the keyboards orders. Step 1: Start Step 2: Declare variables controls, image, ObjectOutputStream, X, Y Step 3: getting the dimensions of the X, Y of cursor the view throw socket Step 4: get keyboard keys and sent through socket in ObjectOutputStream Step 5: Stop 3.2.1.4 File transfer It is responsible for transferring files between server and client. Step 1: Start Step 2: ObjectOutputStream, file ,socket Step 3: selecting file 3.1 file fragmented to byte[] 3.2 byte [] sent in ObjectOutputStream through socket Step 4: Stop
  • 33. 33 3.2.2 For the server side: 3.2.2.1 Sever initiator Responsible for starting the communication in the server side Step 1: Start Step 2: Declare variables port, Serversocket, Step 3: Initialize variables Serversocket ← port Step 4: Serversocket (port) Serversocket.accept(); Step 5: call image sender class Step 6: Call file transfer 3.2.2.2 Image sender Responsible for capturing the image and sending it through the socket Step 1: Start Step 2: Declare variables image, ObjectOutputStream Step 3: loop 3.1 capture image from computer 3.2 image sent through Serversocket Step 4: call control receiver
  • 34. 34 3.2.2.3 Controls receiver Responsible for receiving the events and cursor coordinates and synchronize them with the server Step 1: Start Step 2: Declare variables controls, ObjectInputStream, X, Y ,key Step 3: getting the dimensions of the X, Y of cursor from ObjectInputStream through socket Step 3.1 apply cursor movement and actions Step 4: get keyboard keys from ObjectInputStream through socket Step 4.1 apply keyboard actions Step 5: Stop 3.2.2.4 File transfer Responsible for transferring files between server and client Step 1: Start Step 2: ObjectOutputStream, file, socket Step 3: selecting file 3.1 file fragmented to byte [] 3.2 byte [] sent in ObjectOutputStream through socket Step 4: Stop
  • 35. 35 3.3 Coding: Now base on design phase we then write actual code to implement algorithms This code should be efficient. Here we will not be able to write the whole code as it is too long, and some parts of it are under implementation 3.3.1 Coding for the client side 3.3.1.1 Client initiator
  • 39. 39 3.3.2 Coding for the server side 3.3.2.1 Server initiator
  • 42. 42 3.3.3 Android side code (not the full code as its under implementation) 3.3.3.1 Android initiator 3.3.3.2 Image receiver
  • 45. 45 3.3.4 Sample code from the WOL (magic packet)
  • 46. 46 4. TOOLS 4.1 ANDROID: [18, 19] Android is a powerful Operating System supporting a large number of applications in Smart Phones. These applications make life more comfortable and advanced for the users. Hardware’s that support Android is mainly based on ARM architecture platform. All Android hardware and system service access is managed using Dalvik as a middle tier. By using a VM to host application execution, developers have an abstraction layer that ensures they never have to worry about a particular hardware implementation. Some of the current features and specifications of android are: 1. Application framework- it enables reuse and replacement of components 2. A run time used to execute and host Android applications, including the Dalvik virtual machine and the core libraries that provide Android specific functionality. The run time is designed to be small and efficient for use on mobile devices. 3. Integrated browser- it is based on the open source web kit engine 4. Optimized graphics- it is peered by a custom 2D, 3D graphics library. 5. SQLite 6. Media support 7. GSM technology 8. Bluetooth, EDGE, 3G, Wi-Fi, camera, GPS, compass etc. 9. A hardware reference design that describes the capabilities required of a mobile device in order to support the software stack 10. A Linux operating system kernel that provides the low-level interface with the hardware, memory management, and process control, all optimized for mobile devices. 11. Open source libraries for application development including SQLite, Web Kit, OpenGL, and a media manager
  • 47. 47 Applications • Android applications are composed of one or more application components (activities, services, content providers, and broadcast receivers) • Each component performs a different role in the overall application behavior, and each one can be activated individually (even by other applications) • The manifest file must declare all components in the application and should also declare all application requirements, such as the minimum version of Android required and any hardware configurations required • Non-code application resources (images, strings, layout files, etc.) should include alternatives for different device configurations (such as different strings for different languages) The Android software development kit (SDK) includes everything you need to start developing, testing, and debugging Android applications. Included in the SDK download are: The Android APIs The core of the SDK is the Android API libraries that provide developer access to the Android stack. These are the same libraries used at Google to create native Android applications. Development Tools To turn Android source code into executable Android applications, the SDK includes several development tools that let you compile and debug your applications. The .dex executable are created by transforming Java language compiled classes using the tools supplied within the SDK.
  • 48. 48 The Android Emulator The Android Emulator is a fully interactive Android device emulator featuring several alternative skins. Using the emulator, you can see how your applications will look and behave on a real Android device. All Android applications run within the Dalvik VM so that the software emulator is an excellent environment in fact, as it is hardware-neutral, it provides a better independent test environment than any single hardware implementation. Full Documentation The SDK includes extensive code-level reference information detailing exactly what’s included in each package and class and how to use them. In addition to the code documentation, Android’s reference documentation explains how to get started and gives detailed explanations of the fundamentals behind Android development. Sample Code The Android SDK includes a selection of sample applications that demonstrate some of the possibilities available using Android, as well as simple programs that highlight how to use individual API features. Online Support Despite its relative youth, Android has generated a vibrant developer community. The Google Groups at http://code.google.com/android/groups are active forums of Android developers with regular input from the Android development team at Google Socket programming [20] Sockets provide the communication mechanism between two computers using TCP. A client program creates a socket on its end of the communication and attempts to connect that socket to a server.
  • 49. 49 When the connection is made, the server creates a socket object on its end of the communication. The client and server can now communicate by writing to and reading from the socket. The java.net. Socket class represents a socket, and the java.net. Server Socket class provides a mechanism for the server program to listen for clients and establish connections with them. The following steps occur when establishing a TCP connection between two computers using sockets: 1. The server instantiates a Server Socket object, denoting which port number communication is to occur on. 2. The server invokes the accept() method of the Server Socket class. This method waits until a client connects to the server on the given port. 3. After the server is waiting, a client instantiates a Socket object, specifying the server name and port number to connect to. 4. The constructor of the Socket class attempts to connect the client to the specified server and port number. If communication is established, the client now has a Socket object capable of communicating with the server. 5. On the server side, the accept() method returns a reference to a new socket on the server that is connected to the client's socket. After the connections are established, communication can occur using I/O streams. Each socket has both an Output Stream and an Input Stream. The client's Output Stream is connected to the server's Input Stream, and the client's Input Stream is connected to the server's Output Stream. TCP is a two way communication protocol, so data can be sent across both streams at the same time.
  • 50. 50 4.2 TCP PROTOCOL: [21] TCP protocol allows for reliable communication between two applications. TCP is typically used over the Internet Protocol, which is referred to as TCP/IP. TCP server may serve several clients concurrently. The server creates one socket for each client, and these sockets share the same local socket address. During the design phase, we chose TCP as the transport layer instead of UDP in order to have reliable delivery of commands and data. Additionally, we use IP addresses to address the end points [22], [23]. This enables the system to work also over Internet, i.e. the client and server can be located in any two points on the Internet. If the system is to be used only locally, then IP addresses will be used 4.3 JAVA [24] As the Java language is the most popular platform that works in both mobile and pc, its rapid ascension and wide acceptance can be traced to its design and programming features, particularly in its promise that you can write a program once, and run it anywhere. Java was chosen as the programming language for network computers (NC) and has been perceived as a universal front end for the enterprise database. As stated in Java language white paper by Sun Microsystems: "Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, multithreaded, and dynamic." So we chose it to create our program. It shares many features common to most programming languages in use today, the language should look familiar to C and C++ programmers because it was designed with C and C++ constructs where the languages are similar. It is designed for maximum portability with as few implementation dependencies as possible. An int, for example, is a 32-bit signed two's-complement integer in all implementations, irrespective of the CPU architecture on which the program executes. Defining everything possible about the language and its runtime environment enables users to run compiled code anywhere and share code with anyone who has a Java runtime environment. It is indeed valuable for distributed network environments like the Web. However, it goes well
  • 51. 51 beyond this domain to provide a powerful general-purpose programming language suitable for building a variety of applications that either do not depend on network features or want them for different reasons.as The ability to execute downloaded code on remote hosts in a secure manner is a critical requirement for many organizations JAVA is the proper programing language. Advantages of JAVA JAVA offers a number of advantages to developers. Java is simple: Java was designed to be easy to use and is therefore easy to write, compile, debug, and learn than other programming languages. The reason that why Java is much simpler than C++ [25] is because Java uses automatic memory allocation and garbage collection where else C++ requires the programmer to allocate memory and to collect garbage. Java is object-oriented: Java is object-oriented because programming in Java is centered on creating objects, manipulating objects, and making objects work together. This allows you to create modular programs and reusable code. Java is platform-independent: One of the most significant advantages of Java is its ability to move easily from one computer system to another. The ability to run the same program on many different systems is crucial to World Wide Web software, and Java succeeds at this by being platform-independent at both the source and binary levels. Java is distributed: Distributed computing involves several computers on a network working together. Java is designed to make distributed computing easy with the networking capability that is inherently integrated into it.
  • 52. 52 Writing network programs in Java is like sending and receiving data to and from a file. For example, the diagram below shows three programs running on three different systems, communicating with each other to perform a joint task. Java is interpreted: An interpreter is needed in order to run Java programs. The programs are compiled into Java Virtual Machine code called byte code. The byte code is machine independent and is able to run on any machine that has a Java interpreter. With Java, the program need only be compiled once, and the byte code generated by the Java compiler can run on any platform. Java is secure: Java is one of the first programming languages to consider security as part of its design. The Java language, compiler, interpreter, and runtime environment were each developed with security in mind. Java is robust: Robust means reliable and no programming language can really assure reliability. Java puts a lot of emphasis on early checking for possible errors, as Java compilers are able to detect many problems that would first show up during execution time in other languages. Java is multithreaded: Multithreaded is the capability for a program to perform several tasks simultaneously within a program. In Java, multithreaded programming has been smoothly integrated into it, while in other languages, operating system-specific procedures have to be called in order to enable multithreading. Multithreading is a necessity in visual and network programming.
  • 53. 53 4.4 SQL [26] Structured Query Language or SQL is a standard computer language for accessing and manipulating database systems. It comprises one of the fundamental building blocks of modern database architecture. It defines methods using which user can create and manipulate databases on all major platforms. It is a set based declarative programming language and not an imperative programming language like C or BASIC. It allows the user to create, update, delete, and retrieve data from a database. It is very simple and easy to learn. It works with database programs like DB2, Oracle, MS Access, Sybase, and MS SQL Server etc. Advantages of SQL: High Speed: SQL Queries can be used to retrieve large amounts of records from a database quickly and efficiently. Well Defined Standards Exist: SQL databases use long-established standard, which is being adopted by ANSI & ISO. Non-SQL databases do not adhere to any clear standard. No Coding Required: Using standard SQL it is easier to manage database systems without having to write substantial amount of code. Emergence of ORDBMS: Previously SQL databases were synonymous with relational database. With the emergence of Object Oriented DBMS, object storage capabilities are extended to relational databases.
  • 54. 54 Disadvantages of SQL: Difficulty in Interfacing: Interfacing an SQL database is more complex than adding a few lines of code. More Features Implemented in Proprietary way: Although SQL databases conform to ANSI & ISO standards, some databases go for proprietary extensions to standard SQL to ensure vendor lock-in. 4.5 PHP (internet mode): [27] As RAPA in the internet mode considered as a web application so we used PHP to connect our system with the dynamic database that the client and the server will be connected through. This language holds the capability to process all the data received from the client’s side or user side before sending back as a hypertext. PHP is a general-purpose scripting language which is used for web application development. Advantages of PHP: Open Source: PHP is an open source technology, which means its source code, development environment etc. are freely available. Also, PHP community is continually developing new functionalities of this language thus improving its code package, base libraries and various classes.
  • 55. 55 Simple & Easy: PHP developed websites or applications have much simple code to write or understand. The level of complexity of a php code is much lesser than its competing technologies for developing web applications or dynamic sites. Platform Independent: Applications developed in PHP are platform independent and can be executed on a variety of platforms and web servers. Websites developed using PHP can be hosted on nearly all the web- servers available in the market. The only constraint which can be considered is the version incompatibility, which is also not a major issue because most of the time servers are back- compatible with the language versions. Enhanced graphics: PHP can be used to generate images dynamically or at run-time. Using the image functionalities, more number of image formats could be supported in a website or web application. The list for the features of PHP applications is very long one. Mentioned above, were some of the major features of a PHP application. These features bring the ease of coding to a developer and high quality interaction for the user. Advantages of developing an application in PHP: PHP applications are much cheaper than other technologies for developing dynamic sites or applications due to the proprietary or license issues. PHP is freely available which helps to cut the cost of development to a considerable extent. Provides a more secured website due to its high quality encryption scheme. Applications safety is another advantage in the same category so that the application code cannot be tampered.
  • 56. 56 PHP applications provide a fast browsing experience due to the reason that all the processing is performed at the server side. Therefore, despite of the system configuration of the user, a website or an application developed in PHP loads equally. We can estimate the popularity of PHP as a technology from the fact that many popular websites like Facebook, Wikipedia, Wordpress, Baidu, etc. are primarily based on PHP with an addition of C++, Java, Python and Erlang. Many software development companies which are into web development services offer PHP development services to their clients. Other advantages of php development include compatibility with almost every web-server and operating system the application is laid on. The load time of php developed sites is also less as php is a light weighted language for web-site development. 4.6 WakeOnLan[28] Is an Ethernet computer networking standard that allows a computer to be turned on or awakened by a network message. The message is usually sent by a program executed on another computer on the same local area network. It is also possible to initiate the message from another network by using subnet directed broadcasts or a WOL gateway service. This message called magic packet.[29] Most WoL hardware may be configured directly using the system BIOS. However, it is often more desirable to configure the functionality without interrupting the normal operations of the machine. The BIOS step is necessary in addition to configuration from the OS in some cases.
  • 57. 57 Disadvantages of WakeOnLan Wake-on-LAN can be a frustrating technology to implement. This is because it requires appropriate BIOS, network card and, sometimes, operating system and router support to function reliably. In some cases, hardware may wake from one low power state but not from others. This means that due to hardware issues the computer may be waking up from the "fully off state" (S5) but doesn't wake from sleep or hibernation or vice-versa. Also, it is not always clear what kind of magic packet a NIC expects to see. . Magic packets are sent via the data link or OSI-2 layer, which can be used or abused by anyone on the same LAN, unless the L2 LAN equipment is capable of (and configured for) filtering such traffic to match site-wide security requirements. Firewalls may be used to prevent clients among the public WAN from accessing the broadcast addresses of inside LAN segments, or routers may be configured to ignore subnet-directed broadcasts. The use of Wake-on-LAN technology on enterprise networks can sometimes conflict with network access control solutions such as 802.1x or MAC-based authentication[30], which may prevent magic packet delivery if a machine's WoL hardware has not been designed to maintain a live authentication session while in a sleep state. Configuration of these two features in tandem often requires tuning of timing parameters and thorough testing.
  • 58. 58 5. Project RAPA manual Before starting the manual of RAPA system there are some requirement the user must have. 5.1 Requirement for client The minimum android version on which the application is build is 2.3. The android device should have SD Card installed of minimum 1GB memory. There must be an Internet connection in the internet mode but in the local mode only network connection is required also need Java SE Runtime Environment 1.5 or higher. 5.2 Requirement for server Minimum 1 G RAM is required. Internet availability is needed on the internet mode but in the local mode only network connection is required. also need Java SE Runtime Environment 1.5 or higher. 5.3 1-For the (local mode) on computer to control another computer: In the server computer that the user wants to control open the location to which he have the jar file and run the file RAPAserver.jar. a chooser will appear and ask the user to choose wither to run the client or the server in this case the user should choose client.(18)
  • 59. 59 Figure 9 log in from PC chooser After choosing the client .the user will be waiting for the connection from the remote computer as in fig (10):
  • 60. 60 Figure 10 server connected screen
  • 61. 61 To establish the connection, from the client computer that he want to use to control the server Open the location to which he have the jar file and run the file RAPAclient.jar. Fig (11) Figure 11 IP field request in client screen The user must enter the IP of the computer that he wants to control in his local network. Then click Ok as defined in fig (12): Figure 12 accepting IP address
  • 62. 62 Then client pc will connect to the server as fig (13): Figure 13 connected screen from PC client
  • 63. 63 The user will see all the screen of the server pc and your start menu too if he want to do any action on his pc also RAPA software enable a task bar in the top of the screen includes Terminate button if he want to close the connection the other button is File transfer if he want transfer file from or to the client, the user can hide this task bar if it disturbs him in any time by minimize it to the start bar as fig (14) Figure 14 minimizing taskbar at client side
  • 64. 64 If the user want to start file transfer he will click the file transfer button, a file chooser will appear fig (15) Figure 15 file transfer window
  • 65. 65 Clients will the press the Browse button to choose from the server pc the file he wants to transfer. Fig (16) Figure 16 choosing file to transfer
  • 66. 66 By browsing the files and find the file that the user wants to transfer he just has to click on it and the file will automatically be set in the file name field. Fig (17). Figure 17 sending file
  • 67. 67 After choosing the file the have to click the send button to start transferring the file, fig (18). Note: in the current project the RAPA software only capable to transfer files not folders, hope to fix that in the next versions. Figure 18 file transfer sent
  • 68. 68 5.4 For the (local mode) on computer to be controlled by another computer: In the server computer that the user wants to control open the location to which he have the jar file and run the file RAPAserver.jar. a chooser will appear and ask the user to choose wither to run the client or the server in this case the user should choose server. Fig (9) After running a new white screen will appear means that the server is waiting for new connections. Fig (10) There is a button to terminate the connection with the client in any time the users click it, also there is file transfer button for transferring files between server and client. Fig (10) 5.5 Setting up the RAPA app on your Android device (local mode) Now that the user have ran the RAPAserver.jar file on the PC that he want to control it is time to run RAPA on his phone. The user must open the RAPA. Apk on his Android and run it; he will be asked to enter the IP address of the server compute that he wants to control. Fig (19).
  • 69. 69 Figure 19 Android local IP log in
  • 70. 70 After entering the IP address of the server and clicking the Login button the connection should establish. Figure 20 Android local filling IP
  • 71. 71 After connecting to the server pc the screen of the controlled computer will appear in the android mobile with a virtual mouse and keyboard for easy control of the computer. Fig (21). Figure 21 Android connected screen
  • 72. 72 If the user wants to get the virtual keyboard to write anything in the controlled computer then he just long touch it and the keyboard will appear. Fig (22) Figure 22 Android Virtual Keyboard
  • 73. 73 Also the Android app have file transfer mode to transfer data from Android to pc.to start the file transfer the user have to click the file transfer button to open file transfer window , Fig (23). Figure 23 Android file transfer menu
  • 74. 74 Then choose the browse button in the widow that will be opened for him to choose a file to send. Fig (24) Figure 24 Android browsing file
  • 75. 75 A new widow will appear with the files stored in the SD Card of the Android mobile. Fig (25) Figure 25 Android SD card Files browsing
  • 76. 76 After clicking on the file the user wants to send, it automatically sated in the path field then the user click send to send the file to the server side. Fig (26) Figure 26 Android file transfer sending
  • 77. 77 For more ease of use for the user, RAPA project provides WakeOnLan system to start on the closed computer from the user’s android mobile (in the local mode). This prevents any trouble for the users if he started the server computer and electricity went off or any power issues occurred, and he is away from the controlled computer. A few steps are required to use the WakeOnLan: 1- The user must have the mac address of the computer that he wants to control. 2- The user must have the IP address of the computer that he wants to control. After getting the required addresses the user can start the WakeOnLan .when its opened a new window will appear with 3 fields and 2 buttons, fig (27). In the first field the user must enter the mac address of the pc that will be started. In the second field the user must enter the IP address of the computer that will be started. The third field is the port number that the magic packet will be send to and it is automatically filled by the software. There are 2 buttons although; the first button is the Clear Form buttons to clear the form if anything wrong have been written. The second button is Send Wake Packet to send the magic packet to the server computer that the user want to start on.
  • 79. 79 After filing the form correctly the user will click the Send Wake Packet if the data correct a toast will appear to the user saying (magic packet sent).fig (28) Figure 28 Android WOL magic packet sent
  • 80. 80 5.6 Setting up the RAPA app on your Android device (internet mode) (under implementation) There is no difference in the usage between the RAPA app for Android in the internet mode and in the local mode else in 3 main things: 1- The login menu the user in the log in menu will not be asked for the IP address to connect to the server but for a user name and password that he acquired from the pc when he signed in in the first time. Fig(29) 2- In the internet mode doesn’t include the WakeOnLan mode. 3- The internet mod requires internet connection with the world wide web When the user set the correct user name and password the connection will be established and the user will be able to see the server pc screen .fig (30) The user will also control a virtual key board and mouse for easy control of the computer .fig (31)
  • 81. 81 Figure 29 Android internet log in
  • 82. 82 Figure 30 Android connected screen
  • 83. 83 Figure 31 Android virtual Keyboard
  • 84. 84 5.7 Setting up the RAPA app on your computer (internet mode) (under implementation) There are some differences in the usage between the RAPA app for computer in the internet mode and in the local mode and they are: 1- In the internet mode doesn’t include the WakeOnLan mode. 2- The internet mode requires internet connection with the world wide web 3- In The starting window there is a third button called register. This button is used only in the first use of the program to submit the user name and password to the database These data will be used later by the client program to accesses’ this computer. Fig (32) Figure 32 PC internet chooser
  • 85. 85 If the client choose the register button anew window will appear contains three fields to fill them .fig (33). Figure 33 PC register menu
  • 86. 86 The first field requires the user name that will be used define the machine. The second field requires the password for the security of the user to make sure that there won’t be any unwanted access from another clients or hackers on the port The third field requires the user to enter the same password again to make sure that there are no mistakes or misspelling in the password. Fig (34) Figure 34 filling the registration menu
  • 87. 87 After filling all the fields correctly a message will appear to confirm that the data have been registered in the database. Fig (35) Figure 35 PC registeraition submetted
  • 88. 88 6. Conclusion This project is about how to control targeted PC using android mobile phones. During implementation some requirements for the application were identified. This application does not require any additional equipment’s or software. Although, the application will work fine. This application contains tow modes local mode and internet mode (under implementation). RAPA app works for both android as client to control remote computer or a client computer to control another computer. In the internet mode RAPA app provides security for the user by setting user name and password for each user. After the connection between client and server is established RAPA app allows file transfer between them RAPA app uses a web hosted SQL database for easy accessing and security for the user. (In the internet mode) RAPA app enables the user to start on the computer with the WakeOnLan technology in the local mode.
  • 89. 89 7. Future work For the future work the RAPA team is willing to update a lot of features in RAPA app here we state some of: 1- Increase the GUI of the app as its simple in this version. 2- As the WakeOnLan works only in the local mode we will work on method ton include it in the internet mode. 3- For more flexibility we will work in including chat to the internet mode. 4- In the local mode we will add more security methods like password and user. 5- In the file transfer mode we will implement the FTP code to transfer folders beside files. 6- As this version has some problems like slow speed in the wireless networks and some lag in the android app we will test and implement methods to fix these issues. 7- In the next update on of our priorities is to include a class to automatically get the IP address and the mac address for the user. (under implementation)
  • 90. 90 8. References [1] Remote Control of Mobile Devices in Android Platform Angel, Gonzalez Villan , Student Member, IEEE and Josep Jorba Esteve,Member, IEEE. [2] Windows XP operating system. [3] Android. http://www.android.com [4] What is Android? http://developer.android.com/guide/basics/what-is-android.htmlRetrieved March 1st, 2013. [5] Essential Client/Server Survival Guide, R. Orfali, D. Harkey, and J. Edwards. John Wiley & Sons, 1994. ISBN 0-471-13119-9. Client/server frequently asked questions URLs: http://www.abs.net/_lloyd/csfaq.txt ftp://ftp.uu.net/usenet/news.answers/client-server-faq.Z [6] Seddigh N, Et al, "Bandwidth Assurance Issues for TCP flows in a Differentiated Services Network", to be presented at GLOBECOM’99, Rio de Janeiro, December 1999. http://www7.nortel.com:8080/CTL/globe9806.pdf [7] Matthew S Gast, 802.11 Wireless Networks: The Definitive Guide, 2nd Edition, O’Reilly, 2005 [8] www.LogMeIn.com. Retrieved Jan 3rd, 2013. [9] Feinler, Elizabeth, "Internet Protocol Transition Workbook", Network Information Center, SRI International, March 1982. [10] h3p://www.teamviewer.com/ index.aspx. . Retrieved Jan 3rd, 2013. [11] https://join.me/Downloads/joinme_architecture.pdf. Retrieved Jan 3rd, 2013. [12] Object-oriented programming "The History of Java Technology". Sun Developer Network. ca. 1995. [13] Understanding 802.1X Authentication with Wake-on-LAN"., Cisco Catalyst 6500 Release 12.2SX Software Configuration Guide
  • 91. 91 [14] Whitten, Jeffrey L.; Lonnie D. Bentley, Kevin C. Dittman. (2003). Systems Analysis and Design Methods. 6th edition. ISBN 0-256-19906-X. [15] Charlie Kaufman, Radia Perlman, Mike Speciner, “Network Security: Private Communication in a Public World”, Second Edition, Prentice Hall, April 15, 2002 [16] Postel, John. "RFC 793". Retrieved 29 June 2012. http://www.ietf.org/rfc/rfc793.txt . .Retrieved Jan 15, 2013. [17] "ANNEX A4: SOCKETS DIRECT PROTOCOL (SDP)". InInfiniBand™ Architecture Release 1.2.1, p. 1215ff. [18] "Philosophy and Goals". Android Open Source Project. Google. Retrieved 2012-10-27. [19] Tim Bray (November 24, 2010). "What Android Is". ongoing by Tim Bray. Retrieved 2012- 11-12. [20] Books.google.com - UNIX Network Programming: The sockets networking API [21] The TCP/IP Guide - A comprehensive look at the protocols and the procedures/processes involved http://www.tcpipguide.com/free/ [22] Larry L. Peterson, Bruce S. Davie, “Computer Networks: A Systems Approach”, 3rd Edition, Morgan Kaufmann, May 2003. [23] W. Richard Stevens, “TCP/IP Illustrated, Volume 1: The Protocols”, Addison-Wesley, 1993. [24] Wampler, Dean (2009-01-15). "Adopting New JVM Languages in the Enterprise (Updated)". objectmentor.com. Retrieved 2009-06-18 [25] Stroustrup, Bjarne (2000). The C++ Programming Language(Special ed.). Addison- Wesley. ISBN 0-201-70073-5. [26] C. J. Date with Hugh Darwen: A Guide to the SQL standard : a users guide to the standard database language SQL, 4th ed., Addison Wesley, USA 1997, ISBN 978-0-201-96426-4 [27] Lynn Beighley and Michael Morrison : Head First PHP & MySQL (ISBN 0-596-00630-3)
  • 92. 92 [28] Wake on Wireless LAN, By Andrew vonNagy, November 8, 2010,Revolution Wi-Fi Blog [29] Magic Packet Technology. AMD White Paper., Publication# 20213, Rev: A Amendment/0, Issue Date: November 1995 [30] IEEE STD 802-2001. The Institute of Electrical and Electronics Engineers, Inc. (IEEE). 2002-02-07. p. 19. ISBN 0-7381-2941-0. Retrieved 2013-03-04. "The universal administration of LAN MAC addresses began with the Xerox Corporation administering Block Identifiers (Block IDs) for Ethernet addresses."