document1-2 final-finalll
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 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 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 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 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 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