1.1outline of The Project: 1.2.1 Cloud Computing
1.1outline of The Project: 1.2.1 Cloud Computing
INTRODUCTION
Smartphone devices are widely used in our daily lives. However, these devices
exhibit limitations, such as short battery lifetime, limited computation power, small
memory size and unpredictable network connectivity. Therefore, numerous
solutions have been proposed to mitigate these limitations and extend the battery
lifetime with the use of the offloading technique. In this paper, a novel framework is
proposed to offload intensive computation tasks from the mobile device to the
cloud. This framework uses an optimization model to determine the offloading
decision dynamically based on four main parameters, namely, energy
consumption, CPU utilization, execution time, and memory usage. In addition, a
new security layer is provided to protect the transferred data in the cloud from any
attack. The experimental results showed that the framework can select a suitable
offloading decision for different types of mobile application tasks while achieving
significant performance improvement. Moreover, different from previous
techniques, the framework can protect application data from any threat.
1.2INTRODUCTION TO DOMAIN
1
of high computing power, cheap cost of services, high performance, scalability,
accessibility as well as availability.
1.2.2 SECURITY
The major security concepts to ensure the information security are depicted
1.2.3.1 Confidentiality
1.2.3.2 Integrity
3
1.2.3.3 Availability
Availability, as the term implies, means that the data actually exist in the
tables and files where they are supposed to be and that they are not inadvertently
or purposefully deleted in unauthorized fashions. Its aim is to ensure that
information is readily accessible to authorized users. Natural and man-made
disasters obviously may also affect availability as well as confidentiality and
integrity of information though their frequency and severity greatly differ. In natural
disasters are infrequent but severe, whereas human errors are frequent but
usually not as serve as natural disasters. In both cases, business continuity and
disaster recovery planning is intended to minimize loss.
LITERATURE SURVEY
7
based on the device context. We also conduct real experiments on the
implemented system to evaluate the performance of the algorithm. Results
indicate the system and embedded decision algorithm can select suitable wireless
medium and cloud resources based on different context of the mobile devices, and
achieve significant performance improvement.
CHAPTER 3
3.1 OBJECTIVE
This work proposes a novel framework that offloads only intensive tasks instead
of offloading all applications, thereby requiring less network communication. An
optimization model is formulated to determine the offloading decision dynamically
at runtime based on four main constraints, namely, execution time of the task,
CPU utilization, memory usage and energy consumption. A new security layer is
added to encrypt the data of the task before transferring to the cloud side by using
AES encryption technique. Three different types of mobile applications are used in
the experimental studies to test this framework and to show the selection of a
proper offloading decision for improved application performance.
Smartphone devices are widely used in our daily lives. However, these
devices exhibit limitations, such as short battery lifetime, limited
computation power, small memory size and unpredictable network
connectivity.
9
Therefore, numerous solutions have been proposed to mitigate these
limitations and extend the battery lifetime with the use of the offloading
technique.
The feasibility of the project is analyzed in this phase and business proposal
is put forth with a very general plan for the project and some cost estimates.
During system analysis the feasibility study of the proposed system is to be carried
out. This is to ensure that the proposed system is not a burden to the company.
For feasibility analysis, some understanding of the major requirements for the
system is essential.
10
Three key considerations involved in the feasibility analysis are:
Economical feasibility
Technical feasibility
Social feasibility
This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands being
placed on the client. A feasibility study evaluates the project’s potential for
success.
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods
that are employed to educate the user about the system and to make him familiar
with it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
CHAPTER 4
SYSTEM SPECIFICATION
Processor : I3 processor
RAM : 1 GB
Hard Disk : 80 GB
IDE : ECLIPSE
Database : MYSQL
12
4.3 INTRODUCTION TO JAVA
Unlike many other programming languages including C and C++ when Java
is compiled, it is not compiled into platform specific machine, rather into platform
independent byte code. This byte code is distributed over the web and interpreted
by Java virtual Machine (JVM) on whichever platform it is being run.
Java was designed with a concept of ‘write once and run everywhere’. Java
Virtual Machine plays the central role in this concept. The JVM is the environment
in which Java programs execute. It is software that is implemented on top of real
hardware and operating system. When the source code (.java files) is compiled, it
is translated into byte codes and then placed into (.class) files. The JVM executes
these byte codes. So Java byte codes can be thought of as the machine language
of the JVM. A JVM can either interpret the bytecode one instruction at a time or the
bytecode can be compiled further for the real microprocessor using what is called
a just-in-time compiler. The JVM must be implemented on a particular platform
before compiled programs can run on that platform.
Abstraction
Encapsulation
Inheritance
Polymorphism
Reusability of Code.
Emphasis on data rather than procedure.
Data is hidden and cannot be accessed by external functions.
Objects can communicate with each other through functions.
New data and functions can be easily added.
14
signed upgrades and new features directly into the running application.
Reinstalling an upgrade or a new release does not force users to download the
entire application again.The platform offers reusable services common to desktop
applications, allowing developers to focus on the logic specific to their application.
Among the features of the platform are:
4. Window management.
4.5. MySQL
The MySQL development project has made its source code available under the
terms of the GNU General Public License, as well as under a variety of proprietary
agreements. MySQL was owned and sponsored by a single for-profit firm, the
Swedish company MySQL AB, now owned by Oracle Corporation. Free-software
open source projects that require a full-featured database management system
often use MySQL. For commercial use, several paid editions are available, and
offer additional functionality. Applications which use MySQL databases include:
TYPO3, Joomla, WordPress, phpBB, Drupal and other software built on the LAMP
software stack. MySQL is also used in many high-profile, large-scale World Wide
Web products, including Wikipedia, Google (though not for searches), Facebook,
and Twitter.
16
housed in
17
separate facilities. These Availability Zones offer you the ability to operate
production applications and databases that are more highly available, fault
tolerant, and scalable than would be possible from a single data center. The AWS
Cloud operates 42 Availability Zones within 16 geographic Regions around the
world, with five more Availability Zones and two more Regions came online in
2017. Each Amazon Region is designed to be completely isolated from the other
Amazon Regions. This achieves the greatest possible fault tolerance and stability.
Each Availability Zone is isolated, but the Availability Zones in a Region are
connected through low-latency links.
4.6.3.1 Cloud
A cloud-based application is fully deployed in the cloud and all parts of the
application run in the cloud. Applications in the cloud have either been created in
the cloud or have been migrated from an existing infrastructure to take advantage
of the benefits of cloud computing. Cloud-based applications can be built on low-
level infrastructure pieces or can use higher level services that provide abstraction
from the management, architecting, and scaling requirements of core
infrastructure.
4.6.3.2 Hybrid
18
4.6.3.3 On-premises
Benefits
Amazon EC2 enables you to increase or decrease capacity within minutes, not
hours or days. You can commission one, hundreds, or even thousands of server
instances simultaneously. Because this is all controlled with web service APIs,
your application can automatically scale itself up and down depending on its
needs.
You have complete control of your Amazon EC2 instances. You have root access
to each one, and you can interact with them as you would any machine. You can
stop your Amazon EC2 instance while retaining the data on your boot partition,
and then subsequently restart the same instance using web service APIs.
Instances can be rebooted remotely using web service APIs.
You can choose among multiple instance types, operating systems, and software
packages. Amazon EC2 allows you to select the memory configuration, CPU,
instance storage, and boot partition size that are optimal for your choice of
operating system and application. For example, your choice of operating systems
includes numerous Linux distributions and Microsoft Windows Server.
Integrated
Amazon EC2 is integrated with most AWS services, such as Amazon Simple
Storage Service (Amazon S3), Amazon Relational Database Service (Amazon
RDS), and Amazon Virtual Private Cloud (Amazon VPC) to provide a complete,
secure solution for computing, query processing, and cloud storage across a wide
range of applications.
Reliable
Inexpensive
Amazon EC2 passes on to you the financial benefits of Amazon’s scale. You pay a
very low rate for the compute capacity you actually consume. See Amazon EC2
Instance Purchasing Options for a more detailed description.
– Amazon EBS
– Amazon S3
20
– Instance Storage
AWS Lambda lets you run code without provisioning or managing servers.
You pay only for the compute time you consume—there is no charge when your
code is not running. With Lambda, you can run code for virtually any type of
application or backend service—all with zero administration. Just upload your
code, and Lambda takes care of everything required to run and scale your code
with high availability. You can set up your code to automatically trigger from other
AWS services, or you can call it directly from any web or mobile app. Workflow is
as shown in Fig:3.3.
4.7.2.1 Amazon S3
22
into lower cost, longer-term cloud storage classes like Amazon S3 standard -
Infrequent Access and Amazon Glacier for archiving (as shown in Fig:3.3).
• Scalable: With Amazon S3, you can store as much data as you want and access
it when needed. You can stop guessing your future storage needs and scale up
and down as required, dramatically increasing business agility.
• Low Cost: Amazon S3 allows you to store large amounts of data at a very low
cost. Using lifecycle policies, you can set policies to automatically migrate your
data to Standard - Infrequent Access and Amazon Glacier as it ages to further
reduce costs.
• Simple Data Transfer: Amazon provides multiple options for cloud data migration,
and makes it simple and cost-effective for you to move large volumes of data into
or out of Amazon S3. You can choose from network-optimized, physical disk-
based, or third-party connector methods for import to or export from Amazon S3.
Fig 4.4 S3 architecture
Benefits
• Fast and Easy to Administer: Amazon RDS makes it easy to go from project
conception to deployment. Use the AWS Management Console, the AWS RDS
Command Line Interface, or simple API calls to access the capabilities of a
production-ready relational database in minutes. No need for infrastructure
provisioning, and no need for installing and maintaining database software.
• Highly Scalable: You can scale your database's compute and storage resources
with only a few mouse clicks or an API call, often with no downtime. Many Amazon
RDS engine types allow you to launch one or more Read Replicas to offload read
traffic from your primary database instance.
• Secure: Amazon RDS makes it easy to control network access to your database.
Amazon RDS also lets you run your database instances in Amazon VPC, which
24
enables you to isolate your database instances and to connect to your existing IT
infrastructure through an industry-standard encrypted IPsec VPN. Many Amazon
RDS engine types offer encryption at rest and encryption in transit.
• Inexpensive: You pay very low rates and only for the resources you actually
consume. In addition, you benefit from the option of On-Demand pricing with no
up- front or long-term commitments, or even lower hourly rates using our Reserved
Instance pricing.
Amazon Dynamo DB is a fast and flexible NoSQL database service for all
applications that need consistent, single-digit millisecond latency at any scale. It is
a fully managed database and supports both document and key-value data
models. Its flexible data model and reliable performance make it a great fit for
mobile, web, gaming, ad-tech, Internet of Things (IoT), and many other
applications.
Benefits
• Fine-grained Access Control: Amazon Dynamo DB integrates with AWS IAM for
fine-grained access control for users within your organization. You can assign
unique security credentials to each user and control each user's access to
services and resources.
26
4.7.4 Security, Identity, and Compliance
• Manage IAM users and their access: You can create users in IAM, assign them
individual security credentials (access keys, passwords, and multi-factor
authentication devices), or request temporary security credentials to provide users
access to AWS services and resources. You can manage permissions in order to
control which operations a user can perform.
• Manage IAM roles and their permissions: You can create roles in IAM and
manage permissions to control which operations can be performed by the entity,
or AWS service, that assumes the role. You can also define which entity is allowed
to assume the role.
• Manage federated users and their permissions: You can enable identity
federation to allow existing identities (users, groups, and roles) in your enterprise
to access the AWS Management Console, call AWS APIs, and access resources,
without the need to create an IAM user for each identity.
28
CHAPTER 5
5.1.1 Estimator
5.1.2 Profile
The profile module gets the estimations of execution time, memory use,
CPU use, and vitality utilization from estimator module for each commented on
strategy. At that point, the module makes another record for every technique and
stores these qualities into the document. These documents are refreshed after
each running procedure and utilized by the leader module as a history-based
record in the offloading choice.
5.1.3 Network and Bandwidth Monitor
This module just screens the present status of the system and accumulates
cell association state and its transmission capacity, Wi-Fi association state and its
transfer speed, and flag quality of cell and Wi-Fi association (get this data utilizing
programming code). At that point, this data is sent to the chief module to help the
assurance the offloading choice.
The choice make, that is, the centre module of the proposed system,
contains a number direct programming model and basic leadership calculation that
predicts at runtime where the commented on strategies are executed. The
objective of the model is to discover an application dividing technique that limits
the vitality utilization, exchange information, memory use, and CPU usage, in
PDAs, subject to specific requirements. The chief additionally considers all
information gathered from the profile and system and transfer speed screen
modules.
The cloud supervisor module is the main module conveyed on the cloud
side. This module is composed simply in Java. Hence, any application can profit
by the proposed structure to offload its calculation to any asset that runs the Java
Virtual Machine (JVM). Correspondence between the cloud director and the
versatile supervisor modules is overseen by Ibis correspondence middleware. In
the principal correspondence, at the establishment step, parallel document
containing the strategy code and its required libraries are sent to the cloud. At that
point, the cloud administrator gets the techniques information and unscrambles the
min the accompanying run. At that point, the chief executes the technique
remotely and sends the outcome back to the portable supervisor module with the
new qualities to be refreshed by the profile module.
32
Fig.5.4 Activity Diagram
5.3.1 MODULES
In this module we can upload any files. By Authentication can view and upload.
5.4 TESTING
Testing is a process of checking whether the developed system is working
according to the original objectives and requirements. Testing is a set of activities
that can be planned in advance and conducted systematically. Testing is important
to the success of the system. System testing makes a logical assumption that if all
the parts of the system are correct, the global will be successfully achieved.
34
5.4.1 Objectives Testing
Finding defects which may get created by the programmer while developing
the software.
Gaining confidence in and providing information about the level of quality.
To prevent defects.
To make sure that the end result meets the business and user
requirements. To ensure that it satisfies the BRS that is Business
Requirement Specification and SRS that is System Requirement
Specifications.
To gain the confidence of the customers by providing them a quality product
5.4.2 Testing Principles
36
5.5.4 Functional Testing
The software is tested for the functional requirements. This checks whether
the application is behaving according to the specification.
In functional testing basically the testing of the functions of component or
system is done. It refers to activities that verify a specific action or function
of the code.
This is typically described in a requirements specification or in a functional
specification.
5.5.5 Acceptance Testing
Acceptance testing is basically done by the user or customer although other
stakeholders may be involved as well.
The goal of acceptance testing is to establish confidence in the system.
Acceptance testing is most often focused on a validation type testing.
38
CHAPTER 6
CONCLUSION
6.1 CONCLUSION
In the future, we need to apply the same model on the edge computing server
instead of central cloud computing to reduce latency.
In addition, we need to enable parallelization for the execution of the method on
the cloud to potentially reduce execution time and energy consumption.
REFERENCES
1. Marjani ,M., Nasaruddin ,F., Gani, A., Karim A., Hashem I., Siddiqa A., and
Yaqoob I., (2017) “Big IoT Data Analytics: Architecture, Opportunities, and Open
Research Challenges”. IEEE Access Journal , 5(5), 5247-5261.
5. Wang, Y., Ray C., and Ding-Chau W. (2015): "A survey of mobile cloud computing
applications: perspectives and challenges." Wireless Personal Communications 80(4)
, 1607-1623
6. Jakimoski, K, (2016) "Security Techniques for Data Protection in Cloud
Computing." International Journal of Grid and Distributed Computing , 9(1) , 49-56. 7.
Waleed, A, and Li C. (2016): "User Privacy and Security in Cloud Computing."
International Journal of Security and Its Applications , 10(2) , 341-352.
40
11. Eugene E Marinelli, "Hyrax: cloud computing on mobile devices using
MapReduce," DTIC Document,Tech. rep. 2009.
41
APPENDIX
A. SOURCE CODE
Data owner.jsp
pageEncoding="ISO-8859-1"%>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">
<title>Admin</title>
<script>
function validLogin(){
if (document.admin.uname.value == ""){
document.admin.uname.focus();
42
returnfalse;
if (document.admin.pass.value == ""){
document.admin.pass.focus();
returnfalse;
window.open('ownerview.jsp','_self')
else{
alert("Invalid Login")
returnfalse;
returnfalse;
/* window.history.forward();
function noBack() { window.history.forward(); } */
</SCRIPT>
</head>
<body onload="noBack();"
<div class="sidenav">
<a href="index.jsp">Home</a>
<a href="dataowner.jsp">Dataowner</a>
<a href="datauser.jsp">Datauser</a>
<a href="cloud.jsp">Cloud</a>
</div>
<div class="main">
<thead>
<tr>
44
<th colspan="2">Data Owner Login</th>
</tr>
</thead>
<tbody>
<tr>
<td>User Name</td>
</tr>
<tr>
<td>Password</td>
</tr>
</tbody>
</table>
<table>
<tr>
<td><buttonclass="button">Login</button
</tr>
</table>
</form>
</div>
</body>
</html>
Data user.jsp
pageEncoding="ISO-8859-1"%>
<html>
<head>
46
<title>User</title>
</head>
<body onload="noBack();"
<div class="sidenav">
<a href="index.jsp">Home</a>
<a href="dataowner.jsp">Dataowner</a>
<a href="datauser.jsp">Datauser</a>
<a href="cloud.jsp">Cloud</a>
</div>
<div class="main">
<thead>
<tr>
</thead>
<tbody>
<tr>
<td>User Name</td>
</tr>
<tr>
<td><p>Password</p></td>
</tr>
<tr>
<td><p>Activate Key</p></td>
</tr>
</tbody>
</table>
<table><tr>
48
<td><button class="button">Login</button></td></tr>
</table>
</form>
</div></body>
</html>
Cloud.jsp
pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>Admin</title>
<script>
function validLogin(){
if (document.admin.uname.value == ""){
alert ( "Please enter Login Name." );
document.admin.uname.focus();
returnfalse;
if (document.admin.pass.value == ""){
document.admin.pass.focus();
returnfalse;
window.open('cloudview.jsp','_self')
else{
alert("Invalid Login")
returnfalse;
returnfalse;
/* window.history.forward();
50
function noBack() { window.history.forward(); } */
</SCRIPT>
</head>
<body onload="noBack();"
<div class="sidenav">
<a href="index.jsp">Home</a>
<a href="dataowner.jsp">Dataowner</a>
<a href="datauser.jsp">Datauser</a>
<a href="cloud.jsp">Cloud</a>
</div>
<div class="main">
<div class="row">
<div class="leftcolumn">
<div class="card">
<thead>
<tr>
</thead>
<tbody>
<tr>
<td>User Name</td>
</tr>
<tr>
<td>Password</td>
</tr>
</tbody>
</table>
<table>
<tr>
<td><button class="button">Login</button></td>
</tr>
</table>
</div>
</div>
</div>
</form>
</div></body>
52
</html>
pageEncoding="ISO-8859-1"%>
<html>
<head>
<title>Admin</title>
</head>
<body>
<div class="sidenav">
<a href="index.jsp">Home</a>
<a href="cloud.jsp">Logout</a>
</div><div class="main">
</div>
</body>
</html>
File upload.jsp
<Html>
<HEAD>
<script>
function validateForm() {
returntrue;
</script>
<TITLE>Upload File</TITLE></HEAD>
<BODY>
<div class="sidenav">
<a href="index.jsp">Home</a>
</div>
<<div class="main">
54
<FORM ENCTYPE="multipart/form-data"
ACTION="UploadFileServlet" METHOD=POST onsubmit="return
validateForm()">
<br><br><br>
<table align="center">
<tr><td><b>File Name</b>
</td>
<tr><td><b>Index Term</b>
</td>
<tr><td><b>Description</b>
</td>
</td>
</table>
</FORM>
</div>
</BODY>
</HTML>
File download.jsp
<%@page import="java.sql.*"%>
<%@page import="java.io.*"%>
<%@page import="javax.servlet.*"%>
<%
String id=(String)session.getAttribute("id");
try{ Class.forName("com.mysql.jdbc.Driver").newInstan
ce();
Connection
con=DriverManager.getConnection(connectionURL,"admin","password");
Statement st=con.createStatement();
if(rst.next())
Content=rst.getString("file_data2");
con.close();
}catch(Exception e){
System.out.println("Exception caught"+e.getMessage());
56
}
response.reset();
response.setContentType("application/doc");
int len;
output.write(buf, 0, len);
bis.close();
response.getOutputStream().flush();
%>
B. SCREENSHOTS
The above screenshot is the home page which is the start page of the website. Which gives
introduction of the website.
The above screenshot display the login page, which allows user to authenticate his account.
58
The above screenshot display the cloud login page which allows the cloud owner to
authenticate the users data.
The above screenshot display the registration form page which allows users to register into
the website and upload the files.
The above screenshot display the authentication list page which displays the list of all
authenticated users and their details.
The above screenshot display the file list page which shows the list of all the files that were
uploaded by the users.
The above screenshot display the authentication list page which displays the list of all
authenticated users and their details.
The above scrrenshot displays the upload file page which allows the user to upload his file.
60
The above screenshot display the search page which allows user to search the file that was
uploaded by him.
The above screenshot display the details and duration of the uploaded files in online or offline
mode.
61
The above screenshot display the content of uploaded file in encrypted format.
62
62
64