document1-2 final-finalll

67
A FRAMEWORK OF MOBILE VIDEO STREAMING AND SECURE VIDEO SHARING IN THE CLOUD A Project report submitted in partial fulfilment of the requirements for the award of the Degree of Bachelor of Technology in Computer Science & Engineering By C.ANNAPURNA (11011M2211) P.KATHYAYANI REDDY (11011M2202) T.SAI PRIYA (11011M2208) Under the guidance of Mrs.E.Hemalatha Assistant Professor Department of Computer Science and Engineering, Jawaharlal Nehru Technological University College of Engineering, Kukatpally,Hyderabad-500 085. 2014

Upload: kathyayani-padira

Post on 17-Jul-2015

183 views

Category:

Documents


0 download

TRANSCRIPT

A FRAMEWORK OF MOBILE VIDEO STREAMING AND

SECURE VIDEO SHARING IN THE CLOUD

A Project report submitted in partial fulfilment of the requirements for the

award of the Degree of Bachelor of Technology in

Computer Science & Engineering

By

C.ANNAPURNA (11011M2211) P.KATHYAYANI REDDY (11011M2202)

T.SAI PRIYA (11011M2208)

Under the guidance of

Mrs.E.Hemalatha Assistant Professor

Department of Computer Science and Engineering,

Jawaharlal Nehru Technological University College of Engineering,

Kukatpally,Hyderabad-500 085.

2014

ii

Department of Computer Science and Engineering,

Jawaharlal Nehru Technological University College of Engineering,

Kukatpally, Hyderabad-500 085.

DECLARATION BY THE CANDIDATE

We, C.Annapurna (11011M2211), P.Kathyayani Reddy (11011M2202),

T.SaiPriya(11011M2208) hereby declare that the project report entitled “A Framework of

Mobile Video Streaming and Secure Video Sharing in the Cloud”, carried out by us

under the guidance ofE.Hemalatha, is submitted in partial fulfilment of the requirements for

the award of the degree of Bachelor of Technology in Computer Science.

The results embodied in this project report have not been submitted to any other

university or institute for the award of any other degree or diploma.

C. Annapurna (11011M2211) P.Kathyayani Reddy (11011M2202)

T.Sai Priya(11011M2208)

iii

Department of Computer Science and Engineering, Jawaharlal Nehru Technological University College of Engineering,

Kukatpally, Hyderabad-500 085.

CERTIFICATE BY THE SUPERVISOR

This is to certify that the project report entitled “A Framework of Mobile Video Streaming

and Secure Video Sharing in the Cloud”, being submitted by C.Annapurna

(11011M2211), P.Kathyayani Reddy (11011M2202), T.SaiPriya (11011M2208)in partial

fulfillment of the requirements for the award of the degree of Bachelor of Technology in

Computer Science & Engineering, is a record of bonafide work carried out by them. The

results embodied in this project report have not been submitted to any other University or

Institute for the award of any other degree or diploma.

Mrs.E.Hemalatha,

Assistant Professor, Department of Computer Science &Engineering,

JNTUH College of Engineering Hyderabad.

Date:

iv

Department of Computer Science and Engineering,

Jawaharlal Nehru Technological University College of Engineering,

Kukatpally, Hyderabad-500 085.

CERTIFICATE BY THE HEAD OF THE DEPARTMENT

This is to certify that the project report entitled “A Framework of Mobile Video Streaming

and Secure Video Sharing in the Cloud”, being submitted by C. Annapurna

(10011M2211) ,P. Kathyayani Reddy (10011M2202), T.Saipriya (10011M2208)in partial

fulfillment of the requirements for the award of the degree of Bachelor of Technology in

Computer Science & Engineering, is a record of bonafide work carried out by them.

Dr. V. Kamakshi Prasad,

Professor & Head of the Department, Department of Computer Science & Engineering,

JNTUH College of Engineering Hyderabad.

Date:

v

Acknowledgements

We wish to extend our sincere thanks to our guide Mrs.E.Hemalatha,

Assistant Professor, Department of Computer Science and Engineering for being a

driving force all through the way. The project would not be so smooth and so

interesting without his encouragement.

We wish to express our gratitude to Dr. V. Kamakshi Prasad,Professor&

Head, Department of Computer Science and Engineering, for providing necessary

computing facilities. We are indebted to the Department of Computer Science &

Engineering, JNTUH for providing us with all the required facility to carry our work

in a congenial environment.

We extend our gratitude to the CSE Department staff for providing the

needful time to work whenever requested.

Above all, we are grateful to our parents and friends for their patience and

continuous supply of inspirations and suggestions for our ever-growing performance.

Last but not the least; we thank the Almighty for making us a part of the world.

C. Annapurna (11011M2211) P.Kathyayani Reddy (11011M2202)

T.Sai Priya(11011M2208)

vi

Abstract

Over the past decade, the number of people using mobile devices is increasing rapidly. This

dependency is resulting in a shift of large number of applications and services to the mobile

platform. In particular, video streaming services over mobile networks have become

prevalent over the past few years. Mobile applications provide convenient, fast and one-touch

accessibility to the users. A recent study shows that 85% of the consumers favor apps over

mobile websites.

Cloud computing promises lower costs, rapid scaling, easier maintenance, and service

availability anywhere and anytime. A model of private cloud provides for greater control and

privacy with accessibility only to specified users or an organization.

But, one of the major issue and a key challenge in the cloud computing platform is regarding

how to ensure and build confidence that the cloud can handle user data securely. On the other

hand, the mobile platform deals with the issue of scalability of the content of mobile

applications over a wide spectrum of mobile devices.

The proposal is to develop a mobile video streaming framework where only an authorized

administrator manages uploading, modifying and deleting the videos that are securely stored

in the private cloud (VC) using RSA algorithm. It utilizes the cloud computing technology to

construct private agents (sub VC) for each mobile user to try and offer video streaming

functionality. It is shown that the private agents in the clouds can effectively provide for the

video streaming and perform video sharing based on the network analysis over mobile

platforms.

vii

List of Figures

Description Page

FIG5.2.1: FLOW CHART DIAGRAM FOR THE SYSTEM ........................................................................................................19

FIG5.3.1: USE CASE DIAGRAM FOR THE SYSTEM ..............................................................................................................21

FIG5.3.2: USE CASE DIAGRAM FOR THE SYSTEM ............................................................................................................22

FIG5.4.1: CLASS DIAGRAM FOR THE SYSTEM....................................................................................................................24

FIG5.5.1: SEQUENCE DIAGRAM FOR THE SYSTEM.............................................................................................................26

FIG5.6.1: ACTIVITY DIAGRAM FOR THE SYSTEM...............................................................................................................28

FIG8.1: ADMIN LOGIN PAGE ..............................................................................................................................................46

FIG8.2: ADMIN WELCOME PAGE........................................................................................................................................47

FIG8.3: ADMIN VIEW ALL VIDEOS PAGE ............................................................................................................................47

FIG8.4: ADMIN VIEW USER DETAILS PAGE ........................................................................................................................48

FIG8.5: ADMIN VIEW COMMENTS PAGE ............................................................................................................................48

FIG8.6: ADMIN/DATA OWNER FILE WINDOW ....................................................................................................................49

FIG8.7: CLOUD SERVER WINDOW ......................................................................................................................................50

FIG8.8: CENTRAL CONTROLLER VIDEO FILE DATA WINDOW ..........................................................................................51

FIG8.9: CENTRAL CONTROLLER VIEW MODIFIED FILES WINDOW .................................................................................51

FIG8.10: MODIFIED VIDEO FILE WINDOW...........................................................................................................................52

FIG8.11: MOBILE USER LOGIN TO APP.................................................................................................................................53

FIG8.12: MOBILE USER REGISTER TO APP...........................................................................................................................54

FIG8.13: MOBILE USER PLAY VIDEO....................................................................................................................................55

viii

List of Tables

Description Page

TABLE6.7.1: ADMIN ..........................................................................................................................................................29

TABLE6.7.2: LOGIN ............................................................................................................................................................29

TABLE6.7.3: DATAOWNER ................................................................................................................................................29

TABLE6.7.4: CSP FILES .....................................................................................................................................................30

TABLE6.7.5: VIDEOS ..........................................................................................................................................................30

TABLE6.7.6: COMMENTS ...................................................................................................................................................30

TABLE6.7.7: TPA FILES .....................................................................................................................................................30

TABLE6.7.8: MODIFIEDFILES............................................................................................................................................30

ix

Contents

Abstract

List of Figures

List of Tables

1. Introduction 1

1.1 An overview of mobile video streaming 1

1.2 An overview of secure video sharing 2

1.3 An overview of cloud computing 3

1.4 An overview of mobile applications 6

1.5 Problem Definition 7

2. Literature Survey 9

2.1 Existing System 9

2.2 Implemented System 9

3. Requirements Analysis 11

3.1 Requirements Specification 11

3.2 Minimum Software Requirements 12

3.3 Minimum Hardware Requirements 13

4. Software Requirements Specification 14

4.1 Functional Requirements 15

4.2 Non-Functional Requirements 15

5. Software Design 17

5.1 Introduction 17

5.2 Flow Chart Diagram 17

5.3 Use Case Diagram 20

5.4 Class Diagram 23

5.5 Sequence Diagram 25

5.6 Activity Diagram 27

x

5.7 Data Dictionary 29

6. Implementation 31

6.1 Technologies Used 31

6.2 Implementation Modules 36

7. Testing 41

8. Output Screens 46

9. Conclusion 56

9.1 Summary 56

9.2 Scope for future extension 56

Bibliography 57

Page 1 of 67

1. Introduction

This section provides a brief overview about cloud computing and the various services

offered by cloud storage.

1.1. An Overview of Mobile Video Streaming

Streaming media is multimedia that is constantly received by and presented to an end-

user while being delivered by a provider. The verb "to stream" refers to the process of

delivering media in this manner; the term refers to the delivery method of the medium rather

than the medium itself.

A client media player can begin playing the data (such as a movie) before the entire file has

been transmitted. Distinguishing delivery method from the media distributed applies

specifically to telecommunications networks, as most of the delivery systems are either

inherently streaming (e.g., radio, television) or inherently non-streaming (e.g., books, video

cassettes, audio CDs).The term "streaming" was first used in the early 1990s as a better

description for video on demand on IP networks. A broadband speed of 2.5 Mbit/s or more is

recommended for streaming movies. The audio stream is compressed using an audio codec

such as Mp3, Vorbis or AAC. The video stream is compressed using a video codec such

as H.264 or VP8. Encoded audio and video streams are assembled in a container bit stream

such as MP4, FLV, WebM, ASF or ISMA.MPEG-4 is a method of defining compression of

audio and visual (AV) digital data. It was introduced in late 1998 and designated

a standard for a group of audio and video coding formats and related technology agreed upon

by the Moving Picture Experts Group (MPEG).

Mobile video comes in several forms including 3GPP, MPEG-4, RTSP .The Android

platform provides libraries you can use to stream media files, such as remote videos,

presenting them for playback in your apps.

Page 2 of 67

1.2. An Overview of Secure Video Sharing

Video Share is an IP Multimedia System (IMS) enabled service for mobile networks

that allows users engaged in a circuit switch voice call to add a unidirectio nal video

streaming session over the packet network during the voice call. Any of the parties on the

voice call can initiate a video streaming session. There can be multiple video streaming

sessions during a voice call, and each of these streaming sessions can be initiated by any of

the parties on the voice call. The video source can either be the camera on the phone or a pre-

recorded video clip.

RSA is an algorithm used by modern computers to encrypt and decrypt messages. It is an

asymmetric cryptographic algorithm. Asymmetric means that there are two different keys.

This is also called public key cryptography, because one of them can be given to everyone.

The other key must be kept private. It is based on the fact that finding the factors of an

integer is hard (the factoring problem). RSA stands for Ron Rivest, AdiShamir and Leonard

Adleman, who first publicly described it in 1978. A user of RSA creates and then publishes

the product of two large prime numbers, along with an auxiliary value, as their public key.

He prime factors must be kept secret. Anyone can use the public key to encrypt a message,

but with currently published methods, if the public key is large enough, only someone with

knowledge of the prime factors can feasibly decode the message.

DSA is faster for signature generation but slower for validation, slower when encrypting but

faster when decrypting and security can be considered equivalent compared to an RSA key of

equal key length.

The security of the RSA algorithm is based on the fact that factorization of large integers is

known to be "difficult", whereas DSA security is based on the discrete logarithm problem.

Today the fastest known algorithm for factoring large integers is the General Number Field

Sieve, also the fastest algorithm to solve the discrete logarithm problem in finite fields

modulo a large prime p as specified for DSA. Now, if the security can be deemed as equal,

there would be a favour of the algorithm that is faster. It’s seen that DSA performs faster in

generating a signature but much slower when verifying a signature of the same key length.

Page 3 of 67

Verification is generally what you want to be faster if you deal e.g. with a signed document.

The signature is generated once - so it's fine if this takes a bit longer - but the document

signature may be verified much more often by end users.

Both do support some form of encryption method, RSA out of the box and DSA using an El

Gamal. DSA is generally faster in decryption but slower for encryption, with RSA it's the

other way round. Again you want decryption to be faster here because o ne encrypted

document might be decrypted many times. In commercial terms, RSA is clearly the winner,

commercial RSA certificates are much more widely deployed than DSA certificates.

1.3. An Overview of Cloud Computing

Cloud computing is a general term for anything that involves delivering hosted

services over the internet. These services are broadly divided into three categories:

Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service

(SaaS). The name cloud computing was inspired by the cloud symbol that is often used to

represent the internet in flowcharts and diagrams.

A cloud service has three distinct characteristics that differentiate it from traditional hosting.

It is sold on demand, typically by the minute or the hour; it is elastic, which means, a user

can have as much or as little of a service as they want at any given time; and the service is

fully managed by the provider (the consumer needs no more than a personal computer and

internet access). Significant innovations in virtualization and distributed computing, as well

as improved access to high-speed internet and affordable costs, have accelerated interest in

cloud computing.

Infrastructure-as-a-Service like Amazon Web Services provides virtual server (instance API)

to start, stop, access and configure their virtual servers and storage. In the enterprise, cloud

computing allows a company to pay for only as much capacity as is needed, and bring more

online as soon as required. Because this pay-per-use model resembles the way electricity, fuel

and water are consumed; it's sometimes referred to as utility computing.

Page 4 of 67

Platform-as-a-service in the cloud is defined as a set of software and product development

tools hosted on the provider's infrastructure. Developers create applications on the provider's

platform over the internet. PaaS providers may use APIs, website portals or gateway software

installed on the customer's computer. Force.com, (an outgrowth of Salesforce.com) and

Google Apps are examples of PaaS. Developers need to know that currently, there are not

standards for interoperability or data portability in the cloud. Some providers will not allow

software created by their customers to be moved off the provider's platform.

In the software-as-a-service cloud model, the vendor supplies the hardware infrastructure, the

software product and interacts with the user through a front-end portal. SaaS is a very broad

market. Services can be anything from Web-based email to inventory control and database

processing. Because the service provider hosts both the application and the data, the end user

is free to use the service from anywhere.

A cloud can be private or public. A public cloud sells services to anyone on the internet.

(Currently, Amazon Web Services is the largest public cloud provider.) A private cloud is a

proprietary network or a data center that supplies hosted services to a limited number of

people. When a service provider uses public cloud resources to create their private cloud, the

result is called a virtual private cloud. Private or public, the goal of cloud computing is to

provide easy, scalable access to computing resources and IT services.

Private Cloud

A private cloud a particular model of cloud computing that involves a distinct and

secure cloud based environment in which only the specified client can operate. As with other

cloud models, private clouds will provide computing power as a service within a virtualized

environment using an underlying pool of physical computing resource. However, under the

private cloud model, the cloud (the pool of resource) is only accessible by a single

organization providing that organization with greater control and privacy.

Private cloud services draw their resource from a distinct pool of physical computers but

Page 5 of 67

these may be hosted internally or externally and may be accessed across private leased lines

or secure encrypted connections via public networks.The private cloud model is closer to the

more traditional model of individual local access networks (LANs) used in the past by

enterprise but with the added advantages of virtualization.

The features and benefits of private clouds therefore are:

• Higher security and privacy: Public clouds services can implement a certain level of

security but private clouds - using techniques such as distinct pools of resources with

access restricted to connections made from behind one organization’s firewall, dedicated

leased lines and/or on-site internal hosting - can ensure that operations are kept out of the

reach of prying eyes.

• More control: As a private cloud is only accessible by a single organization, that

organization will have the ability to configure and manage it in line with their needs to

achieve a tailored network solution. However, this level of control removes some of the

economies of scale generated in public clouds by having centralized management of the

hardware.

• Cost and energy efficiency: Implementing a private cloud model can improve the

allocation of resources within an organization by ensuring that the availability of

resources to individual departments/business functions can directly and flexibly respond

to their demand. Therefore, although they are not as cost effective as a public cloud

services due to smaller economies of scale and increased management costs, they do

make more efficient use of the computing resource than traditional LANs as they

minimize the investment into unused capacity. Not only does this provide a cost saving

but it can reduce an organization’s carbon footprint too.

• Improved reliability: Even where resources (servers, networks etc.) are hosted

internally, the creation of virtualized operating environments means that the network is

more resilient to individual failures across the physical infrastructure. Virtual partitions

can, for example, pull their resource from the remaining unaffected servers. In addition,

where the cloud is hostedwith a third party, the organization can still benefit from the

physical security afforded to infrastructure hosted within data centers.

Page 6 of 67

1.4. An Overview of Mobile Applications

A mobile app is a computer program designed to run on smartphones, tablet

computers and other mobile devices. Apps are usually available through application

distribution platforms, which began appearing in 2008 and are typically operated by the

owner of the mobile operating system, such as the Apple App Store, Google Play, Windows

Phone Store, and BlackBerry App World. Some apps are free, while others must be

bought.Usually, when people hear “mobile app” they assume you mean native app. This is a

program that runs on a handheld device (phone, tablet, e-reader, iPod Touch, etc.) which has

a “smart” operating system which supports standalone software and can connect to the

internet via wireless fidelity or a wireless carrier network. Usually people download native

mobile apps from app stores such as the Apple app store or the Android Market.

A native app can only be “native” to one type of mobile operating system: iOS, Android,

BlackBerry, Symbian, Windows Phone, Web OS, etc. This is why an iPhone app works only

on iOS devices — so if you want to also make your app experience available to Android or

Blackberry users, you’ll need to develop and maintain a separate piece of software. That gets

complicated and expensive.

In contrast, a mobile web app is software that uses technologies such as Java Script

or HTML5 to provide interaction, navigation, or customization capabilities. These programs

run within a mobile device’s web browser. This means that they’re delivered wholly on the

fly, as needed, via the internet; they are not separate programs that get stored on the user’s

mobile device .Mobile web apps can be designed to run reasonably well via almost any smart

mobile web browser — from the full- featured browsers such as the ones available for

iPhones and Android phones, to the mid-range browsers such as you see on many

BlackBerry phones. “Feature phone” is the telecom industry term for non-

smartphones. According to ComScore ,73% of the mobile handsets in use in the US are

feature phones. And most of these phones can connect to the internet and browse the web.

Page 7 of 67

Developing apps for mobile devices requires considering the constraints and features of these

devices. Mobile devices run on battery and have less powerful processors than personal

computers and also have more features such as location detection and cameras. Developers

also have to consider a wide array of screen sizes, hardware specifications and configurations

because of intense competition in mobile software and changes within each of the platforms.

Mobile application development requires use of specialized integrated development

environments. Mobile apps are first tested within the development environment using

emulators and later subjected to field testing. Emulators provide an inexpensive way to test

applications on mobile phones to which developers may not have physical access.

As part of the development process, Mobile User Interface (UI) Design is also an essential in

the creation of mobile apps. Mobile UI considers constraints & contexts, screen, input and

mobility as outlines for design. The user is often the focus of interaction with their device,

and the interface entails components of both hardware and software. User input allows for

the users to manipulate a system, and device's output allows the system to indicate the effects

of the users' manipulation. Mobile UI design constraints include limited attention and form

factors, such as a mobile device's screen size for a user's hand(s). Mobile UI contexts signal

cues from user activity, such as location and scheduling that can be shown from user

interactions within a mobile application. Overall, mobile UI design's goal is primarily for an

understandable, user- friendly interface. The UI of mobile apps should: consider users' limited

attention, minimize keystrokes, and be task-oriented with a minimum set of functions.

1.5. Problem Definition

The main benefit of developing a mobile app over a mobile friendly website is that by

developing a mobile app in native code, you can embrace the native functionality or the

hardware of the phone. For example, most smartphones have built in accelerometers,

cameras, GPS and gyroscopes. While a mobile friendly website will always require an

Page 8 of 67

internet connection with an app, this is not always the case. Many apps can store data locally

on the phone, and you can continue interacting with them even when no connections are

available. Android is about to become the most widely used OS on mobile phones and hence

developing android based native apps is on a raise, but with Android comes the storage

constraints for the application contents that very few take into account.

Cloud Computing is an emerging paradigm which is gaining popularity due to its ability to

reduce the costs associated with computing. Cloud computing has key benefits such as

scalability, instant provisioning, virtualized resources and ability to expand the server base

quickly. Hence the convergence of mobile app with cloud computing termed as the cloud-

mobile app is a solution that helps us deal with the major issue: storage on the device, which

can be reduced considerably as much of the computing and processing is now shifted to the

cloud.

In today’s era, it is most interesting and enticing technology which is offering the services to

its users on demand over the internet.Once the client host videos to the cloud there should be

some guarantee that access to that video data will only be limited to the authorized users who

can upload,modify and delete the video data. Inappropriate access to customer sensitive data

by cloud personnel is another risk that can pose potential threat to cloud data. Private cloud

computing, by definition is a single-tenant environment where the hardware, storage and

network are dedicated to a single client or company .Private cloud computing,thus resolves

the issue of privacy and control along with provision for customizability to a greater extent

than a public cloud. Since Cloud Computing stores the data and disseminated resources in the

open environment, security has become the main obstacle which is hampering the

deployment of Cloud environments. Even though the Cloud Computing is promising and

efficient, there are many challenges for data security as there is no vicinity of the data for the

cloud user. To ensure the security of data, we proposed a method by implementing RSA

algorithm which provides security, low complexity and no-alteration video encryption.

Page 9 of 67

2. Literature Survey

2.1 Existing System

The Android operating system was first developed by Google in 2008 in response to

Apple’s iOS, which dominated the smartphone market at the time. Since 2008, the Android

OS has proven itself a worthy competitor and officially took over as the market leader in the

fourth quarter of 2010. The number of new Android devices being activated each month

continues to climb at a staggering rate.While the number of android app downloads increased

by 1.5 billion from 2013 to 2014, most of these apps are based on a server back end and

hence have a few constraints along the dimensions of flexibility, cost and processing-

overheads.

Cloud computing is internet-based computing in which large groups of remote servers are

networked to allow the centralized data storage, and online access to computer services or

resources .Cloud computing promises lower costs, rapid scaling, easier maintenance, and

service availability anywhere, anytime. But a key challenge is how to ensure and build

confidence that the cloud can handle user data securely. A recent Microsoft survey found that

“58 percent of the public and 86 percent of business leaders are excited about the possibilities

of cloud computing. But more than 90 percent of them are worried about security,

availability, and privacy of their data as it rests in the cloud.”

2.2 Implemented System

The aim of the project is to develop a framework to achieve streaming of videos that are

shared by central administrator/data owners on a scalable android mobile platform. The

facility to upload , modify , delete and verify the status of the modified videos in the private

cloud ,with an enhancement of encrypting the videos to be stored in the cloud using the RSA

Page 10 of 67

algorithm for security. The proposal is to develop a mobile video streaming and secure video

sharing framework. Here only an authorized administrator manages uploading, modifying

and deleting the videos through a web based interface. These videos are stored in a private

cloud (VC) containing a Video Base(VB) which helps in caching the most popular videos to

be serviced to the clients on demand. It utilizes the cloud computing technology to construct

private agents (sub VC) for each mobile user to try and offer video streaming functionality. It

is shown that the private agents in the clouds can effectively provide for the video streaming

and perform video sharing based on the network analysis over mobile platforms .The cloud

platform also maintains a Central Controller(CC) that monitors the file transactions between

the remote mobile users and the csp(cloud service provider) along with maintaining the

integrity of the data of the uploaded multimedia files.

The mobile application for the clients to stream the videos is developed on the android

platform which is fast moving towards being the top Operating System in the world enjoying

a gargantuan share of 78.4% of the market in 2013. This mobile application is scalable over a

large set of devices from mobile phones to laptops and tablets increasing the client base for

the services rendered by it.

The security concern related to the cloud platform is handled by using RSA algorithm which

provides high security, low complexity and no-alteration encryption of the videos. Also,

utilization of a private cloud and a centralized administration system ensures monitoring of

the transactions and improves control over the data while reducing the high cost and

processing overhead of maintaining large-scale servers.

Mobile users can install the application and register to view all the available videos on the go

assuming good internet access is available. Cloud service provider can employ this system so

as to provide data security and assurance to the various file operations .An additional

functionality, where the administrator can view all the details of the users, videos, etc related

to the application on the web is provided. Hence the system is best suited to use by a private

organization like a college and its users aiming for greater control and security.

Page 11 of 67

3. Requirements Analysis

3.1 Requirements specification

The system after careful analysis has been identified to be presented with the following

modules:

• SystemModel (Cloud computing)

• Data Owner

• Cloud Server Operations

• Central Controller

• Mobile User

System Model(Cloud computing)

It includes preparation of Cloud computing which is internet-based computing in which large

groups of remote servers are networked to allow the centralized data storage, and online

access to computer services or resources. The cloud components like the cloud platform,

cloud storage, cloud infrastructure and cloud service communicate with each other to deliver

the service to the customers/ clients who have requested for it over the internet.

Cloud operations

Upload Operation, it enables the authorized administrator to upload some data( videos in this

context) into the cloud, this operation is termed as data upload. In other words, the data must

be encrypted and uploaded into the cloud storage and must be made available only to the

authorized group of users.

Delete Operation, after being stored in the cloud, certain data may need to be deleted. The

delete operation being considered is a general one, where the data that is no longer needed

will be removed from the cloud storage. Here only the administrator has the authority to

delete any data from the cloud.

Page 12 of 67

ModifyOperation, here the administrator is given the authority to modify details pertaining to

the data that has been stored in the cloud.

Data Owner (Administrator)

The data owner is responsible for all the multimedia file operations: uploading, deleting,

verifying and modifying. It is the centralized administrator which provides for the cloud

services to the remote mobile users. The encryption of the multimedia file using the RSA

algorithm along with their respective public and private key for each file are generated on

uploading in the data owner.

Central Controller

The Central Controller monitors the data owners file by verifying the data owner’s file and

stores the metadata of the multimedia file in its database .Also, the central controller

manages the tpa(third party administrator) table in the database to compare with the

csp(cloud service provider) files to check and assure for data integrity. The transactions

between the cloud service provider and the remote mobile user are monitored by the Central

Controller.

3.2 Minimum Software Requirements

The following are a list of minimum software requirements needed for deployment of the

above proposed system:

• LINUX and WINDOWS OS (XP / 2000 / 2003 / 2008 Server / 7)

• Android ADT bundle for windows 32/64 bit

• Tomcat 6.0 and above.

Page 13 of 67

• Eclipse IDE

• MS Access 2007/2010 or MySQL

3.3 Minimum Hardware Requirements

The following are a detailed list of minimum hardware requirements necessary for

deploying the system in desired environment:

• PIV 3.5 GHz Processor and Above

• RAM 1 GB and Above

• HDD 5 GB Hard Disk Space and Above

Page 14 of 67

4. Software Requirements Specification

This Chapter describes about the requirements. It specifies the hardware and software

requirements that are required in order to run the application properly. The Software

Requirement Specification (SRS) is explained in detail, which includes overview of this

dissertation as well as the functional and non-functional requirement of this dissertation.

SRS for System

Functional Control the file access at cloud server, Data Integrity Proof at

Central Controller, Multi Media File Management, File

Encryption.

Non- Functional Cloud server never monitors and controls the Central

Controller, Remote mobile users do not upload the files.

External interface LAN , Routers

Performance Maintaining the Multimedia File Access between the remote

mobile user and the cloud server.

Attributes Multimedia File Management ,Video Streaming Services,

Maintain Cloud Servers ,Multimedia File Virtualization

Table: 4.1 Summaries of SRS

Page 15 of 67

4.1 Functional Requirements

Functional Requirement defines a function of a software system and how the system must

behave when presented with specific inputs or conditions. These may include calculations,

data manipulation and processing and other specific functionality. In this system following

are the functional requirements:

• The Owner will upload the Multimedia Files To the cloud servers.

• The Cloud server has to authorize the valid remote mobile users. The Central

Controller has to maintain the data integrity and has to monitor the Cloud Server

Multi Media File Transaction.

• The Remote mobile user has to register in the mobile application to get access to the

Multimedia files and use the Video Streaming Services through Virtualization.

• Central Controller - has to maintain the Video Streaming Multimedia File transactions

and provide for the auditing from the data owner.

• The Attributes are Multimedia File Management, Central Controller, cloud server,

owner and Remote mobile user.

4.2 Non Functional Requirements

Requirement specification plays an important part in the analysis of a system. Only

when the requirement specifications are properly given, it is possible to design a system,

which will fit into required environment. It rests largely in the part of the users of the

existing system to give the requirement specifications because they are the people who

finally use the system. This is because the requirements have to be known during the initial

stages so that the system can be designed according to those requirements. It is very difficult

to change the system once it has been designed and on the other hand designing a system,

Page 16 of 67

which does not cater to the requirements of the user, is of no use.

The requirement specification for any system can be broadly stated as given below:

• The system should be able to interface with the existing system

• The system should be accurate

• The system should be better than the existing system

• The system throughput must be maximum at 95% cases during the lifetime

• The response time for any user query must be less than or equal to the standard

specification standard of response time

The existing system is completely dependent on the user to perform all the duties.

Page 17 of 67

5. Software Design

5.1. Introduction

Software design sits at the technical kernel of the software engineering process and is

applied regardless of the development paradigm and area of application. Design is the first

step in the development phase for any engineered product or system. The designer ’s goal is

to produce a model or representation of an entity that will later be built. Beginning, once

system requirement have been specified and analyzed, system design is the first of the three

technical activities -design, code and test that is required to build and verify software.

The importance can be stated with a single word “Quality”. Design is the place where

quality is fostered in software development. Design provides us with representations of

software that can assess for quality. Design is the only way that one can accurately translate a

customer ’s view into a finished software product or system. Software design serves as a

foundation for all the software engineering steps that follow. Without a strong design there is

a risk building an unstable system –one that will be difficult to test, one whose quality cannot

be assessed until the last stage.

During design, progressive refinement of data structure, program structure, and

procedural details are developed reviewed and documented. System design can be viewed

from either technical or project management perspective. From the technical point of view,

design is comprised of four activities –architectural design, data structure design, interface

design and procedural design.

5.2. Flow Chart Diagram

A flow chart diagram is graphical tool used to describe and analyze movement of

data through a system. These are the central tool and the basis from which the other

components are developed. The transformation of data from input to output, through

processed, may be described logically and independently of physical components associated

Page 18 of 67

with the system. These are known as the logical flow chart diagrams. The physical data flow

diagrams show the actual implements and movement of data between people, departments

and workstations. A full description of a system actually consists of a set of flow chart

diagrams. Using two familiar notations Yourdon, Gane and Sarson notation develops the

flow chart diagrams. Each component in a FCD is labelled with a descriptive name. Process

is further identified with a number that will be used for identification purpose. The

development of FCD’S is done in several levels. Each process in lower level diagrams can

be broken down into a more detailed FCD in the next level. The lop-level diagram is often

called context diagram. It consists a single process bit, which plays vital role in studying the

current system. The process in the context level diagram is exploded into other process at the

first level FCD.

The idea behind the explosion of a process into more process is that understanding at

one level of detail is exploded into greater detail at the next level. This is done until further

explosion is necessary and an adequate amount of detail is described for analyst to

understand the process.

Larry Constantine first developed the FCD as a way of expressing system

requirements in a graphical from, this lead to the modular design.

A FCD is also known as a “bubble Chart”has the purpose of clarifying system

requirements and identifying major transformations that will become programs in system

design. So it is the starting point of the design to the lowest level of detail. A FCD consists

of a series of bubbles joined by data flows in the system.

FCD Symbols

In the FCD, there are four symbols

• A square defines a source(originator) or destination of system data

• An arrow identifies data flow. It is the pipeline through which the information flows

• A circle or a bubble represents a process that transforms incoming data flow into

outgoing data flows.

• An open rectangle is a data store, data at rest or a temporary repository of data.

Page 19 of 67

Flow Chart Diagram

Fig 5.2.1: FCD for the system

Page 20 of 67

5.3. Use Case Diagram

The purpose of use case diagram is to capture the dynamic aspect of a system. But

this definition is too generic to describe the purpose.

Because other four diagrams (activity, sequence, collaboration and Statechart) are also

having the same purpose. So we will look into some specific purpose which will distinguish

it from other four diagrams.

Use case diagrams are used to gather the requirements of a system including internal and

external influences. These requirements are mostly design requirements. So when a system is

analysed to gather its functionalities use cases are prepared and actors are identified.

Now when the initial task is complete use case diagrams are modelled to present the outside

view.

So in brief, the purposes of use case diagrams can be as follows:

Used to gather requirements of a system.

Used to get an outside view of a system.

Identify external and internal factors influencing the system.

Show the interacting among the requirements are actors.

Page 21 of 67

Use Case Diagram

Fig 5.3.1: Use Case Diagram for the System

Page 22 of 67

Fig. 5.3.2: Use Case Diagram for the System

Page 23 of 67

5.4. Class Diagram

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

Class diagram is not only used for visualizing, describing and documenting different aspects

of a system but also for constructing executable code of the software application.

The class diagram describes the attributes and operations of a class and also the constraints

imposed on the system. The class diagrams are widely used in the modelling of object

oriented systems because they are the only UML diagrams which can be mapped directly

with object oriented languages.

The class diagram shows a collection of classes, interfaces, associations, collaborations and

constraints. It is also known as a structural diagram.

The purpose of the class diagram is to model the static view of an application. The class

diagrams are the only diagrams which can be directly mapped with object oriented languages

and thus widely used at the time of construction.

The UML diagrams like activity diagram, sequence diagram can only give the sequence flow

of the application but class diagram is a bit different. So it is the most popular UML diagram

in the coder community.

So the purpose of the class diagram can be summarized as:

Analysis and design of the static view of an application.

Describe responsibilities of a system.

Base for component and deployment diagrams.

Forward and reverse engineering.

Page 24 of 67

Class Diagram

Fig. 5.4.1: Class Diagram for the System

Page 25 of 67

5.5. Sequence Diagram

From the name Interaction it is clear that the diagram is used to describe some type of

interactions among the different elements in the model. So this interaction is a part of

dynamic behaviour of the system.

This interactive behaviour is represented in UML by two diagrams known as Sequence

diagramand Collaboration diagram. The basic purposes of both the diagrams are similar.

Sequence diagram emphasizes on time sequence of messages and collaboration diagram

emphasizes on the structural organization of the objects that send and receive messages.

The purposes of interaction diagrams are to visualize the interactive behaviour of the system.

Now visualizing interaction is a difficult task. So the solution is to use different types of

models to capture the different aspects of the interaction.

That is why sequence and collaboration diagrams are used to capture dynamic nature but

from a different angle.

So the purposes of interaction diagram can be describes as:

To capture dynamic behaviour of a system.

To describe the message flow in the system.

To describe structural organization of the objects.

To describe interaction among objects.

Page 26 of 67

Sequence Diagram:

Fig. 5.5.1: Sequence Diagram for the system

Page 27 of 67

5.6. Activity Diagram

Activity diagram is another important diagram in UML to describe dynamic aspects

of the system.

Activity diagram is basically a flow chart to represent the flow form one activity to another

activity. The activity can be described as an operation of the system.

So the control flow is drawn from one operation to another. This flow can be sequential,

branched or concurrent. Activity diagrams deals with all type of flow control by using

different elements like fork, join etc.

The basic purposes of activity diagrams are similar to other four diagrams. It captures the

dynamic behaviour of the system. Other four diagrams are used to show the message flow

from one object to another but activity diagram is used to show message flow from one

activity to another.

Activity is a particular operation of the system. Activity diagrams are not only used for

visualizing dynamic nature of a system but they are also used to construct the executable

system by using forward and reverse engineering techniques. The only missing thing in

activity diagram is the message part.

It does not show any message flow from one activity to another. Activity diagram is some

time considered as the flow chart. Although the diagrams looks like a flow chart but it is not.

It shows different flow like parallel, branched, concurrent and single.

So the purposes can be described as:

Draw the activity flow of a system.

Describe the sequence from one activity to another.

Describe the parallel, branched and concurrent flow of the system.

Page 28 of 67

Activity Diagram

Fig. 5.6.1: Activity Diagram for the System

Page 29 of 67

5.7. Data Dictionary

After carefully understanding the requirements of the client the entire data storage

requirements are divided into tables. The below tables are normalized to avoid any anomalies

during the course of data entry.

Table 5.7.1: Admin

Field Type

Aname nvarchar(50)

Password nvarchar(50)

Table 5.7.2: Login

Field Type

Username nvarchar(50)

Password nvarchar(50)

Email nvarchar(50)

Table 5.7.3: DataOwner

Field Type

FileName nvarchar(50)

OwnerName nvarchar(50)

UploadDate date(dd/mm/yyyy)

Pkey nvarchar(10,0)

Skey int

Page 30 of 67

Table 5.7.4: cspfiles

Field Type

FileId int

FileName nvarchar(50)

OwnerName nvarchar(50)

UploadDate date(dd/mm/yyyy)

Pkey nvarchar(50)

Skey int

Table 5.7.5: Videos

Field Type

Mname nvarchar(50)

Rank int

Table 5.7.6: Comments

Field Type

Mname nvarchar(50)

Comments nvarchar(50)

Table 5.7.7: TPAFiles

Field Type

FileId int

Pkey nvarchar(10,0)

Skey int

Table 5.7.8: ModifiedFiles

Field Type

FileName nvarchar(50)

Pkey nvarchar(10,0)

Page 31 of 67

6. Implementation

6.1. Technologies Used

JAVA TECHNOLOGY

Java technology is both a programming language and a platform.

The Java Programming Language

With most programming languages, you either compile or interpret a program so that you can

run it on your computer. The Java programming language is unusual in that a program is both

compiled and interpreted. With the compiler, first you translate a program into an

intermediate language called Java byte codes —the platform-independent codes interpreted

by the interpreter on the Java platform. The interpreter parses and runs each Java byte code

instruction on the computer. Compilation happens just once; interpretation occurs each time

the program is executed.

What are the advantages of Java programming?

Java programming is likely to make the programs better and requires less effort than other

languages. Java technology will help you do the following:

• Get started quickly: Although the Java programming language is a powerful

object-oriented language, it’s easy to learn, especially for programmers

already familiar with C or C++.

• Write less code: Comparisons of program metrics (class counts, method

counts, and so on) suggest that a program written in the Java programming

language can be four times smaller than the same program in C++.

• Write better code : The Java programming language encourages good coding

practices, and its garbage collection helps you avoid memory leaks. Its object

orientation, its JavaBeans component architecture, and its wide-ranging, easily

Page 32 of 67

extendible API let you reuse other people’s tested code and introduce fewer

bugs.

• Develop programs more quickly: Your development time may be as much as

twice as fast versus writing the same program in C++. Why? You write fewer

lines of code and it is a simpler programming language than C++.

• Avoid platform dependencies with 100% Pure Java: You can keep your

program portable by avoiding the use of libraries written in other languages.

The 100% Pure JavaProduct Certification Program has a repository of

historical process manuals, white papers, brochures, and similar materials

online.

• Write once, run anywhere: Because 100% Pure Java programs are compiled

into machine- independent byte codes, they run consistently on any Java

platform.

• Distribute software more easily: You can upgrade applets easily from a

central server. Applets take advantage of the feature of allowing new classes

to be loaded “on the fly,”without recompiling the entire program. Java has

two things: a programming language and a platform.

Sockets

A socket is a data structure maintained by the system to handle network connections.

A socket is created using the call socket. It returns an integer that is like a file descriptor. In

fact, under Windows, this handle can be used with Read File and Write File functions.

Here "family" will be AF_INET for IP communications, protocol will be zero, and

type will depend on whether TCP or UDP is used. Two processes wishing to communicate

over a network create a socket each. These are similar to two ends of a pipe - but the actual

pipe does not yet exist.

Page 33 of 67

JSON Object

JSON (JavaScript Object Notation) is a lightweight format that is used for data

interchanging. It is also a subset of JavaScript's Object Notation .An example of where this is

used is web services responses. In the 'old' days, web services used XML as their primary

data format for transmitting back data, but since JSON appeared, it has been the preferred

format because it is much more lightweight.

JSON is built on two structures:

1. A collection of name/value pairs. In various languages, this is realized as an object,

record, struct, dictionary, hash table, keyed list, or associative array.

2. An ordered list of values. In most languages, this is realized as an array, vector, list, or

sequence.

The JSON Parser also offers another very useful method, stringify. This method accepts a

JavaScript object as a parameter, and outputs back a string with JSON format. This is useful

for when you want to send data back to the server.

ANDROID APPLICATIONS

The Android Operating System

Android is an open source and Linux-based Operating System for mobile devices such as

smartphones and tablet computers. Android was developed by the Open Handset Alliance,

led by Google, and other companies .Android offers a unified approach to application

development for mobile devices which means developers need only develop for android, and

their applications should be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was released by

Google in 2007 where as the first commercial version, Android 1.0, was released in

September 2008.

The source code for android is available under free and open source software licenses.

Page 34 of 67

Google publishes most of the code under the Apache License version 2.0 and the rest, Linux

kernel changes, under the GNU General Public License version 2.

Android Applications

Android applications are usually developed in the Java language using the android Software

Development Kit .Once developed, android applications can be packaged easily and sold out

either through a store such as Google Play or the Amazon appstore. Android powers

hundreds of millions of mobile devices in more than 190 countries around the world. It's the

largest installed base of any mobile platform and growing fast. Every day more than 1

million new android devices are activated worldwide.

Eclipse IDE

In the context of computing, Eclipse is an integrated development environment (IDE)

for developing applications using the Java programming language and other programming

languages such as C/C++, Python, PERL, Ruby etc.

The Eclipse platform which provides the foundation for the Eclipse IDE is composed of

plug- ins and is designed to be extensible using additional plug- ins. Developed using Java, the

Eclipse platform can be used to develop rich client applications, integrated development

environments and other tools. Eclipse can be used as an IDE for any programming language

for which a plug-in is available.

Eclipse ADT (Android Development Tools)

Android Development Tools (ADT) is a plugin for the Eclipse IDE that is designed to

provide an integrated environment in which to build android applications. ADT extends the

capabilities of Eclipse to let developers set up new android projects, create an application UI,

add packages based on the android Framework API, debug their applications using the

Android SDK tools, and export signed (or unsigned) .apk files in order to distribute their

applications .It is a freeware available to download.

Page 35 of 67

MS ACCESS

Introduction: What is Access?

Microsoft Access is a relational database management system (DBMS). At the most basic

level, a DBMS is a program that facilitates the storage and retrieval of structured information

on a computer’s hard drive.

The many faces of Access:

Microsoft generally likes to incorporate as many features as possible into its products .For

example, the Access package contains the following elements:

•A relational database system that supports two industry standard query languages:

Structured Query Language (SQL) and Query by Example (QBE).

•A full- featured procedural programming language—essentially a subset of Visual

Basic

•A simplified procedural macro language unique to Access

•A rapid application development environment complete with visual form and

report tool

•A sprinkling of objected-oriented extensions and,

•Various wizards and builders to make development easier.

ODBC

Microsoft Open Database Connectivity (ODBC) is a standard programming interface for

application developers and database systems providers. Before ODBC became a de facto

standard for Windows programs to interface with database systems, programmers had to use

proprietary languages for each database they wanted to connect to. Now, ODBC has made

the choice of the database system almost irrelevant from a coding perspective, which is as it

should be. Application developers have much more important things to worry about than the

syntax that is needed to port their program from one database to another when business needs

suddenly change.

Page 36 of 67

JDBC

In an effort to set an independent database standard API for Java; Sun Microsystems

developed Java Database Connectivity, or JDBC. JDBC offers a generic SQL database

access mechanism that provides a consistent interface to a variety of RDBMSs. This

consistent interface is achieved through the use of “plug- in” database connectivity modules,

or drivers. If a database vendor wishes to have JDBC support, he or she must provide the

driver for each platform that the database and Java run on.

6.2. Implementation Modules

Upload file into cloud

The purpose of the system is to provide security to video files stored in the private cloud.

It is using this functionality of video file uploading that an administrator/data owneris

provided to choose a file to upload along with the name of its owner. Also, this present

system is limited in functionality that it is operational with only few file types such as “.mp4”

and “.ovi” extensions. Hence, the administrator needs to make sure that only such files are

uploaded. Once uploaded, the file is encrypted and stored in the cloud .The following code

demonstrates the very functionality discussed so far.

RSA Key Generation Algorithm

importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.List;

importjava.util.Random;

public class KeyGenerator {

Random rr=new Random();

publicintgetKeys(){

String str="";

str=String.valueOf(rr.nextInt(10))+String.valueOf(rr.nextInt(10))+String.valueOf(rr.n

Page 37 of 67

extInt(10))+String.valueOf(rr.nextInt(10))+String.valueOf(rr.nextInt(10))+String.valueOf(rr.nextInt(10));

returnInteger.parseInt(str);

}

public static void main(String args[]){

KeyGeneratorGenerator = new KeyGenerator();

System.out.println(Generator.getKeys());

}

}

The following is the RSA encryption algorithm used while uploading the video:

try {

KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA");

encoder = Cipher.getInstance("RSA");

KeyPairkp = kg.generateKeyPair();

prKey = kp.getPrivate();

pubKey = kp.getPublic();

byte[] pub = pubKey.getEncoded();

System.out.println("PUBLIC KEY" + pub);

System.out.println("File Name" + fname);

String pk = String.valueOf(pub);

KeyGeneratorkgenerate = newKeyGenerator();

String secretkey = String.valueOf(kgenerate.getKeys());

tf.append("File Name :" + fname + "\n");

tf.append("Public Key :" + pk + "\n");

tf.append("File Secret Key :" + secretkey + "\n");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

java.sql.Connection con = DriverManager

.getConnection("jdbc:odbc:AMES");

Statement s = con.createStatement();

s.executeUpdate("insert into DataOwner values('" +fname

+ "','" + downer + "','" + udate +

"',' "+pk + "','"+

secretkey + "')");

Upload metadata of the video file into central controller

Page 38 of 67

The purpose of this is to guarantee that the central controller maintains the data integrity

and the transactions monitoring of the multimedia files. In cases where the multimedia file is

not able to be fetched from the VB(video base) of the Video Cloud(VC) to the remote mobile

users , the central controller provides for the video through virtualization.The following code

demonstrates the very functionality discussed so far:

Multimedia File Operations

Delete Multimedia File

The data owner has the sole authority to delete or permanently remove any particular

multimedia file from the cloud. Once a file is deleted, it cannot be retrieved back and

would not be available any more for the remote mobile users.

Modify Multimedia File

The data owner (cloud service provider) is the sole authority who can modify the

uploaded multimedia files. Given the video file name, the related details i.e. owner name,

date of upload can be modified by the administrator. Once modified the multimedia file

encryption is performed once again for security. The modified files can be viewed even

by the central controller to ensure data integrity.

Verify Multimedia File

The data owner can verify the status of any uploaded multimedia file as either modified

or not modified. The uploaded file database table is checked against the modified files

database table to determine any change in the encryption keys.

Administrator Login

Page 39 of 67

The central administrator is the sole person who can login to the website by providing the

username and password. Once logged in he/she can view all the mobile video streaming

application details: the registered mobile user details, the uploaded multimedia video details,

the video comments etc.

Mobile User Registration

Any user interested to be a part of this system and to make use of the services must first

install and then register in the mobile application. The sign up page is designed for first time

novice users or first time visitors. The details furnished by the user are checked by making

use of validation controls that verify that the email id does not exist.

Mobile User Login

Once a user successfully registers in the mobile application, for all further interaction, it

becomes mandatory to login by providing username and password. It is only after verifying

the user name and password that a user is provided an access to the application services.

Failing to provide any of the above details will result in denial of user access to the

application.

Mobile Video Streaming

Once the registered mobile users’ login, they can play any of the available videos in the

cloud. Here, the users can even add comments for the various multimedia files and with each

view of a video by the user the rank of the video file gets incremented by one.

The following is the Video Streaming code:

public void onClick(View arg0) {

String movie = mname.getText().toString()+".mp4";

Page 40 of 67

String moviename=mname.getText().toString();

VideoViewvd = (VideoView) findViewById(R.id.videoView1);

String url = "http://192.168.0.103:8080/MVSC/"+movie ;

System.out.println(url);

// uri = Uri.parse("android.resource://" + getPackageName() +

// "/" + R.raw.test);

uri = Uri.parse(url);

vd.setMediaController(mc);

vd.setVideoURI(uri);

vd.start();

Toast.makeText(getApplicationContext(), moviename+"->is Playing

Currently and Total Ranks="+ds.viewrank(movie), 90000).show();

Page 41 of 67

7. Testing

Test Cases

The purpose of testing is to discover errors. Testing is the process of trying to discover

every conceivable fault or weakness in a work product. It provides a way to check the

functionality of components, sub-assemblies, assemblies and/or a finished product It is the

process of exercising software with the intent of ensuring that the software system meets its

requirements and user expectations and does not fail in an unacceptable manner. There are

various types of test. Each test type addresses a specific testing requirement.

Activity Function

being tested

Initial System

State Input Expected Output

MOBILE USER

REGISTER

Validation of form

Data

User is not

Registered

All the

entered data is valid according to

the validation

conditions

Alert box displaying

registration Successful.

Redirected to homepage for

Login

ADMIN

LOGIN

Validation

of

User name

&

Password

Admin

attempting to

log in

Entered

Username& Password

do not match

Wronglogin.jsp page

with the panel

displaying “sorry such

a user does not exist”

, with a redirect back

to the login page.

Page 42 of 67

Activity Function

being tested

Initial System

State Input Expected Output

ADMIN

LOGIN

Validation

of

User name

&

Password

Admin attempting to

log in

Entered Username&

Password

do not match

Wronglogin.jsp page

with the panel

displaying “sorry such

a user does not exist”

, with a redirect back

to the login page.

MOBILE USER

LOGIN

Validation

of

username

and

password.

Mobile user attempting to

log in

Entered

username is valid and password

also matches.

Mobile user is successfully

logged in. A

“success” toast

message is

displayed and is

redirected to video

streaming page.

MULTIMEDIA

FILE UPLOAD

Selection of

Video file

User attempts to upload a file

No Selection, and choosing upload option

Upload button does

not function. Alert

box with “file not

uploaded

successfully”

Page 43 of 67

Activity Function

being tested

Initial System

State Input Expected Output

MULTIMEDIA

FILE UPLOAD

Selection of

video file

User attempts to upload a file

Connection to the server

localhost is refused or

fails.

File does not get

uploaded. Alert box

with “file not

uploaded

successfully”

MULTIMEDIA

FILE UPLOAD

Selection of

video file

User attempts

to upload a

file

File with correct location and

extension is chosen.

File successfully

uploaded. Alert box

with “file uploaded

successfully”

MULTIMEDIA

FILE METADATA UPLOAD

Selection of

video file

from the

uploaded

MM files.

User attempts

to upload a

file

File with correct

location and extension is chosen.

File successfully

uploaded. Alert box

with “file uploaded

successfully”

MOBILE VIDEO STREAMING

Streaming/p

laying of

the MM file

User attempts

to play a MM

file .

File is not available in

the cloud / not uploaded by

data owner.

File is not played. A

text box with “Can’t

play video” is

displayed.

MOBILE VIDEO STREAMING

Streaming/p

laying of

the MM file

User attempts

to play a MM

file .

File is available in

the cloud / is uploaded by data owner.

The video file plays

on the mobile

device.

Page 44 of 67

Activity Function

being tested

Initial System

State Input Expected Output

MULTIMEDIA

FILE OPERATION

Modify File

function

User is

displayed

with all the

correspondin

g uploaded

video file

details.

Selecting the

text fields and

modifying

them. Click on

reset button

No modification is

done. Message

saying “the file is

not modified “.

MULTIMEDIA

FILE OPERATION

Modify File function

User is

displayed

with all the

correspondin

g uploaded

video file

details.

Selecting the

text fields and

modifying

them. Click on

update button

Message saying

“the file is modified

successfully”.

MULTIMEDIA

FILE OPERATION

Delete File

function

Selection of

the File to be

deleted.

Wrong file

name or the

connection to

the localhost

server not

established

Message alerting “

File not deleted

successfully”.

MULTIMEDIA

FILE OPERATION

Delete File

function

Selection of

the File to be

deleted.

Wrong file

name or the

connection to

the localhost

server not

established

Message alerting “

File not deleted

successfully”.

Page 45 of 67

Activity Function

being tested

Initial System

State Input Expected Output

MULTIMEDIA

FILE OPERATION

Verify File

function.

Selection of

the file name

to be verified

Selecting the

correct

uploaded

video file

name which

has been

modified by

the data owner

Message saying

“File is not safe !it

has been modified”.

MULTIMEDIA

FILE OPERATION

Verify File

function.

Selection of

the file name

to be verified

Selecting the

correct

uploaded

video file

name which

has not been

modified by

the data owner

Message saying

“File is safe! Not

been modified”.

Page 46 of 67

8. Output Screens

This chapter presents the screen shots of the project during execution.

Fig 8.1: Admin Login Page

Fig 8.1: The administrator logins to the web using this form.

Page 47 of 67

Fig 8.2: Admin Welcome Page

Fig 8.2: Page displayed on successful admin login

Fig 8.3: Admin View All Videos Page

Fig 8.3: The list of all videos in the cloud are displayed

Page 48 of 67

Fig 8.4: Admin View User Details Page

Fig 8.4: The list of registered mobile users are displayed.

Fig 8.5: Admin View Comments Page

Fig 8.5: The list of comments on the videos are displayed.

Page 49 of 67

Fig 8.6: Admin/Data Owner File Window

Fig 8.6: Admin/Data Owner can upload, verify, delete and view all uploaded files.

Page 50 of 67

Fig 8.7: Cloud Server Window

Fig 8.7: Cloud server displays all the video file details.

Page 51 of 67

Fig 8.8: Central Controller Video File Data Window

Fig 8.8: Window to view all the uploaded meta data files.

Fig 8.9: Central Controller View Modified Files Window

Fig 8.9: Window to view the modified files.

Page 52 of 67

Fig 8.10: Modify Video File Window

Fig 8.10: Window to make the modifications to uploaded video files.

Page 53 of 67

Fig 8.11: Mobile User Login to App

Fig 8.11: The form to login to use the app services.

Page 54 of 67

Fig 8.12: Mobile User Register to App

Fig 8.12: Form where new users register in the app.

Page 55 of 67

Fig 8.13: Mobile User Play Video

Fig 8.13: Window to comment, view comments, list videos and stream videos in the app.

Page 56 of 67

9. Conclusion

9.1. Summary

In this project, an in depth investigation is done into the concept of mobile video

streaming and secure video sharing on the cloud to explore the possible advantages of

convergence of the two emerging platforms, mobile applications and cloud computing. A

framework that implements a private cloud to securely store video files using the RSA

algorithm with a centralized administrative system and streaming these videos over mobile

devices has been proposed. The system works with a wide range of mobile devices ranging

from phones to laptops and tablets hence addressing the scalability factor, allowing users

with heterogeneous devices to view the application contents without a glitch. This framework

is best suited for private organization like universities and colleges, who can securely share

video data at low cost and higher control, availability, accessibility and security.

9.2. Scope for Extension

In the project work presented above, the following extensions can be made:

• The video streaming function can be made adaptable to ensure continuous streaming

with the best possible quality, even with varying bandwidth during heavy traffic.

• A combination of algorithms can be used to improve the security of the video content

stored in the cloud.

Page 57 of 67

Bibliography

• Book References

[1] Chris Bates ,Web Programming, Wiley-India, Third Edition, 2006.

[2] Jeff Friesen ,Learn Java for Android Development , Apress , Second Edition ,2013.

• Journal References

[3]M D Walker, M Nilsson, T Jebb and R Turnbull- BT Technology Journal , Mobile

video-streaming, Volume 21 No 3, July 2003.

[4]Parsi Kalpana , Sudha Singaraju-IJRCCT , Data Security In Cloud computing

Using RSA Algorithm , Volume One , 2012

[5] SuhasHola,Mahima M Katti–IJCTTJournal,Android Based Mobile Application

Development and its Security ,Volume Three, 2012.

• Website References

[6]www.stackoverflow.com

[7] developer.android.com

[8] www.tutorialpoint.com

[9] blogs.technet.com

[10] www.support.mircosoft.com

[11] www.wikipedia.org/wiki/Cloud_computing

[12] www.wikipedia.org/wiki/Mobile_applications

[13] www.javamex.com