0% found this document useful (0 votes)
112 views

1.1outline of The Project: 1.2.1 Cloud Computing

This document provides an introduction and literature review on mobile cloud computing and security. It introduces cloud computing concepts and discusses how mobile devices can offload intensive tasks to the cloud to save energy and improve performance. It then reviews security concepts like confidentiality, integrity, availability and privacy that are important for protecting data. The literature survey summarizes two research papers on energy management techniques for mobile devices and survey of mobile cloud computing application models. The document lays the foundation for a proposed framework that will use optimization to determine dynamic offloading decisions based on parameters like energy and security and improve mobile application performance.

Uploaded by

Vikram Kr Mehta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
112 views

1.1outline of The Project: 1.2.1 Cloud Computing

This document provides an introduction and literature review on mobile cloud computing and security. It introduces cloud computing concepts and discusses how mobile devices can offload intensive tasks to the cloud to save energy and improve performance. It then reviews security concepts like confidentiality, integrity, availability and privacy that are important for protecting data. The literature survey summarizes two research papers on energy management techniques for mobile devices and survey of mobile cloud computing application models. The document lays the foundation for a proposed framework that will use optimization to determine dynamic offloading decisions based on parameters like energy and security and improve mobile application performance.

Uploaded by

Vikram Kr Mehta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 71

CHAPTER 1

INTRODUCTION

1.1OUTLINE OF THE PROJECT

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.2.1 Cloud Computing

Cloud computing, also on-demand computing, is a kind of Internet-based


computing that provides shared processing resources and data to computers and
other devices on demand. It is a model for enabling ubiquitous, on-demand access
to a shared pool of configurable computing resources, which can be rapidly
provisioned and released with minimal management effort. Cloud computing and
storage solutions provide users and enterprises with various capabilities to store
and process their data in third-party data centres. It relies on sharing of resources
to achieve coherence and economy of scale, similar to a utility over a network.
Cloud computing has become a highly demanded service or utility due to the
advantages

1
of high computing power, cheap cost of services, high performance, scalability,
accessibility as well as availability.

Multi cloud is the use of multiple cloud computing services in a single


heterogeneous architecture. There are a number of reasons for deploying a multi
cloud architecture, including reducing reliance on any single vendor, increasing
flexibility through choice, mitigating against disasters, etc. It is similar to the use of
best-of-breed applications from multiple developers on a personal computer, rather
than the defaults offered by the operating system vendor. Media Cloud is an open-
source content analysis tool that aims to map media coverage of current events.
Media Cloud tracks hundreds of multimedia content and thousands of web sites
and blogs, and archives the information in a searchable form. Complete multi-
cloud system for multimedia content protection. The system supports different
types of multimedia content and can effectively utilize varying computing
resources.

1.2.2 SECURITY

Security is the protection of information assets through the use of


technology, processes, and training. It is applied to computing devices such as
computers and smartphones, as well as computer networks such as private and
public networks, including the whole Internet. The field includes all five
components: hardware, software, data, people, and procedures by which digital
equipment, information and services are protected from unintended or
unauthorized access, change or destruction, and is of growing importance due to
the increasing reliance of computer systems in most societies. Intruders and are
perpetual threats to most businesses, so maintaining security should be a top
priority in most of the organization.

Passwords are used for virtually everything we do online. Passwords


protect our identities on websites, discussion groups, e-mail accounts and more.
Many family computers with multiple user accounts employ passwords. Computer
security protocols might require employees to change passwords periodically and
avoid opening personal email accounts at work. With all of this sensitive data at
stake, creating good passwords is very important to prevent identity theft.
Passwords are the main defense against computer hackers. Hackers typically try
to break into a computer or secure account by guessing passwords one at a time.
Automated programs can also be used to repeatedly guess passwords from a
database of
common words or other information. Even the best passwords can be defeated
with enough time, skill, and computer processing power but a strong password is
vital to buy time, prevent attacks by less determined hackers. The use of strong
passwords can slow or often defeat the various attack methods of compromising a
terminal’s security.

1.2.3 INFORMATION SECURITY

The major security concepts to ensure the information security are depicted

1.2.3.1 Confidentiality

Confidentiality is the prevention of unauthorized disclosure of information. It


means keeping a client's information between you and the client, and not telling
others including co-workers, friends, family, etc. Examples of maintaining
confidentiality include: individual files are locked and secured. Main mechanism for
protection of confidentiality in information systems are cryptography and access
control. Otherwise confidentiality information can be misused to commit illegal
activity which can in turn result in costly lawsuits for the employer.

1.2.3.2 Integrity

Integrity aims at ensuring that information is protected from unauthorized or


unintentional alteration, modification or deletion. It is concerned with the
trustworthiness, origin, completeness, and correctness of information as well as
the prevention of improper or unauthorized modification of information. Integrity in
the information security context refers not only to integrity of information itself but
also to the origin integrity that is, integrity of the source of information. As with data
confidentiality, cryptography plays a very major role in ensuring data integrity.
Commonly used methods to protect data integrity include hashing the data
you receive and comparing it with the hash of the original message. However, this
means that the hash of the original data must be provided to you in a secure
fashion

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.

1.2.4 INFORMATION PRIVACY

Information privacy is the relationship between collection and dissemination


of data, technology, the public expectation of privacy, and the legal and political
issues surrounding them. Privacy concerns exist wherever personally identifiable
information or other sensitive information is collected, stored, used, and finally
destroyed or deleted – in digital form or otherwise. Improper or non-existent
disclosure control can be the root cause for privacy issues. The challenge of data
privacy is to utilize data while protecting individual's privacy preferences and their
personally identifiable information. It is ensured by data partitioning, user
authentication and data exchange standards.
CHAPTER 2

LITERATURE SURVEY

2.1 Title: “Energy management techniques in modern mobile handsets,”.

Author : N. Vallina-Rodriguez and J. Crowcroft

Managing energy efficiently is paramount in modern smart phones. The diverse


range of wireless interfaces and sensors, and the increasing popularity of power-
hungry applications that take advantage of these resources can reduce the battery life
of mobile handhelds to few hours of operation. The research community and
operating system and hardware vendors found interesting optimisations and
techniques to extend the battery life of mobile phones. However, the state of the art of
lithium-ion batteries clearly indicates that energy efficiency must be achieved both at
the hardware and software level. In this survey, we will cover the software solutions
that can be found in the research literature between 1999 and May 2011 at six
different levels: energy- aware operating systems, efficient resource management, the
impact of users’ interaction patterns with mobile devices and applications, wireless
interfaces and sensors management, and finally the benefits of integrating mobile
devices with cloud
computing services.
2.2 Title: “A survey of mobile cloud computing application models”.

Author: A. U. R. Khan, M. Othman, S. A. Madani, and S.U. Khan

Smartphone’s are now capable of supporting a wide range of applications,


many of which demand an ever increasing computational power. This poses a
challenge because smart phones are resource-constrained devices with limited
computation power, memory, storage, and energy. Fortunately, the cloud
computing technology offers virtually unlimited dynamic resources for computation,
storage, and service provision. Therefore, researchers envision extending cloud
computing services to mobile devices to overcome the Smartphone’s constraints.
The challenge in doing so is that the traditional Smartphone application models do
not support the development of applications that can incorporate cloud computing
features and requires specialized mobile cloud application models. This article
5
presents mobile cloud architecture, offloading decision affecting entities,
application models classification, the latest mobile cloud application models, their
critical analysis and future research directions.

2.3 Title: “A review on distributed application processing frameworks in


smart mobile devices for mobile cloud computing,”.

Author: M. Shiraz, A. Gani, R. H. Khokhar, and R. Buyya

The latest developments in mobile devices technology have made


Smartphone’s as the future computing and service access devices. Users expect
to run computational intensive applications on Smart Mobile Devices (SMDs) in the
same way as powerful stationary computers. However in spite of all the
advancements in recent years, SMDs are still low potential computing devices,
which are constrained by CPU potentials, memory capacity and battery life time.
Mobile Cloud Computing (MCC) is the latest practical solution for alleviating this
incapacitation by extending the services and resources of computational clouds to
SMDs on demand basis. In MCC, application offloading is ascertained as a
software level solution for augmenting application processing capabilities of SMDs.
The current offloading algorithms offload computational intensive applications to
remote servers by employing different cloud models. A challenging aspect of such
algorithms is the establishment of distributed application processing platform at
runtime which requires additional computing resources on SMDs. This paper
reviews existing Distributed Application Processing Frameworks (DAPFs) for
SMDs in MCC domain. The objective is to highlight issues and challenges to
existing DAPFs in developing, implementing, and executing computational
intensive mobile applications within MCC domain. It proposes thematic taxonomy
of current DAPFs, reviews current offloading frameworks by using thematic
taxonomy and analyzes the implications and critical aspects of current offloading
frameworks. Further, it investigates commonalities and deviations in such
frameworks on the basis significant parameters such as offloading scope,
migration granularity, partitioning approach, and migration pattern. Finally, we put
forward open research issues in distributed application processing for MCC that
remain to be addressed.
2.4 Title: “Adaptive computation offloading from mobile devices into the
cloud”.

Author: D. Kovachev, T.Yu, and R. Klamma

The inherently limited processing power and battery lifetime of mobile


phones hinder the possible execution of computationally intensive applications like
content- based video analysis or 3D modelling. Offloading of computationally
intensive application parts from the mobile platform into a remote cloud
infrastructure or nearby idle computers addresses this problem. This paper
presents our Mobile Augmentation Cloud Services (MACS) middleware which
enables adaptive extension of Android application execution from a mobile client
into the cloud. Applications are developed by using the standard Android
development pattern. The middleware does the heavy lifting of adaptive
application partitioning, resource monitoring and computation offloading. These
elastic mobile applications can run as usual mobile application, but they can also
reach transparently remote computing resources. Two prototype applications
using the MACS middleware demonstrate the benefits of the approach. The
evaluation shows that applications, which involve complicated algorithms and large
computations, can benefit from offloading with around 95% energy savings and
significant performance gains compared to local execution only.

2.5 Title: “A context sensitive offloading scheme for mobile cloud


computing service”.
Author: B. Zhou, A. V. Dastjerdi, R. N. Calheiros, and S. N. Srirama
Mobile cloud computing (MCC) has drawn significant research attention as
the popularity and capability of mobile devices have been improved in recent
years. In this paper, we propose a prototype MCC offloading system that
considers multiple cloud resources such as mobile ad-hoc network, cloudlet and
public clouds to provide a adaptive MCC service. We propose a context-aware
offloading decision algorithm aiming to provide code offloading decisions at
runtime on selecting wireless medium and which potential cloud resources as
the offloading location

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

AIM AND SCOPE OF THE PROJECT

3.1 OBJECTIVE

This framework is proposed to offload intensive computation tasks from the


mobile device to the cloud. It 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.

3.2 SCOPE OF THE PROJECT

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.

3.3 EXISTING SYSTEM

 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.

3.3.1 Drawbacks in Existing System


 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.
3.4 PROPOSED SYSTEM
We specifically proposed a novel framework that uses computation offloading
to offload only the intensive tasks of mobile applications. We formulated an
optimization model responsible for determining the offloading decision.
3.4.1 Advantages in Proposed System
 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.

3.5 FEASIBILITY STUDY

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

3.5.1 Economical 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.

3.5.2 Technical Feasibility

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.

3.5.3 Social Feasibility

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

4.1 Hardware Requirements

The most common set of requirements defined by any operating system or


software application is the physical computer resources, also known as hardware.
A hardware requirements list is often accompanied by a hardware compatibility
list, especially in case of operating systems. The minimal hardware requirements
are as follows:

Processor : I3 processor

Motherboard : Genuine Intel

RAM : 1 GB

Hard Disk : 80 GB

4.2 Software Requirements

Software requirements deals with defining resource requirements and


prerequisites that needs to be installed on a computer to provide functioning of an
application. These requirements are need to be installed separately before the
software is installed. The minimal software requirements are as follows,

Operating system : Windows 2007/10.

Technology Used : JAVA, JFRAME, JSP, SERVLETS

Web Server : TOMCAT SERVER

IDE : ECLIPSE

Database : MYSQL

12
4.3 INTRODUCTION TO JAVA

Java is a simple and yet powerful object oriented programming language


and it is in many respects similar to C++. Java originated at Sun Microsystems,
Inc. in 1991. It was conceived by James Gosling, Patrick Naughton, Chris Warth,
Ed Frank, and Mike Sheridan at Sun Microsystems, Inc. It was developed to
provide a platform-independent programming language.

4.3.1 Platform Independent

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.

4.3.2 Java Virtual Machine

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.

4.3.3 Object Oriented Programming

Object Oriented Programming is a method of implementation in which


programs are organized as cooperative collection of objects, each of which
represents an instance of a class, and whose classes are all members of a
hierarchy of classes united via inheritance relationships.

Four principles of Object Oriented Programming are:

 Abstraction
 Encapsulation
 Inheritance
 Polymorphism

4.3.4 Features of Java

Java is an object oriented programming language it has following features:

 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.

4.3.5 Java Applications

Java has evolved from a simple language providing interactive dynamic


content for web pages to a predominant enterprise-enabled programming
language suitable for developing significant and critical applications. Today, it is
used for many types of applications including,

 Web based applications


 Financial applications
 Gaming application
 Embedded systems
 Distributed enterprise applications
 Mobile applications
 Image processors
 Desktop applications and many more.

4.4 FEATURES OF ECLIPSE

The ECLIPSE Platform is a reusable framework for simplifying the


development of Java Swing desktop applications. The ECLIPSE IDE bundle for
Java SE contains what is needed to start developing Eclipse plug-in and Eclipse
Platform based applications; no additional SDK is required.

Applications can install modules dynamically. Any application can include


the Update Center module to allow users of the application to download digitally-

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:

1. User interface management (e.g. menus and toolbars).

2. User settings management.

3. Storage management (saving and loading any kind of data).

4. Window management.

5. Eclipse Visual Library.

6. Integrated Development Tools.

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.

4.5.1 Platforms and interfaces

MySQL works on many different system platforms, including AIX, BSDi,


FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft
Windows, Net BSD, Novell NetWare, Open BSD, Open Solaris, OS/2 Warp, QNX,
Solaris, Symbian, SunOS, SCO Open Server, SCO UnixWare, Sanos and Tru64.
A port of MySQL to OpenVMS also exists. Many programming languages with
language- specific APIs include libraries for accessing MySQL databases. These
include MySQL Connector/Net for integration with Microsoft's Visual Studio
(languages
such as C# and VB are most commonly used) and the JDBC driver for Java. In
addition, an ODBC interface called MyODBC allows additional programming
languages that support the ODBC interface to communicate with a MySQL
database, such as ASP or ColdFusion. The HTSQL - URL-based query method
also ships with a MySQL adapter, allowing direct interaction between a MySQL
database and any web client via structured URLs. The MySQL server and official
libraries are mostly implemented in ANSI C/ANSI C++.
4.6 OVERVIEW OF AMAZON WEB SERVICES
To make our application work efficiently we need to utilize the
services of the cloud. As we are going to implement the amazon web services,
some of its resources are quite useful. The AWS Cloud provides a broad set of
infrastructure services, such as computing power, storage options, networking and
databases that are delivered as a utility: on-demand, available in seconds, with
pay-as-you-go pricing. From data warehousing to deployment tools, directories to
content delivery, over 90 AWS services are available. New services can be
provisioned quickly, without upfront capital expense. This allows enterprises, start-
ups, small and medium-sized businesses, and customers in the public sector to
access the building blocks they need to respond quickly to changing business
requirements. This whitepaper provides you with an overview of the benefits of the
AWS Cloud and introduces you to the services that make up the platform. With the
cloud, businesses no longer need to plan for and procure servers and other IT
infrastructure weeks or months in advance. Instead, they can instantly spin up
hundreds or thousands of servers in minutes and deliver results faster.

Today, AWS provides a highly reliable, scalable, low-cost infrastructure


platform in the cloud that powers hundreds of thousands of businesses in 190
countries around the world. They are steadily expanding global infrastructure to
help their customers achieve lower latency and higher throughput, and to ensure
that their data resides only in the AWS Region they specify. As their customers
grow their businesses, AWS will continue to provide infrastructure that meets their
global requirements. The AWS Cloud infrastructure is built around AWS Regions
and Availability Zones. An AWS Region is a physical location in the world where
we have multiple Availability Zones. Availability Zones consist of one or more
discrete data centers, each with redundant power, networking, and connectivity,

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.1 TYPES OF CLOUDS

Cloud computing provides developers and IT departments with the ability to


focus on what matters most and avoid undifferentiated work such as procurement,
maintenance, and capacity planning. As cloud computing has grown in popularity,
several different models and deployment strategies have emerged to help meet
specific needs of different users. Each type of cloud service and deployment
method provides you with different levels of control, flexibility, and management.
Understanding the differences between Infrastructure as a Service, Platform as a
Service, and Software as a Service, as well as what deployment strategies you
can use, can help you decide what set of services is right for your needs.

4.6.2 COMPUTING MODELS

4.6.2.1 Infrastructure as a Service (IaaS)

Infrastructure as a Service (IaaS) contains the basic building blocks for


cloud IT and typically provide access to networking features, computers (virtual or
on dedicated hardware), and data storage space. IaaS provides you with the
highest level of flexibility and management control over your IT resources and is
most similar to existing IT resources that many IT departments and developers are
familiar with today.

4.6.2.2 Platform as a Service (PaaS)

Platform as a Service (PaaS) removes the need for your organization to


manage the underlying infrastructure (usually hardware and operating systems)
and
allows you to focus on the deployment and management of your applications. This
helps you be more efficient as you don’t need to worry about resource
procurement, capacity planning, software maintenance, patching, or any of the
other undifferentiated heavy lifting involved in running your application.

4.6.2.3 Software as a Service (SaaS)

Software as a Service (SaaS) provides you with a completed product that is


run and managed by the service provider. In most cases, people referring to
Software as a Service are referring to end-user applications. With a SaaS offering
you do not have to think about how the service is maintained or how the
underlying infrastructure is managed; you only need to think about how you will
use that particular piece of software.

4.6.3 DEPLOYMENT MODELS

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

A hybrid deployment is a way to connect infrastructure and applications


between cloud-based resources and existing resources that are not located in the
cloud. The most common method of hybrid deployment is between the cloud and
existing on-premises infrastructure to extend, and grow, an organization's
infrastructure into the cloud while connecting cloud resources to the internal
system.

18
4.6.3.3 On-premises

The deployment of resources on-premises, using virtualization and resource


management tools, is sometimes called the “private cloud.” On-premises
deployment doesn’t provide many of the benefits of cloud computing but is
sometimes sought for its ability to provide dedicated resources. In most cases this
deployment model is the same as legacy IT infrastructure while using application
management and virtualization technologies to try and increase resource
utilization.

4.7 SERVICES OF AWS CLOUD

4.7.1 COMPUTE SERVICES

4.7.1.1 Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) is a web service that


provides secure, resizable compute capacity in the cloud. It is designed to make
web-scale computing easier for developers. The Amazon EC2 simple web service
interface allows you to obtain and configure capacity with minimal friction. It
provides you with complete control of your computing resources and lets you run
on Amazon’s proven computing environment. Amazon EC2 reduces the time
required to obtain and boot new server instances (called Amazon EC2 instances)
to minutes, allowing you to quickly scale capacity, both up and down, as your
computing requirements change. Amazon EC2 changes the economics of
computing by allowing you to pay only for capacity that you actually use. Amazon
EC2 provides developers and system administrators the tools to build failure
resilient applications and isolate themselves from common failure scenarios.

Benefits

 Elastic Web-Scale Computing

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.

 Flexible Cloud Hosting Services

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

Amazon EC2 offers a highly reliable environment where replacement instances


can be rapidly and predictably commissioned. The service runs within Amazon’s
proven network infrastructure and data centers. The Amazon EC2 Service Level
Agreement (SLA) commitment is 99.95% availability for each Region.

 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 EC2 provides three type of storage option.

– Amazon EBS

– Amazon S3

20
– Instance Storage

Fig 4.1 EC2 Storage

4.7.1.2 AWS Elastic Beanstalk

AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling


web applications and services developed with Java, .NET, PHP, Node.js, Python,
Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and
Internet Information Services (IIS). You can simply upload your code, and AWS
Elastic Beanstalk automatically handles the deployment, from capacity
provisioning, load balancing, and auto scaling to application health monitoring. At
the same time, you retain full control over the AWS resources powering your
application and can access the underlying resources at any time.

Fig 4.2 Web server environment


4.7.1.3 AWS Lambda

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.

Fig 4.3 Amazon Lambda workflow

4.7.2 STORAGE SERVICES

4.7.2.1 Amazon S3

Amazon Simple Storage Service (Amazon S3) is object storage with a


simple web service interface to store and retrieve any amount of data from
anywhere on the web. It is designed to deliver 99.999999999% durability, and
scales past trillions of objects worldwide. You can use Amazon S3 as primary
storage for cloud-native applications; as a bulk repository, or "data lake," for
analytics; as a target for backup and recovery and disaster recovery; and with
server less computing. It's simple to move large volumes of data into or out of
Amazon S3 with Amazon's cloud data migration options. Once data is stored in
Amazon S3, it can be automatically tiered

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).

Amazon S3 provides the most feature-rich object storage platform available


in the cloud today.

• Simple: Amazon S3 is simple to use with a web-based management console and


mobile app. Amazon S3 also provides full REST APIs and SDKs for easy
integration with third-party technologies.

• Durable: Amazon S3 provides durable infrastructure to store important data and


is designed for durability of 99.999999999% of objects. Your data is redundantly
stored across multiple facilities and multiple devices in each facility.

• 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.

• Available: Amazon S3 Standard is designed for up to 99.99% availability of


objects over a given year and is backed by the Amazon S3 Service Level
Agreement, ensuring that you can rely on it when needed. You can also choose an
AWS Region to optimize for latency, minimize costs, or address regulatory
requirements.

• 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

4.7.3 DATABASE SERVICES

4.7.3.1 Amazon RDS

Amazon Relational Database Service (Amazon RDS) makes it easy to set


up, operate, and scale a relational database in the cloud. It provides cost-efficient
and resizable capacity while managing time-consuming database administration
tasks, freeing you up to focus on your applications and business. Amazon RDS
provides you six familiar database engines to choose from, including Amazon
Aurora, PostgreSQL, MySQL, Maria DB, Oracle, and Microsoft SQL Server.

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.

Fig 4.5 Database Engines

4.7.3.2 Amazon Dynamo DB

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

• Fast, Consistent Performance: Amazon Dynamo DB is designed to deliver


consistent, fast performance at any scale for all applications. Average service-side
latencies are typically single-digit milliseconds. As your data volumes grow and
application performance demands increase, Amazon Dynamo DB uses automatic
partitioning and SSD technologies to meet your throughput requirements and
deliver low latencies at any scale.
• Highly Scalable: When you create a table, simply specify how much request
capacity you require. If your throughput requirements change, simply update your
table's request capacity using the AWS Management Console or the Amazon
Dynamo DB APIs. Amazon Dynamo DB manages all the scaling behind the
scenes, and you are still able to achieve your prior throughput levels while scaling
is underway.

• Fully Managed: Amazon Dynamo DB is a fully managed cloud NoSQL database


service. You simply create a database table, set your throughput, and let the
service handle the rest. You no longer need to worry about database management
tasks such as hardware or software provisioning, setup and configuration,
software patching, operating a reliable, distributed database cluster, or partitioning
data over multiple instances as you scale.

• Event-Driven Programming: Amazon Dynamo DB integrates with AWS Lambda


to provide Triggers that enable you to architect applications that automatically
react to data changes.

• 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.

• Flexible: Amazon Dynamo DB supports both document and key-value data


structures, giving you the flexibility to design the best architecture that is optimal
for your application.

Fig 4.6 Dynamo DB

26
4.7.4 Security, Identity, and Compliance

4.7.4.1 AWS Identity and Access Management

AWS Identity and Access Management (IAM) enables you to securely


control access to AWS services and resources for your users. Using IAM, you can
create and manage AWS users and groups, and use permissions to allow and
deny their access to AWS resources. IAM allows you to do the following:

• 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.

Fig 4.7 Basic IAM flow between AWS Services


4.7.4.2 AWS Key Management Service

AWS Key Management Service (KMS) is a managed service that makes it


easy for you to create and control the encryption keys used to encrypt your data.
This service uses HSMs to protect the security of your keys. AWS Key
Management Service is integrated with several other AWS services to help you
protect the data you store with these services. AWS Key Management Service is
also integrated with AWS Cloud Trail to provide you with logs of all key usage to
help meet your regulatory and compliance needs.

28
CHAPTER 5

RESULTS AND DISCUSSION, PERFORMANCE ANALYSIS

5.1 SYSTEM ARCHITECTURE

Fig.5.1 System Architecture

5.1.1 Estimator

The estimator module is in charge of distinguish these techniques for


nearby execution on the cell phone and remote execution on the cloud with
various information sizes (put away as an example) at the establishment step. At
that point, the module acquires the estimations of execution time, memory use,
CPU use, and vitality utilization for each commented on strategy for these
distinctive information sizes (negligible eye application is utilized to quantify the
vitality utilization and CPU usage). At last, the qualities are conveyed and sent to
the profile module.

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.

5.1.4 Decision Maker

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.

5.1.5 Cloud Manager

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.

5.2 UML DIAGRAMS

The Unified Modeling Language (UML) is a general-purpose modeling


language in the field of software engineering, which is designed to provide a
standard way to visualize the design of a system.
30
5.2.1 Use case Diagram

A use case diagram is a representation of a user interaction with the


system. It is used to gather the requirements of a system as shown in the Figure
5.5 shows user can directly login to the form. After login the form Admin should be
check whether the data should be valid are invalid, if it is invalid the data should be
blocked.

Fig.5.2 Use case Diagram

5.2.2 Class Diagram

The class diagram is static diagram. It represents the static view of an


application. Class diagram is not only used for visualizing as shown in the Figure
5.6 and also for constructing executable code of the software application. The
class diagram shows a collection of classes, Interfaces, Associations,
Collaborations and constraints. The above diagram (Figure 5.6) shows user can
directly login to multiple sources.
Fig.5.3 Class Diagram

5.2.3 Activity Diagram

Activity Diagram is to describe dynamic aspects of the system. Activity


diagram is basically a flow chart represents the flow from activity as shown in the
Figure 5.7can be described as an operation of the system. In the Unified Modelling
Language, activity diagrams are intended to model both computational and
organizational processes (i.e. workflows) Activity diagrams show the overall flow of
control. The above diagram Figure 5.7 shows user can directly login the multiple
sources, if it is invalid to be blocked on unwanted users.

32
Fig.5.4 Activity Diagram

5.2.4 Sequence Diagram

A sequence diagram is an interaction diagram that show how processes


operate with one another and what is their order. It is a construct of a message
sequence chart. A sequence diagram shows object interactions arranged in time
sequence. Sequence diagram are sometimes called event diagram.The above
diagram Figure 5.8 shows user can directly register to multiple sources. The user
maintains the credential authentication, file uploading, and data transmission from
one data to another data. Finally the admin will logout the form.

Fig.5.5 Sequence Diagram


5.3 SYSTEM IMPLEMENTATION

5.3.1 MODULES

5.3.1.1 Data owner


5.3.1.2 Data user
5.3.1.3 Cloud
5.3.1.4 File upload
5.3.1.5 File download
5.3.1.1 Data owner
The Data owner is the responsibility for collecting data such as file uploads
and downloads.
5.3.1.2 Data user
The data user is the user who can get the data from data owner with the
Authentication of cloud.
5.3.1.3 Cloud
Cloud is the responsibility for accessing data from the data owner who are
register for authentication.

5.3.1.4 File upload

In this module we can upload any files. By Authentication can view and upload.

5.3.1.5 File Download


In this module we can download the files where the data can authenticated.

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

The major objectives of software testing are as follows

 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

There are seven principles of testing. They are as follows


1) Testing shows presence of defects
2) Exhaustive testing is impossible
3) Early testing
4) Defect clustering
5) Pesticide paradox
6) Testing is context depending
7) Absence – of – errors fallacy

5.5 TYPES OF TESTING


There are several types of testing. They are as follows
 Unit Testing
 Integration Testing
 System Testing
 Functional Testing
 Acceptance Testing
 Alpha Testing
 Beta Testing
 Security Testing
 Verification and Validation Testing
5.5.1 Unit Testing
 A unit is the smallest testable part of an application like functions,
classes, procedures, interfaces. Unit testing is a method by which individual
units of source code are tested to determine if they are fit for use.
 Unit tests are basically written and executed by software developers to make sure
that code meets its design and requirements and behaves as expected.
 The goal of unit testing is to segregate each part of the program and test
that the individual parts are working correctly.
 This means that for any function or procedure when a set of inputs are
given then it should return the proper values. It should handle the failures
gracefully during the course of execution when any invalid input is given.
5.5.2 Integration Testing
 Integration testing is done by a specific integration tester or test team.
 Integration testing follows two approach known as ‘Top Down’ approach
and ‘Bottom Up’ approach.
 Integration testing tests integration or interfaces between components,
interactions to different parts of the system such as an operating system,
file system and hardware or interfaces between systems.
 Also after integrating two different components together we do the
integration testing. As displayed in the image below when two different
modules ‘Module A’ and ‘Module B’ are integrated then the integration
testing is done.
5.5.3 System Testing
 In system testing the behavior of whole system/product is tested as defined
by the scope of the development project or product.
 It may include tests based on risks and/or requirement specifications,
business process, use cases, or other high level descriptions of system
behavior, interactions with the operating systems, and system resources.
System testing is most often the final test to verify that the system to be
delivered meets the specification and its purpose.
 System testing is carried out by specialist’s testers or independent testers.
 System testing should investigate both functional and non-functional
requirements of the testing.

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.

5.5.6 Alpha Testing

 Alpha testing is performed at the developer's site by the customer in a


closed environment. This is done after the system testing.
 Alpha testing is one of the most common software testing strategies used in
software development. It’s specially used by product development
organizations.
 Alpha testing is typically performed by a group that is independent of the
design team, but still within the company, e.g. in-house software test
engineers, or software QA engineers.
 Alpha testing is final testing before the software is released to the general
public.
5.5.7 Beta Testing

 It is also known as field testing. It takes place at customer’s sites. It sends


the system to users who install it and use it under real-world working
conditions.
 A beta test is the second phase of software testing in which a sampling of
the intended audience tries the product out.
5.5.8 Security Testing
 Security testing is basically a type of software testing that’s done to check
whether the application or the product is secured or not.
 It checks to see if the application is vulnerable to attacks, if anyone hack the
system or login to the application without any authorization. It is a type of
non- functional testing.
 It is a process to determine that an information system protects data and
maintains functionality as intended.
 The security testing is performed to check whether there is any information
leakage in the sense by encrypting the application or using wide range of
software’s and hardware’s and firewall etc.

5.5.9 Verification and Validation Testing

 Verification and Validation (V&V) is the process of checking that a software


system meets specifications and that it fulfills its intended purpose.
 It may also be referred to as software quality control. It is normally the
responsibility of software testers as part of the software development
lifecycle.
 Validation checks that the product design satisfies or fits the intended use
(high-level checking), i.e., the software meets the user requirements. This is
done through dynamic testing and other forms of review.

38
CHAPTER 6

CONCLUSION

6.1 CONCLUSION

 In this paper, a novel secured, optimized framework is proposed to improve the


efficiency of offloading computation from the mobile device to the cloud.
 This framework can offload only the application methods that consume
substantial mobile resources.
 The framework also adds a new security layer, which uses an AES technique
to protect the methods data before transferring to the cloud in the offloading
case.
 In addition, we need to enable parallelization for the execution of the method on
the cloud to potentially reduce execution time and energy consumption.

6.2 FUTURE ENHANCEMENT

 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.

2. Diaa ,S A. , Khalid , M H. ,and Ali , A T ., (2018) , “ AN IMPROVED ECURITY


SCHEMA FOR MOBILE CLOUD COMPUTING USING HYBRID CRYPTOGRAPHIC
ALGORITHMSmart ". Far East Journal of Electronics and Communications, 18(4),
521-546.
3. Diaa , S A. , (2018) , “Improving the Security of Cloud Computing by Building New
HybridCryptography Algorithms ".". International Journal of Electronics and
Information Engineering (IJEIE), 8(1), 40-48.
4. S El-Sayed, H Kader, M Hadhoud, D AbdElminaam , (2014) , “Mobile cloud
computing framework for elastic partitioned/modularized applications mobility”,
International Journal of Electronics and Information Engineering , 1(2) , 53-63

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.

8. Alotaibi, M B. , (2016) "Antecedents of software-as-a-service (SaaS) adoption: a


structural equation model." International Journal of Advanced Computer Research ,
6(25) ,114.Vision 2020: Sustainable Economic Development and Application of
Innovation Management 5795

9. Patell, Navneet S. (2014)"Software as a Service (SaaS): Security issues and


Solutions." International Journal of Computational Engineering Research , (4)6, 2250-
3005.
10. Byung-Gon C, Sunghwan I, Petros M, Mayur N, and Ashwin P,
(2011)"Clonecloud: elastic execution between mobile device and cloud," in
Proceedings of the sixth conference on Computer systems, 301-314

40
11. Eugene E Marinelli, "Hyrax: cloud computing on mobile devices using
MapReduce," DTIC Document,Tech. rep. 2009.

12. Roelof K, Nicholas P, Thilo K, and Henri B,(2010) "Cuckoo: a computation


offloading framework for smartphones," in Proceedings of Conference on Mobile
Computing, Applications, and Services MobiCASE 2010,59-79.

41
APPENDIX

A. SOURCE CODE

Data owner.jsp

<%@ page language="java"


contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01


Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<META Http-Equiv="Cache-Control" Content="no-cache">

<META Http-Equiv="Pragma" Content="no-cache">

<META Http-Equiv="Expires" Content="0">

<meta http-equiv="Content-Type"
content="text/html; charset=ISO-8859-1">

<link rel="stylesheet" href="css/tees.css">

<title>Admin</title>

<script>

function validLogin(){

if (document.admin.uname.value == ""){

alert ( "Please enter Login Name." );

document.admin.uname.focus();

42
returnfalse;

if (document.admin.pass.value == ""){

alert ( "Please enter password." );

document.admin.pass.focus();

returnfalse;

if(document.admin.uname.value == "dataowner" &&


document.admin.pass.value == "dataowner"){

alert ( "Welcome User" );

window.open('ownerview.jsp','_self')

else{

alert("Invalid Login")

returnfalse;

returnfalse;

/* window.history.forward();
function noBack() { window.history.forward(); } */

</SCRIPT>

</head>

<body onload="noBack();"

onpageshow="if (event.persisted) noBack();" onunload="">

<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">

<h2 align="center">Multi Keyword Search Scheme Over


Encrypted Data on Mobile Cloud</h2>

<img src="image/dataowner.jpg" alt="Paris">

<form name="admin" method="post" onsubmit="return


validLogin()" >

<table class="login" style="border:1; width:30%;


cellpadding:3;">

<thead>

<tr>

44
<th colspan="2">Data Owner Login</th>

</tr>

</thead>

<tbody>

<tr>

<td>User Name</td>

<td><input type="text" name="uname" value="" /></td>

</tr>

<tr>

<td>Password</td>

<td><input type="password" name="pass" value="" /></td>

</tr>
</tbody>

</table>

<table>

<tr>

<td><buttonclass="button">Login</button
</tr>

</table>
</form>

</div>
</body>

</html>

Data user.jsp

<%@ page language="java" contentType="text/html;


charset=ISO- 8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<META Http-Equiv="Cache-Control" Content="no-cache">

<META Http-Equiv="Pragma" Content="no-cache">

<META Http-Equiv="Expires" Content="0">

<meta http-equiv="Content-Type" content="text/html;


charset=ISO- 8859-1">

<link rel="stylesheet" href="css/tees.css">

46
<title>User</title>

</head>

<body onload="noBack();"

onpageshow="if (event.persisted) noBack();" onunload="">

<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">

<h2 align="center">Multi Keyword Search Scheme Over Encrypted


Data on Mobile Cloud</h2>

<img src="image/datauser.jpg" alt="Paris">

<form name="admin" method="post" action="LoginServlet">

<table class="login" style="border:1; width:30%;


cellpadding:3;">

<thead>

<tr>

<th colspan="2">Data User Login</th>


</tr>

</thead>

<tbody>

<tr>

<td>User Name</td>

<td><input type="text" name="userName"/></td>

</tr>

<tr>

<td><p>Password</p></td>

<td><input type="password" name="password" /></td>

</tr>

<tr>

<td><p>Activate Key</p></td>

<td><input type="text" name="otp" /></td>

</tr>

</tbody>

</table>

<table><tr>

48
<td><button class="button">Login</button></td></tr>

<tr><span class="pseudolink" onclick="location='registration.jsp'">New


User Click Here For Register</span></tr>

</table>

</form>

</div></body>

</html>

Cloud.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<META Http-Equiv="Cache-Control" Content="no-cache">

<META Http-Equiv="Pragma" Content="no-cache">

<META Http-Equiv="Expires" Content="0">

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<link rel="stylesheet" href="css/tees.css">

<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 == ""){

alert ( "Please enter password." );

document.admin.pass.focus();

returnfalse;

if(document.admin.uname.value == "cloud" && document.admin.pass.value ==


"cloud"){

alert ( "Welcome User" );

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();"

onpageshow="if (event.persisted) noBack();" onunload="">

<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">

<h2 align="center">An Efficient and Secured Framework for Mobile Cloud


Computing</h2>

<img src="image/cloud.jpg" alt="Paris">

<form name="admin" method="post" onsubmit="return validLogin()" >

<div class="row">

<div class="leftcolumn">

<div class="card">

<table class="login" style="border:1; width:30%; cellpadding:3;">

<thead>

<tr>

<th colspan="2">Cloud Login</th>


</tr>

</thead>

<tbody>

<tr>

<td>User Name</td>

<td><input type="text" name="uname" value="" /></td>

</tr>

<tr>

<td>Password</td>

<td><input type="password" name="pass" value="" /></td>

</tr>

</tbody>

</table>

<table>

<tr>

<td><button class="button">Login</button></td>

</tr>

</table>

</div>

</div>

</div>

</form>

</div></body>

52
</html>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<META Http-Equiv="Cache-Control" Content="no-cache">

<META Http-Equiv="Pragma" Content="no-cache">

<META Http-Equiv="Expires" Content="0">

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<link rel="stylesheet" href="css/tees.css">

<title>Admin</title>

</head>

<body>

<div class="sidenav">

<a href="index.jsp">Home</a>

<a href="userauth1.jsp">Registered User Authentication</a>

<a href="viewfile1.jsp">View Uploaded File</a>

<a href="cloud.jsp">Logout</a>

</div><div class="main">

</div>

</body>
</html>

<%@ page language="java" %>

File upload.jsp

<Html>

<HEAD>

<script>

function validateForm() {

alert("File Uploaded Successfully");

returntrue;

</script>

<link rel="stylesheet" href="css/tees.css">

<TITLE>Upload File</TITLE></HEAD>

<BODY>

<div class="sidenav">

<a href="index.jsp">Home</a>

<a href="fileupload.jsp">File Upload</a>

<a href="userauth.jsp">User Authentication</a>

<a href="viewfile.jsp">View Uploaded File</a>

<a href="viewuser1.jsp">View Users Details</a>

<a href="index.jsp">Log Out</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 colspan="2"><p align="center"><B>UPLOAD THE FILE</B></td></tr>

<tr><td><b>File Name</b>

</td>

<td><INPUT NAME="filename" TYPE="text" required></td></tr>

<tr><td><b>Index Term</b>

</td>

<td><INPUT NAME="indexterm" TYPE="text" required></td></tr>

<tr><td><b>Description</b>

</td>

<td><textarea name="description" required></textarea></td></tr>

<tr><td><b>Upload File :</b>

</td>

<td><INPUT NAME="file" TYPE="file" required></td></tr>

<tr><td><INPUT TYPE="submit" VALUE="Upload File"></td></tr>

<tr><td><INPUT TYPE="reset" VALUE="Reset"></td></tr>

</table>

</FORM>

</div>

</BODY>
</HTML>

File download.jsp

<%@page import="java.sql.*"%>

<%@page import="java.io.*"%>

<%@page import="javax.servlet.*"%>

<%

ServletOutputStream output = response.getOutputStream();

String connectionURL = "jdbc:mysql://localhost:3306/efficient";

String Content=new String("");

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();

ResultSet rst= st.executeQuery("select file_data2 from files where id='"+id+"' ");

if(rst.next())

Content=rst.getString("file_data2");

con.close();

}catch(Exception e){

System.out.println("Exception caught"+e.getMessage());

56
}

byte requestBytes[] = Content.getBytes();

ByteArrayInputStream bis = new ByteArrayInputStream(requestBytes);

response.reset();

response.setContentType("application/doc");

response.setHeader("Content-disposition","attachment; filename=" +"file.doc");

byte[] buf = newbyte[1024];

int len;

while ((len = bis.read(buf)) > 0){

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

You might also like