Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

document1-2 FINAL-FINALLL

  • Be the first to comment

  • Be the first to like this

document1-2 FINAL-FINALLL

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 29. Page 19 of 67 Flow Chart Diagram Fig 5.2.1: FCD for the system
  30. 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. 31. Page 21 of 67 Use Case Diagram Fig 5.3.1: Use Case Diagram for the System
  32. 32. Page 22 of 67 Fig. 5.3.2: Use Case Diagram for the System
  33. 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. 34. Page 24 of 67 Class Diagram Fig. 5.4.1: Class Diagram for the System
  35. 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. 36. Page 26 of 67 Sequence Diagram: Fig. 5.5.1: Sequence Diagram for the system
  37. 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. 38. Page 28 of 67 Activity Diagram Fig. 5.6.1: Activity Diagram for the System
  39. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 60. Page 50 of 67 Fig 8.7: Cloud Server Window Fig 8.7: Cloud server displays all the video file details.
  61. 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. 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. 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. 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. 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. 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. 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

    Be the first to comment

    Login to see the comments

Views

Total views

1,832

On Slideshare

0

From embeds

0

Number of embeds

20

Actions

Downloads

45

Shares

0

Comments

0

Likes

0

×