Вы находитесь на странице: 1из 24

Mega Project Thesis

ON

“V-PORTIO”

Submitted to
Government College of Engineering, Nagpur

in partial fulfillment of the requirement for the degree of


BATCHELOR OF ENGINEERING
in
Computer Science & Engineering

Submitted By

Krutika Bandre - 15
Tejal Kapse - 31
Vaidehi Deogade - 33
Nikhilesh Raut - 49

under the Guidance of


Mrs. Chandrayani Rokde

Department of Computer Science &Engineering


Government College of Engineering
New Khapri, Nagpur-441108(M.S)
2018-2019
CERTIFICATE OF APPROVAL

Certified that the mega project report entitled “​V-Portio​” has successfully completed its first
module by Krutika Bandre, Tejal Kapse, Vaidehi Deogade, Nikhilesh Raut under the
guidance of Mrs. Chandrayani Rokde and it is submitted to the Department of Computer
Science & Engineering.

Signature Signature

Dr.Latesh Bhagat Chandrayani Rokde


H.O.D, CSE Project Guide

Department of Computer Science &Engineering


Government College of Engineering
New Khapri, Nagpur-441108(M.S)
2018-2019

1
CONTENTS Page No.

Title Page i

Certificate of Approval ii

Table of Contents iii

Abstract …

1. Introduction 1

1.1 Overview
1.2 Problem Statement

1.3 Thesis Objectives

2.​ ​Work done :(​ Report on the basis of the present module​)

2.1 Raspberry Pi

2.2 Power Supply

2.3 Connecting Cables

2.4 HDMI to VGA

2.5 Raspbian OS

2.6 Programming Languages

2.7 Web Server

2.8 Databases

2.9 Tools

3.​ ​Analysis and Results

4. Future Scope

5.​ ​Summary and Conclusions

6. References

2
LIST OF FIGURES

Sr. No. Figure No. Figure Name Page


No.
1. 1 Methodology-Flow Diagram 8
2. 2 Raspberry Pi 3 Model B++ 11
3. 3 Ethernet/LAN Cable and Port 12

4. 4 Home Screen of Raspbian OS after 14


installation
5. 5 Connection on Raspberry Pi 19
6. 6 Installation 20
7. 7 Desktop Screen 20
8. 8 Setting up of Owncloud 21
9. 9 Administrator panel after setup 21

3
Abstract

Cloud computing provides numerous services, in terms of Infrastructure as a Service (IaaS)


the protection of data privacy becomes doubtful on moving files to private cloud storage. To
overcome this drawback, the proposed system provides a highly-secured cloud server.

The combination of good technology (cloud computing) and the marvelous innovation
(Raspberry Pi )to provide a prone free secured data sharing is the aim of the proposed system.

The system illustrates the design of Raspberry Pi with our configured server can act as a
medium to make our external storage device as our personal cloud. This device will make
static data on external storage devices available dynamically which can be accessed remotely
via our network address.

4
1. Introduction

1.1 Overview

The Tech-giants like Microsoft, Google, Amazon, etc.in this present arena of technology
have established their cloud platform by giving their clients remote access to the files stored
on their system and on their server.

These Tech-giants make a business out of IaaS service which is a service model that delivers
computer infrastructure on an outsourced basis to support enterprise operations. Typically,
IaaS provides hardware, storage, servers, and data center space or network components; it
may also include software.

Dropbox, Google Drive, AWS and many other cloud platforms dedicate their servers and
storage for customers and we need to pay for the premium access onto their secure servers.
So, our storage is remotely managed by these companies and we just access it via our
accounts.

Based on the ideology of making a private server and cloud, this project aims at providing
data center capacity to host files that are stored on their respective devices. This project
enhances the approach towards file sharing between different users. And that too, each static
storage device can act as a personalized cloud and data over our external storage medium is
accessible remotely via our network connection done with the help of raspberry pi.

5
1.2 Problem Statement

To design a hardware system and establish a server to host the external device and allowing it
to act as a cloud to share files from the same storage device using raspberry pi and offering
access to data remotely.

6
1.3 Thesis Objectives

The idea is to design a system where a person can have his/her personalized cloud where
he/she can share their data with other users just by giving the users the credentials to access
the data remotely. The purpose is to make such a device for an individual which will be his
personalized cloud whose memory is not static and it can vary and change according to the
devices we connect to it.

The objective of the thesis is to come up with a method where any kind of storage device
which is viable to store static data will now be dynamically accessible. It is an effort to use
the technology of cloud computing and raspberry pi efficiently. The Internet is changing the
world at a pace that we cannot imagine. Every day of the calendar is a day of innovation
where researchers practice and implement their practices to bring a sound solution to the
problems of today’s world. For this project, we are using Raspberry Pi 3 (Model B) as our
device which is booted with raspbian operating system which will act as our foundational
interface to work with.

7
2. Work Done

Project is affirmed to be conducted in stages:

1. Configuration of Raspberry Pi and Installation of the NGINX server.


2. Establishing our cloud on the system.
3. Integrating the code on the server and enhancing its compatibility with hardware.

We are planning to work in a total of 3-4 modules to meet the aforementioned objective.

Module 1: It will be designing the interface for the user and administrator to use and monitor
the system respectively.

Module 2: The server-side scripting and code will ensure it's definite access to the database
which will serve as a cloud for the user.

Module 3: Programming that will include the code so that the ports and hardware will be able
to communicate firmly with the server.

Research Methodology

Figure 1: Methodology - Flow Diagram

8
The flow of the project is as follows:

1) We access the shell of raspberry pi through a remote computer connected to raspberry pi


on a network through SSH login.

2) We also install NGINX on Raspberry pi which uses a remote frame buffer (RFB) protocol
to show the GUI enabled desktop of Raspberry pi. This gives us more ease of access than the
command line text environment through SSH login.

3) After we have successfully accessed the pi we set up an NGINX server on Raspberry pi.

4) Now we install cloud service on Raspberry pi.

5) The Raspberry pi cloud server is now behind the domestic ADSL/DSL router. The router
connects the pi server to the internet.

6) Request from users for server access is forwarded to pi by the router only when we set up
port forwarding for the Apache server on port nos. 80 and 443(HTTP and https port
numbers).

7) Weaved is a secure alternative to port-forwarding.

8) After the cloud service is set up on Raspberry pi users can log in through the personal
cloud portal and store their data on Raspberry pi from any corner of the world.

9
Hardware & Software Requirement

Hardware

Raspberry pi 3 (model B)

Ethernet/LAN Cable

2 - 2.5amp Adapter (Power Supply)

HDMI Cable

VGA Cable

HDMI to VGA converter

Software

Operating System:​ Linux (Debian 9.0 - Raspbian)

Programming Language:​ Python, PHP

​ pache
Webserver: A

​ ySQL, MariaDB
Database: M

Platform Dependency:​ VNC Viewer, Putty

Open-source resource:​ Owncloud

10
2.1 Raspberry Pi

The Raspberry Pi is a series of small single-board computers developed in the United


Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science
in schools and in developing countries. The original model became far more popular than
anticipated, selling outside its target market for uses such as robotics. It does not include
peripherals (such as keyboards and mice) or cases. However, some accessories have been
included in several official and unofficial bundles.

Raspberry Pi 3 Model B was released on February 2016 with a 1.2 GHz 64-bit quad-core
processor, onboard 802.11n Wi-Fi, Bluetooth, and USB boot capabilities. On Pi Day 2018 the
Raspberry Pi 3 Model B+ was launched with a faster 1.4 GHz processor and a three-times
faster gigabit Ethernet (throughput limited to ca. 300 Mbit/s by the internal USB 2.0
connection) or 2.4 / 5 GHz dual-band 802.11ac Wi-Fi (100 Mbit/s). Other features are Power
over Ethernet (PoE), USB boot and network boot (an SD card is no longer required).

The Raspberry Pi 3 Model B uses a Broadcom BCM2837 SoC with a 1.2 GHz 64-bit
quad-core ARM Cortex-A53 processor, with 512 KB shared L2 cache. The Model A+ and
B+ are 1.4 GHz.

Figure 2: Raspberry Pi 3 Model B

11
2.2 2 - 2.5 Amp Power Supply

There is no capacitor on board of Raspberry Pi to store the charge which would have been
acted as the energy source for the board. Thus, there is a need for continuous power supply
for the board. Also, for all components to work properly and efficiently. Raspberry needs a
minimum of 2 amp supply and it is recommended to have a 2.5 amp power supply. There is a
precaution that must be taken where we cannot supply more than the required current because
it can adversely affect the circuits and cause it to melt.

2.3 Connecting Cables

2.3.1 Ethernet/LAN Cable

Ethernet is the traditional technology for connecting wired local area networks (LANs),
enabling devices to communicate with each other via a protocol.

As a data-link layer protocol in the TCP/IP stack, Ethernet describes how network devices
can format and transmit data packets so other devices on the same local or campus area
network segment can recognize, receive and process them. An Ethernet cable is the physical,
encased wiring over which the data travels.

Any device accessing a geographically localized network using a cable -- i.e., with a wired
rather than wireless connection -- likely uses Ethernet -- whether in a home, school or office
setting. From businesses to gamers, diverse end users depend on the benefits of Ethernet
connectivity, including reliability and security.

Compared to wireless LAN technology, Ethernet is typically less vulnerable to disruptions --


whether from radio wave interference, physical barriers or bandwidth hogs. It can also offer a
greater degree of network security and control than wireless technology, as devices must
connect using physical cabling -- making it difficult for outsiders to access network data or
hijack bandwidth for unsanctioned devices.

Figure 3: Ethernet/LAN Cable and Port

12
2.3.2 HDMI Cable

HDMI (High-Definition Multimedia Interface) is a proprietary audio/video interface for


transmitting uncompressed video data and compressed or uncompressed digital audio data
from an HDMI-compliant source device, such as a display controller, to a compatible
computer monitor, video projector, digital television, or digital audio device. HDMI is a
digital replacement for analog video standards.

This cable is exclusively responsible for the display onto the monitor. From ​Figure 1,​ we can
identify the HDMI output port where the display connection needs to be established.

2.3.3 VGA Cable

A Video Graphics Array (VGA) connector is a three-row 15-pin DE-15 connector. The
15-pin VGA connector was provided on many video cards, computer monitors, laptop
computers, projectors, and high definition television sets. On laptop computers or other small
devices, a mini-VGA port was sometimes used in place of the full-sized VGA connector.

Many devices still include VGA connectors, although it generally coexists with DVI as well
as the newer and more compact HDMI and DisplayPort interface connectors.

This was used for those devices where the display monitor does not support HDMI modified
display connection.

2.4 HDMI to VGA converter

The display devices are not compatible with the HDMI connection. It is compatible with the
VGA connection. In such cases, we need a converter so that both connecting devices are
mutually compatible with each other.

2.5 Raspbian OS

Raspbian is a Debian-based computer operating system for Raspberry Pi. There are several
versions of Raspbian including Raspbian Buster and Raspbian Stretch. Since 2015 it has been
officially provided by the Raspberry Pi Foundation as the primary operating system for the
family of Raspberry Pi single-board computers. Raspbian was created by Mike Thompson
and Peter Green as an independent project. The initial build was completed in June 2012. The
operating system is still under active development. Raspbian is highly optimized for the
Raspberry Pi line's low-performance ARM CPUs.

13
Figure 4: Home Screen of Raspbian OS after installation

2.6 Programming Languages

2.6.1 Python

Python is a wonderful and powerful programming language that's easy to use (easy to read
and write) and, with Raspberry Pi, lets you connect your project to the real world. Python
syntax is very clean, with an emphasis on readability, and uses standard English keywords.

The official Python Package Index (PyPI) hosts files uploaded by package maintainers. Some
packages require compilation (compiling C/C++ or similar code) in order to install them,
which can be a time-consuming task, particularly in the single-core Raspberry Pi 1 or Pi
Zero.

piwheels is a service providing pre-compiled packages (called Python wheels) ready for use
on the Raspberry Pi. Raspbian is pre-configured to use piwheels for pip. Read more about the
piwheels project at ​www.piwheels.org.

2.6.2 PHP

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source
general-purpose scripting language that is especially suited for web development and can be
embedded into HTML.

14
PHP code may be executed with a command-line interface (CLI), embedded into HTML
code, or used in combination with various web template systems, web content management
systems, and web frameworks. PHP code is usually processed by a PHP interpreter
implemented as a module in a web server or as a Common Gateway Interface (CGI)
executable. The web server outputs the results of the interpreted and executed PHP code,
which may be any type of data, such as generated HTML code or binary image data. PHP can
be used for many programming tasks outside of the web context, such as standalone graphical
applications and robotic drone control.

The establishment of the cloud platform will contain a user interface that will be hosted on a
web server. Thus, this server-side scripting is done with the help of PHP.

2.7 Web Servers

There are two web servers that can be used to establish a cloud platform. Depending on the
future scope, we will accordingly move to the server. For now, our present module is based
on the ​Apache Server. B ​ ut depending on our future scope, we will transform our server
accordingly. Our resources recommended ​NGINX Server and Apache b​ oth as an appropriate
one for establishing a cloud.

2.7.1 NGINX

NGINX is a web server that can also be used as a reverse proxy, load balancer, mail proxy,
and HTTP cache. The software was created by Igor Sysoev and first publicly released in
2004. A company of the same name was founded in 2011 to provide support and Nginx plus
paid software.

Nginx can be deployed to serve dynamic HTTP content on the network using FastCGI, SCGI
handlers for scripts, WSGI application servers or Phusion Passenger modules, and it can
serve as a software load balancer.

Nginx uses an asynchronous event-driven approach, rather than threads, to handle requests.
Nginx's modular event-driven architecture can provide more predictable performance under
high loads.

Nginx default configuration file is nginx.conf

15
2.7.2 Apache

The Apache License is a permissive free software license written by the Apache Software
Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to
modify it, and to distribute modified versions of the software under the terms of the license,
without concern for royalties. The ASF and its projects release their software products under
the Apache License. The license is also used by many non-ASF projects.

NGINX vs Apache

Nginx was written with an explicit goal of outperforming the Apache webserver. Out of the
box, serving static files, Nginx uses dramatically less memory than Apache and can handle
roughly four times as many requests per second. However, this performance boost comes at a
cost of decreased flexibility, such as the ability to override systemwide access settings on a
per-file basis (Apache accomplishes this with a .htaccess file, while Nginx has no such
feature built-in).

Nginx also has a reputation of being harder to install and configure than Apache. Formerly,
adding third-party modules to Nginx required recompiling the application from the source
with the modules statically linked. This was partially overcome in version 1.9.11 in February
2016, with the addition of dynamic module loading. However, the modules still must be
compiled at the same time as Nginx, and not all modules are compatible with this
system—some require the older static linking process.

Nginx is generally considered to be less stable on Windows Server than it is on Linux, while
Apache has equal support for both.

16
2.8 Databases

Data is modified and made accessible in a particular organizational structure of databases.


Their structure unveils the complexity of storage. There are two databases that are compatible
with ​Owncloud.​

1. MySQL
2. MariaDB

2.8.1 MySQL

MySQL is an open-source relational database management system (RDBMS). MySQL is free


and open-source software under the terms of the GNU General Public License and is also
available under a variety of proprietary licenses. MySQL was owned and sponsored by the
Swedish company MySQL AB, which was bought by Sun Microsystems (now Oracle
Corporation). In 2010, when Oracle acquired Sun, Widenius forked the open-source MySQL
project to create MariaDB.

MySQL is a component of the LAMP web application software stack (and others), which is
an acronym for Linux, Apache, MySQL, Perl/PHP/Python. MySQL is used by many
database-driven web applications, including Drupal, Joomla, phpBB, and WordPress.
MySQL is also used by many popular websites, including Facebook, Flickr, MediaWiki,
Twitter, and YouTube.

2.8.2 MariaDB

MariaDB Server is one of the most popular database servers in the world. It’s made by the
original developers of MySQL and guaranteed to stay open source. Notable users include
Wikipedia, WordPress.com, and Google.

MariaDB turns data into structured information in a wide array of applications, ranging from
banking to websites. It is an enhanced, drop-in replacement for MySQL. MariaDB is used
because it is fast, scalable and robust, with a rich ecosystem of storage engines, plugins, and
many other tools that make it very versatile for a wide variety of use cases.

MariaDB is developed as open-source software and as a relational database, it provides an


SQL interface for accessing data. The latest versions of MariaDB also include GIS and JSON
features.

17
2.9 Tools

Tools that helped in establishing a connection are:

1. VNC Viewer
2. PuTTY

2.9.1 VNC Viewer

In computing, Virtual Network Computing (VNC) is a graphical desktop sharing system that
uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It
transmits the keyboard and mouse events from one computer to another, relaying the
graphical-screen updates back in the other direction, over a network.

VNC is platform-independent – there are clients and servers for many GUI-based operating
systems and for Java. Multiple clients may connect to a VNC server at the same time. Popular
uses for this technology include remote technical support and accessing files on one's work
computer from one's home computer, or vice versa.

There are a number of variants of VNC which offer their own particular functionality; e.g.,
some optimized for Microsoft Windows or offering file transfer (not part of VNC proper),
etc. Many are compatible (without their added features) with VNC proper in the sense that a
viewer of one flavor can connect with a server of another; others are based on VNC code but
not compatible with standard VNC.

2.9.2 PuTTY

PuTTY is a free and open-source terminal emulator, serial console and network file transfer
application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and
raw socket connection. It can also connect to a serial port. The name "PuTTY" has no official
meaning.

PuTTY was originally written for Microsoft Windows, but it has been ported to various other
operating systems. Official ports are available for some Unix-like platforms, with
work-in-progress ports to Classic Mac OS and macOS, and unofficial ports have been
contributed to platforms such as Symbian, Windows Mobile, and Windows Phone.

PuTTY comes bundled with command-line SCP and SFTP clients, called "pscp" and "psftp"
respectively, and plink, a command-line connection tool, used for non-interactive sessions.

PuTTY does not support session tabs directly, but many wrappers are available that do.

18
3. Data Analysis and Results

3.1 Establishment of connection

Following the architecture of Figure 2, We designed and made the connection accordingly on
our raspberry pi board. Figure 5 is the actual connection that we did on the board.

Figure 5: Connection on Raspberry Pi

19
3.2 Installation Process

We booted up the NOOBS into the 16GB SD card which we got to insert into the raspberry
pi. After booting up the system and establishing all connections, we connect it to a display
where the installation process begins automatically.

A glimpse of an installation page is shown below in the figure.

Figure 6: Installation

3.3 Setting up of Webserver

After installation of the raspbian operating system. The figure below signifies the desired
output.

Figure 7: Desktop Screen

After setting up the operating system, the next objective on the list is to establish a web server
that will host the cloud we are willing to establish.

20
We will install NGINX on Raspberry pi which uses a remote frame buffer (RFB) protocol to
show the GUI enabled desktop of Raspberry pi. This gives us more ease of access than the
command line text environment through SSH login.

3.4 Owncloud Setup

After setting up of webserver and after configuring a static network for the raspberry pi. we
set up the owncloud onto the server. We need to pass few commands on the terminal where
we are required to update the repository of our operating system and then install the files of
owncloud and host them on the network hosted on our web server.

Figure 8: Setting up of Owncloud

Figure 9: Administrator panel after setup

21
4. Future Scope

This project will result in a personalized cloud service for an individual. For this module, we
have been successful in establishing a cloud via an open-source platform of owncloud. In the
latter half of the semester, we will be ready with the device which can make remote access to
static storage devices easy.

5. Summary and Conclusion

Our idea to design a hardware system and establish a server to host the external device and
ideology in allowing it to act as a cloud to share files from the same storage device using
raspberry pi and offering access to data remotely. This seems to be a successful module
looking at the research methodology and efforts that were put to make it happen. The
resources available and technological advancement will certainly support the implementation
of the entire model.

22
6. References

[1]Paper: Prof. Krunal J. Pimple, Shubham Jarwal, Gaurav Rajai, Pooja Ghadshi, Gaurav
Dubey; ‘OWNCLOUD Using Raspberry Pi’, International Journal of Computer Science
Trends and Technology (IJCST) – Volume 5 Issue 2, Mar-Apr 2017.

[2]Paper: Baladhandapani, Vinoth Kumar.V2; ‘RASBI CLOUD: RASPBERRY PI’,


International Journal Of Research In Computer Applications And Robotics Issn 2320-7345.

Documentation Cited:

1. Raspberry Pi Foundation: ​https://projects.raspberrypi.org


2. Owncloud: ​https://doc.owncloud.org/
3. Apache Software Foundation: ​https://httpd.apache.org/docs/

Youtube Resource (Links mentioned below):

​https://youtu.be/YHPNk2nKf44

https://youtu.be/xrvB0VVMynM

https://youtu.be/n4ycD3_5ddk

23

Вам также может понравиться