SlideShare ist ein Scribd-Unternehmen logo
1 von 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
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 FORTHE SYSTEM........................................................................................................19
FIG5.3.1: USE CASE DIAGRAM FOR THE SYSTEM..............................................................................................................21
FIG5.3.2: USE CASE DIAGRAM FORTHE SYSTEM............................................................................................................22
FIG5.4.1: CLASS DIAGRAM FOR THE SYSTEM....................................................................................................................24
FIG5.5.1: SEQUENCE DIAGRAM FORTHE SYSTEM.............................................................................................................26
FIG5.6.1: ACTIVITY DIAGRAM FOR THE SYSTEM...............................................................................................................28
FIG8.1: ADMIN LOGIN PAGE ..............................................................................................................................................46
FIG8.2: ADMIN WELCOMEPAGE........................................................................................................................................47
FIG8.3: ADMIN VIEW ALL VIDEOSPAGE............................................................................................................................47
FIG8.4: ADMIN VIEW USER DETAILS PAGE........................................................................................................................48
FIG8.5: ADMIN VIEW COMMENTSPAGE............................................................................................................................48
FIG8.6: ADMIN/DATA OWNER FILE WINDOW....................................................................................................................49
FIG8.7: CLOUD SERVER WINDOW ......................................................................................................................................50
FIG8.8: CENTRAL CONTROLLER VIDEO FILE DATAWINDOW..........................................................................................51
FIG8.9: CENTRAL CONTROLLER VIEW MODIFIED FILESWINDOW .................................................................................51
FIG8.10: MODIFIED VIDEO FILEWINDOW...........................................................................................................................52
FIG8.11: MOBILE USER LOGINTO 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 unidirectional 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 one 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 ImplementedSystem
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
JAVATECHNOLOGY
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.valu
eOf(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
TestCases
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

Weitere ähnliche Inhalte

Was ist angesagt?

IRJET - Hand Gestures Recognition using Deep Learning
IRJET -  	  Hand Gestures Recognition using Deep LearningIRJET -  	  Hand Gestures Recognition using Deep Learning
IRJET - Hand Gestures Recognition using Deep LearningIRJET Journal
 
Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)
Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)
Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)IRJET Journal
 
BrownResearch_CV
BrownResearch_CVBrownResearch_CV
BrownResearch_CVAbby Brown
 
Project.12
Project.12Project.12
Project.12GS Kosta
 
Voice Controlled Robotic Vehicle
Voice Controlled Robotic VehicleVoice Controlled Robotic Vehicle
Voice Controlled Robotic VehicleAyesha Shafique
 
2012 - 2013 bulk ieee projects for sale
2012 - 2013 bulk ieee projects for sale2012 - 2013 bulk ieee projects for sale
2012 - 2013 bulk ieee projects for saleJPINFOTECH JAYAPRAKASH
 
April 2020: Top Read Articles in VLSI design & Communication Systems
April 2020: Top Read Articles in VLSI design & Communication SystemsApril 2020: Top Read Articles in VLSI design & Communication Systems
April 2020: Top Read Articles in VLSI design & Communication SystemsVLSICS Design
 
02 jofri quality 9051 10nov 17 edit septian2
02 jofri quality 9051 10nov 17 edit septian202 jofri quality 9051 10nov 17 edit septian2
02 jofri quality 9051 10nov 17 edit septian2IAESIJEECS
 
IRJET- Online Compiler for Computer Languages with Security Editor
IRJET-  	  Online Compiler for Computer Languages with Security EditorIRJET-  	  Online Compiler for Computer Languages with Security Editor
IRJET- Online Compiler for Computer Languages with Security EditorIRJET Journal
 
Final Year Project Report
Final Year Project ReportFinal Year Project Report
Final Year Project ReportChongKit liew
 
IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...
IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...
IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...sunda2011
 
FINAL CORRECT Report
FINAL CORRECT ReportFINAL CORRECT Report
FINAL CORRECT ReportRK Saini
 

Was ist angesagt? (17)

IRJET - Hand Gestures Recognition using Deep Learning
IRJET -  	  Hand Gestures Recognition using Deep LearningIRJET -  	  Hand Gestures Recognition using Deep Learning
IRJET - Hand Gestures Recognition using Deep Learning
 
Pamphlet Sw Engg
Pamphlet Sw EnggPamphlet Sw Engg
Pamphlet Sw Engg
 
Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)
Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)
Virtual Classroom(Android Application for Accessing Server using Wi-Fi Services)
 
BrownResearch_CV
BrownResearch_CVBrownResearch_CV
BrownResearch_CV
 
Modified sd profile june 30
Modified sd profile june 30Modified sd profile june 30
Modified sd profile june 30
 
Project.12
Project.12Project.12
Project.12
 
Resume_2016
Resume_2016Resume_2016
Resume_2016
 
AIRPORT MANAGEMENT USING FACE RECOGNITION BASE SYSTEM
AIRPORT MANAGEMENT USING FACE RECOGNITION BASE SYSTEMAIRPORT MANAGEMENT USING FACE RECOGNITION BASE SYSTEM
AIRPORT MANAGEMENT USING FACE RECOGNITION BASE SYSTEM
 
Voice Controlled Robotic Vehicle
Voice Controlled Robotic VehicleVoice Controlled Robotic Vehicle
Voice Controlled Robotic Vehicle
 
resume
resumeresume
resume
 
2012 - 2013 bulk ieee projects for sale
2012 - 2013 bulk ieee projects for sale2012 - 2013 bulk ieee projects for sale
2012 - 2013 bulk ieee projects for sale
 
April 2020: Top Read Articles in VLSI design & Communication Systems
April 2020: Top Read Articles in VLSI design & Communication SystemsApril 2020: Top Read Articles in VLSI design & Communication Systems
April 2020: Top Read Articles in VLSI design & Communication Systems
 
02 jofri quality 9051 10nov 17 edit septian2
02 jofri quality 9051 10nov 17 edit septian202 jofri quality 9051 10nov 17 edit septian2
02 jofri quality 9051 10nov 17 edit septian2
 
IRJET- Online Compiler for Computer Languages with Security Editor
IRJET-  	  Online Compiler for Computer Languages with Security EditorIRJET-  	  Online Compiler for Computer Languages with Security Editor
IRJET- Online Compiler for Computer Languages with Security Editor
 
Final Year Project Report
Final Year Project ReportFinal Year Project Report
Final Year Project Report
 
IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...
IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...
IEEE Final Year Projects 2011-2012 :: Elysium Technologies Pvt Ltd::Paralleld...
 
FINAL CORRECT Report
FINAL CORRECT ReportFINAL CORRECT Report
FINAL CORRECT Report
 

Andere mochten auch

Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsNexgen Technology
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsPvrtechnologies Nellore
 
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS
DISCOVERY OF RANKING FRAUD FOR MOBILE APPSDISCOVERY OF RANKING FRAUD FOR MOBILE APPS
DISCOVERY OF RANKING FRAUD FOR MOBILE APPSShakas Technologies
 
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...Nexgen Technology
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsjpstudcorner
 
FRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGFRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGSatish Chandra
 
A survey on identification of ranking fraud for mobile applications
A survey on identification of ranking fraud for mobile applicationsA survey on identification of ranking fraud for mobile applications
A survey on identification of ranking fraud for mobile applicationseSAT Journals
 
Presentation on fraud prevention, detection & control
Presentation on fraud prevention, detection & controlPresentation on fraud prevention, detection & control
Presentation on fraud prevention, detection & controlDominic Sroda Korkoryi
 
Data acquisition and storage in Wireless Sensor Network
Data acquisition and storage in Wireless Sensor NetworkData acquisition and storage in Wireless Sensor Network
Data acquisition and storage in Wireless Sensor NetworkRutvik Pensionwar
 
RSM India publication - How Robust is your IT System
RSM India publication - How Robust is your IT SystemRSM India publication - How Robust is your IT System
RSM India publication - How Robust is your IT SystemRSM India
 
User Activity Analysis Using Accelerometer and Cloud Computing
User Activity Analysis Using Accelerometer and Cloud ComputingUser Activity Analysis Using Accelerometer and Cloud Computing
User Activity Analysis Using Accelerometer and Cloud ComputingMarwan Issa
 
Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage Adz91 Digital Ads Pvt Ltd
 
Oracle Text 12c New Features
Oracle Text 12c New FeaturesOracle Text 12c New Features
Oracle Text 12c New FeaturesUlrike Schwinn
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsBoopathi Kumar
 
How to build_a_search_engine
How to build_a_search_engineHow to build_a_search_engine
How to build_a_search_engineAndrea Iacono
 
Project center in trichy @ieee 2016 17 titles for java and dotnet
Project center in trichy @ieee 2016 17 titles for java and dotnetProject center in trichy @ieee 2016 17 titles for java and dotnet
Project center in trichy @ieee 2016 17 titles for java and dotnetElakkiya Triplen
 
FINAL PROJECT REPORT
FINAL PROJECT REPORTFINAL PROJECT REPORT
FINAL PROJECT REPORTSoham Wadekar
 
key aggregate cryptosystem for scalable data sharing in cloud
key aggregate cryptosystem for scalable data sharing in cloudkey aggregate cryptosystem for scalable data sharing in cloud
key aggregate cryptosystem for scalable data sharing in cloudSravan Narra
 

Andere mochten auch (20)

Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 
main project doument
main project doumentmain project doument
main project doument
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS
DISCOVERY OF RANKING FRAUD FOR MOBILE APPSDISCOVERY OF RANKING FRAUD FOR MOBILE APPS
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS
 
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...
DISCOVERY OF RANKING FRAUD FOR MOBILE APPS - IEEE PROJECTS IN PONDICHERRY,BUL...
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 
FRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONINGFRAUD DETECTION IN ONLINE AUCTIONING
FRAUD DETECTION IN ONLINE AUCTIONING
 
A survey on identification of ranking fraud for mobile applications
A survey on identification of ranking fraud for mobile applicationsA survey on identification of ranking fraud for mobile applications
A survey on identification of ranking fraud for mobile applications
 
Presentation on fraud prevention, detection & control
Presentation on fraud prevention, detection & controlPresentation on fraud prevention, detection & control
Presentation on fraud prevention, detection & control
 
Data acquisition and storage in Wireless Sensor Network
Data acquisition and storage in Wireless Sensor NetworkData acquisition and storage in Wireless Sensor Network
Data acquisition and storage in Wireless Sensor Network
 
RSM India publication - How Robust is your IT System
RSM India publication - How Robust is your IT SystemRSM India publication - How Robust is your IT System
RSM India publication - How Robust is your IT System
 
User Activity Analysis Using Accelerometer and Cloud Computing
User Activity Analysis Using Accelerometer and Cloud ComputingUser Activity Analysis Using Accelerometer and Cloud Computing
User Activity Analysis Using Accelerometer and Cloud Computing
 
Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage Key aggregate cryptosystem for scalable data sharing in cloud storage
Key aggregate cryptosystem for scalable data sharing in cloud storage
 
Oracle Text 12c New Features
Oracle Text 12c New FeaturesOracle Text 12c New Features
Oracle Text 12c New Features
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile appsDiscovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 
How to build_a_search_engine
How to build_a_search_engineHow to build_a_search_engine
How to build_a_search_engine
 
Project center in trichy @ieee 2016 17 titles for java and dotnet
Project center in trichy @ieee 2016 17 titles for java and dotnetProject center in trichy @ieee 2016 17 titles for java and dotnet
Project center in trichy @ieee 2016 17 titles for java and dotnet
 
FINAL PROJECT REPORT
FINAL PROJECT REPORTFINAL PROJECT REPORT
FINAL PROJECT REPORT
 
key aggregate cryptosystem for scalable data sharing in cloud
key aggregate cryptosystem for scalable data sharing in cloudkey aggregate cryptosystem for scalable data sharing in cloud
key aggregate cryptosystem for scalable data sharing in cloud
 
Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps Discovery of ranking fraud for mobile apps
Discovery of ranking fraud for mobile apps
 

Ähnlich wie document1-2 FINAL-FINALLL

Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...Sunil Rajput
 
Sample projectdocumentation
Sample projectdocumentationSample projectdocumentation
Sample projectdocumentationhlksd
 
Report File On Virtual Private Network(VPN)
Report File On Virtual Private Network(VPN)Report File On Virtual Private Network(VPN)
Report File On Virtual Private Network(VPN)Rajendra Dangwal
 
IRJET- Internet Video Streaming Service for Social Network
IRJET- Internet Video Streaming Service for Social NetworkIRJET- Internet Video Streaming Service for Social Network
IRJET- Internet Video Streaming Service for Social NetworkIRJET Journal
 
IRJET- Internet Video Streaming Service for Social Network
IRJET-  	  Internet Video Streaming Service for Social NetworkIRJET-  	  Internet Video Streaming Service for Social Network
IRJET- Internet Video Streaming Service for Social NetworkIRJET Journal
 
Iaetsd adaptive and well-organized mobile video streaming public
Iaetsd adaptive and well-organized mobile video streaming publicIaetsd adaptive and well-organized mobile video streaming public
Iaetsd adaptive and well-organized mobile video streaming publicIaetsd Iaetsd
 
Module 4_BETCK105H_Introduction to IoT.pdf
Module 4_BETCK105H_Introduction to IoT.pdfModule 4_BETCK105H_Introduction to IoT.pdf
Module 4_BETCK105H_Introduction to IoT.pdfRoopaDNDandally
 
A novel adaptive schema to facilitates playback switching technique for video...
A novel adaptive schema to facilitates playback switching technique for video...A novel adaptive schema to facilitates playback switching technique for video...
A novel adaptive schema to facilitates playback switching technique for video...IJECEIAES
 
QoE-enabled big video streaming for large-scale heterogeneous clients and net...
QoE-enabled big video streaming for large-scale heterogeneous clients and net...QoE-enabled big video streaming for large-scale heterogeneous clients and net...
QoE-enabled big video streaming for large-scale heterogeneous clients and net...redpel dot com
 
Video streaming over Ad hoc on-demand distance vector routing protocol
Video streaming over Ad hoc on-demand distance vector routing protocolVideo streaming over Ad hoc on-demand distance vector routing protocol
Video streaming over Ad hoc on-demand distance vector routing protocoljournalBEEI
 
VIDEO CONFERENCING SYSTEM USING WEBRTC
VIDEO CONFERENCING SYSTEM USING WEBRTCVIDEO CONFERENCING SYSTEM USING WEBRTC
VIDEO CONFERENCING SYSTEM USING WEBRTCIRJET Journal
 
SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...
SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...
SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...Journal For Research
 
Real Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingIRJET Journal
 
Video streaming using wireless multi hop in android phones
Video streaming using wireless multi hop in android phonesVideo streaming using wireless multi hop in android phones
Video streaming using wireless multi hop in android phonesIAEME Publication
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemDr. Amarjeet Singh
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemDr. Amarjeet Singh
 

Ähnlich wie document1-2 FINAL-FINALLL (20)

Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
Implementing Saas as Cloud controllers using Mobile Agent based technology wi...
 
thesis final
thesis finalthesis final
thesis final
 
Sample projectdocumentation
Sample projectdocumentationSample projectdocumentation
Sample projectdocumentation
 
Report File On Virtual Private Network(VPN)
Report File On Virtual Private Network(VPN)Report File On Virtual Private Network(VPN)
Report File On Virtual Private Network(VPN)
 
IRJET- Internet Video Streaming Service for Social Network
IRJET- Internet Video Streaming Service for Social NetworkIRJET- Internet Video Streaming Service for Social Network
IRJET- Internet Video Streaming Service for Social Network
 
IRJET- Internet Video Streaming Service for Social Network
IRJET-  	  Internet Video Streaming Service for Social NetworkIRJET-  	  Internet Video Streaming Service for Social Network
IRJET- Internet Video Streaming Service for Social Network
 
Iaetsd adaptive and well-organized mobile video streaming public
Iaetsd adaptive and well-organized mobile video streaming publicIaetsd adaptive and well-organized mobile video streaming public
Iaetsd adaptive and well-organized mobile video streaming public
 
Module 4_BETCK105H_Introduction to IoT.pdf
Module 4_BETCK105H_Introduction to IoT.pdfModule 4_BETCK105H_Introduction to IoT.pdf
Module 4_BETCK105H_Introduction to IoT.pdf
 
A novel adaptive schema to facilitates playback switching technique for video...
A novel adaptive schema to facilitates playback switching technique for video...A novel adaptive schema to facilitates playback switching technique for video...
A novel adaptive schema to facilitates playback switching technique for video...
 
1 sky
1 sky1 sky
1 sky
 
QoE-enabled big video streaming for large-scale heterogeneous clients and net...
QoE-enabled big video streaming for large-scale heterogeneous clients and net...QoE-enabled big video streaming for large-scale heterogeneous clients and net...
QoE-enabled big video streaming for large-scale heterogeneous clients and net...
 
Video streaming over Ad hoc on-demand distance vector routing protocol
Video streaming over Ad hoc on-demand distance vector routing protocolVideo streaming over Ad hoc on-demand distance vector routing protocol
Video streaming over Ad hoc on-demand distance vector routing protocol
 
VIDEO CONFERENCING SYSTEM USING WEBRTC
VIDEO CONFERENCING SYSTEM USING WEBRTCVIDEO CONFERENCING SYSTEM USING WEBRTC
VIDEO CONFERENCING SYSTEM USING WEBRTC
 
SwapnikC
SwapnikCSwapnikC
SwapnikC
 
SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...
SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...
SECURITY IMPLEMENTATION IN MEDIA STREAMING APPLICATIONS USING OPEN NETWORK AD...
 
Real Time Head Generation for Video Conferencing
Real Time Head Generation for Video ConferencingReal Time Head Generation for Video Conferencing
Real Time Head Generation for Video Conferencing
 
Video streaming using wireless multi hop in android phones
Video streaming using wireless multi hop in android phonesVideo streaming using wireless multi hop in android phones
Video streaming using wireless multi hop in android phones
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance System
 
Real-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance SystemReal-Time WebRTC based Mobile Surveillance System
Real-Time WebRTC based Mobile Surveillance System
 
Ijcatr04061005
Ijcatr04061005Ijcatr04061005
Ijcatr04061005
 

document1-2 FINAL-FINALLL

  • 1. 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
  • 2. 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)
  • 3. 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:
  • 4. 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:
  • 5. 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)
  • 6. 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.
  • 7. vii List of Figures Description Page FIG5.2.1: FLOW CHART DIAGRAM FORTHE SYSTEM........................................................................................................19 FIG5.3.1: USE CASE DIAGRAM FOR THE SYSTEM..............................................................................................................21 FIG5.3.2: USE CASE DIAGRAM FORTHE SYSTEM............................................................................................................22 FIG5.4.1: CLASS DIAGRAM FOR THE SYSTEM....................................................................................................................24 FIG5.5.1: SEQUENCE DIAGRAM FORTHE SYSTEM.............................................................................................................26 FIG5.6.1: ACTIVITY DIAGRAM FOR THE SYSTEM...............................................................................................................28 FIG8.1: ADMIN LOGIN PAGE ..............................................................................................................................................46 FIG8.2: ADMIN WELCOMEPAGE........................................................................................................................................47 FIG8.3: ADMIN VIEW ALL VIDEOSPAGE............................................................................................................................47 FIG8.4: ADMIN VIEW USER DETAILS PAGE........................................................................................................................48 FIG8.5: ADMIN VIEW COMMENTSPAGE............................................................................................................................48 FIG8.6: ADMIN/DATA OWNER FILE WINDOW....................................................................................................................49 FIG8.7: CLOUD SERVER WINDOW ......................................................................................................................................50 FIG8.8: CENTRAL CONTROLLER VIDEO FILE DATAWINDOW..........................................................................................51 FIG8.9: CENTRAL CONTROLLER VIEW MODIFIED FILESWINDOW .................................................................................51 FIG8.10: MODIFIED VIDEO FILEWINDOW...........................................................................................................................52 FIG8.11: MOBILE USER LOGINTO APP.................................................................................................................................53 FIG8.12: MOBILE USER REGISTER TO APP...........................................................................................................................54 FIG8.13: MOBILE USER PLAY VIDEO....................................................................................................................................55
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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.
  • 12. 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 unidirectional 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.
  • 13. 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 one 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.
  • 14. 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
  • 15. 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.
  • 16. 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.
  • 17. 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
  • 18. 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.
  • 19. 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 ImplementedSystem 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
  • 20. 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.
  • 21. 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.
  • 22. 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.
  • 23. 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
  • 24. 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
  • 25. 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,
  • 26. 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.
  • 27. 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
  • 28. 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.
  • 29. Page 19 of 67 Flow Chart Diagram Fig 5.2.1: FCD for the system
  • 30. 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.
  • 31. Page 21 of 67 Use Case Diagram Fig 5.3.1: Use Case Diagram for the System
  • 32. Page 22 of 67 Fig. 5.3.2: Use Case Diagram for the System
  • 33. 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.
  • 34. Page 24 of 67 Class Diagram Fig. 5.4.1: Class Diagram for the System
  • 35. 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.
  • 36. Page 26 of 67 Sequence Diagram: Fig. 5.5.1: Sequence Diagram for the system
  • 37. 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.
  • 38. Page 28 of 67 Activity Diagram Fig. 5.6.1: Activity Diagram for the System
  • 39. 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
  • 40. 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)
  • 41. Page 31 of 67 6. Implementation 6.1. Technologies Used JAVATECHNOLOGY 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
  • 42. 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.
  • 43. 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.
  • 44. 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.
  • 45. 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.
  • 46. 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
  • 47. Page 37 of 67 extInt(10))+String.valueOf(rr.nextInt(10))+String.valueOf(rr.nextInt(10))+String.valu eOf(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
  • 48. 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
  • 49. 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";
  • 50. 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();
  • 51. Page 41 of 67 7. Testing TestCases 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.
  • 52. 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”
  • 53. 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.
  • 54. 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”.
  • 55. 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”.
  • 56. 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.
  • 57. 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
  • 58. 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.
  • 59. 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.
  • 60. Page 50 of 67 Fig 8.7: Cloud Server Window Fig 8.7: Cloud server displays all the video file details.
  • 61. 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.
  • 62. Page 52 of 67 Fig 8.10: Modify Video File Window Fig 8.10: Window to make the modifications to uploaded video files.
  • 63. Page 53 of 67 Fig 8.11: Mobile User Login to App Fig 8.11: The form to login to use the app services.
  • 64. Page 54 of 67 Fig 8.12: Mobile User Register to App Fig 8.12: Form where new users register in the app.
  • 65. 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.
  • 66. 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.
  • 67. 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