SlideShare a Scribd company logo
1 of 53
Download to read offline
i
CAPSTONE PROJECT REPORT
Project Term January-April, 2016
ON
Compiler as a Service-A Private Cloud
Submitted by:-
Abhinav Registration Number: 11206526
Umesh Kumar Registration Number: 11205670
Anil Chamoli Registration Number: 11200080
Manvender Singh Registration Number: 11205653
Project Group Number: CSERGC0108
Course Code: CSE445
Under the Guidance of
Pradeep Kumar (Lecturer)
School of Computer Science and Engineering
ii
DECLARATION
We hereby declare that the project work entitled (“Compiler as a Service-A Private Cloud”) is an
authentic record of our own work carried out as requirements of Capstone Project for the award of
B.Tech degree in CSE from Lovely Professional University, Phagwara, under the guidance of Pradeep
Kumar, during January to April 2016. All the information furnished in this capstone project report is
based on our own intensive work and is genuine.
Project Group Number: CSERGC0069
Name of Student 1: Abhinav
Registration Number: 11206526
Name of Student 2: Umesh Kumar
Registration Number: 11205670
Name of Student 3: Anil chamoli
Registration Number: 11200080
Name of Student 4: Manvender Singh Bhati
Registration Number: 11205653
(Signature of Student 1)
Date:
(Signature of Student 2)
Date:
(Signature of Student 3)
Date:
(Signature of Student 4)
Date:
iii
CERTIFICATE
This is to certify that the declaration statement made by this group of students is correct to the best of
my knowledge and belief. They have completed this Capstone Project under my guidance and
supervision. The present work is the result of their original investigation, effort and study. No part of
the work has ever been submitted for any other degree at any University. The Capstone Project is fit
for the submission and partial fulfilment of the conditions for the award of B.Tech degree in CSE from
Lovely Professional University, Phagwara.
Name of the Mentor: Pradeep Kumar
Signature:
Designation: lecturer
School of Computer Science and Engineering,
Lovely Professional University,
Phagwara, Punjab.
Date:
iv
TOPIC APPROVAL PERFORMA School of Computer Science and Engineering
Program: 1202: B.Tech. – CSE
COURSE CODE : CSE445 REGULAR/BACKLOG : Regular GROUP NUMBER : CSERGC0108
Supervisor Name : Pradeep Kumar UID : 16473 Designation : Lecturer
Qualification : ________________________ Research Experience : ________________________
SR.NO. NAME OF STUDENT
REGISTRATION
NO BATCH SECTION CONTACT NUMBER
1 Abhinav 11206526 2012 K1203 8437317557
2 Umesh Kumar 11205670 2012 K1213 9915291110
3 Manvender Singh Bhati 11205653 2012 K1202 8437505395
4 Anil Chamoli 11200080 2012 K1211 9855308576
SPECIALIZATION AREA : System Architecture and Design Supervisor Signature: ___________________
PROPOSED TOPIC : Compiler As A Service-A Private Cloud
v
Qualitative Assessment of Proposed Topic by PAC
Sr.No. Parameter Rating (out of 10)
1 Project Novelty: Potential of the project to create new knowledge 7.25
2
Project Feasibility: Project can be timely carried out in-house with low-cost and available
resources in 6.75
the University by the students.
3
Project Academic Inputs: Project topic is relevant and makes extensive use of academic inputs
in UG 7.00
program and serves as a culminating effort for core study area of the degree program.
4
Project Supervision: Project supervisor’s is technically competent to guide students, resolve
any issues, 7.00
and impart necessary skills.
5 Social Applicability: Project work intends to solve a practical problem. 6.75
6
Future Scope: Project has potential to become basis of future research work, publication or
patent. 7.00
PAC Committee Members
PAC Member 1 Name: Gaurav Pushkarna UID: 11057 Recommended (Y/N): Yes
PAC Member 2 Name: Er.Dalwinder Singh UID: 11265 Recommended (Y/N): Yes
PAC Member 3 Name: Harwant Singh Arri UID: 12975 Recommended (Y/N): NA
PAC Member 4 Name: Balraj Singh UID: 13075 Recommended (Y/N): NA
PAC Member 5 Name: Mandeep Singh UID: 13742 Recommended (Y/N): Yes
DAA Nominee Name: Kanwar Preet Singh UID: 15367 Recommended (Y/N): Yes
Final Topic Approved by
PAC: Compiler As A Service-A Private Cloud
Overall
Remarks: Approved
PAC CHAIRPERSON
Name: 11024::Amandeep Nagpal Approval Date: 11 Mar 2016
vi
ACKNOWLEDGMENT
We are sincerely thankful to all those people who have been giving us any kind of assistance in the
making of this project. We express our gratitude to Mr. Pradeep Kumar, who has through his vast
experience and knowledge has been able to guide us, both ably and successfully towards the
completion of the project. I express my gratitude to Lovely Professional University, Punjab. We would
hereby, make most of the opportunity by expressing my sincerest thanks to all our faculties whose
teachings gave us conceptual understanding and clarity of comprehension, which ultimately made our
job more easy. Credit also goes to all our friends whose encouragement kept us in good stead. Their
continuous support has given us the strength and confidence to complete the project without any
difficulties. Last of all but not the least we would like to acknowledge our gratitude to the respondents
without whom this project would have been incomplete.
7
TABLE OF CONTENT
Page
1. INTRODUCTION 8
2. PROBLEM STATEMENT 10
3. EXISTING SYSTEM 11
4. PROBLEM ANALYSIS 15
5. SOFTWARE REQUIREMENT ANALYSIS 19
6. DESIGN 21
7. TESTING 28
8. IMPLEMENTATION 31
9. PROJECT LEGACIES 33
10. USER MANUAL 35
11. SNAPSHOTS 36
12. CLOUD COMPONENTS 38
13. BIBLIOGRAPHY 53
8
1. INTRODUCTION
The Cloud Computing is said to be the technology which is the next big thing after artificial
intelligence. It was an idea of NASA which was commercially brought into the market by the
technology giant Amazon. It was a simple idea of resource utilization which then made way for a lot
of other services that we see now a days attach to cloud computing. In today’s world when we talk
about technology improvement then cloud computing must be in top three, the way developers have
improved the technology in past three to four years it suddenly become a fashion for all the enterprise
to have their own private cloud.
Openstack Cloud platform is one of the first open source cloud platform which can easily be modified
and provisioned as per requirement. It was developed by Rackspace foundation which works under
NASA in the United States of America. It meant to server as a purpose of easy modification in cloud
administration, but the open source quality of it made Openstack popular among all the Linux based
OS providers.
Red Hat made tie-ups with Rackspace to develop it further with a collaborative approach towards
making it the biggest open source cloud platform. At Present it has wide range of customer including
15 companies form fortune 500.
1.1 Components of Openstack:
There are basically nine components of OpenStack (two of which were just included in the last
Icehouse release), below is a quick breakdown of what they are called in OpenStack speak, and what
they do.
1.1.1 OpenStack Compute (Nova)
OpenStack compute (codename: Nova) is the component which allows the user to create and
manage virtual servers using the machine images. It is the brain of the Cloud. OpenStack
compute provisions and manages large networks of virtual machines.
1.1.2 OpenStack Networking (Neutron)
It is a pluggable, scalable and API-driven system for managing networks. OpenStack
networking is useful for VLAN management, management of IP addresses to different VMs
and management of firewalls using these components.
1.1.3 Identity Service (Keystone)
This provides a central directory of users mapped to the OpenStack services. It is used to
provide an authentication and authorization service for other OpenStack services.
9
1.1.4 Openstack image Services
This provides the discovery, registration and delivery services for the disk and server
images.it stores and retrieves the virtual machine disk image
1.1.5 Orchestration Heat
This component manages multiple Cloud applications through an OpenStack-native REST API
and a Cloud Formation-compatible Query API.
1.1.6 Database as a Service (Trove)
Trove is Database as a Service for OpenStack. It's designed to run entirely on OpenStack, with
the goal of allowing users to quickly and easily utilize the features of a relational database
without the burden of handling complex administrative tasks. Cloud users and database
administrators can provision and manage multiple database instances as needed. Initially, the
service will focus on providing resource isolation at high performance while automating
complex administrative tasks including deployment, configuration, patching, backups,
restores, and monitoring.
1.1.7 Messaging as a Service (Marconi)
Marconi is a cloud messaging and notification service for developers building applications on
top of OpenStack. The service features a web-friendly HTTP API, which developers can use
to send messages between the various components of their SaaS and mobile applications, using
a variety of communication patterns. Underlying the API is an efficient messaging engine
designed with scalability and security in mind.
1.1.8 OpenStack Telemetry Service (Ceilometer)
It monitors the usage of the Cloud services and decides the billing accordingly. This component
is also used to decide the scalability and obtain the statistics regarding the usage.
10
2. PROBLEM STATEMENT
Compilers are used to run programs and convert them from a text format to executable format.
Compiler that is to be installed manually on every system physically requires a lot of space and also
configuring of it if not installed using default parameters. Also once a program is compiled it becomes
platform dependent. It is also not easy to carry the same program code to multiple systems if situation
doesn’t permit the usage of a single system. Another drawback is that we would need to install a
different complier on each language on which we wish to work.
Our implementation is a private cloud on which the application would be hosted. The software would
be provided to the end user using a SAAS cloud. The software would contain a system that has a text
editor and a terminal. The user would be given an option to select the language in which he wants to
compile the program. The software will compile the program and return the output to the user.
Additional functionalities such as monitoring of the system and collaborative development can be
added as needed.
The major gap they experienced was the frequent change of technology makes it difficult for any
organization to upgrade their laboratories, so the available systems find it difficult to run the new
compilers and simulators as they are less powered.
From This project we don’t have to upgrade the all existing system rather we will upgrade only the
server and all other systems can access the compiler services from the private cloud which will be
working on server within the Local Area Network.
The Expected Outcome of this project will be such that we can access compiler of our choice and need
from anywhere within the campus using any device which is connected to Local Area Network of our
University (i.e. LPU Wireless).
We can compile and run any program of any language even using our smartphone screen with help of
Microsoft Remote client Application.
11
3. EXISTING SYSTEM
3.1 Introduction
Our problem is directly concentrating the traditional present systems installed in our computer
labs .computers in labs are placed in ring topology and connected to internet .access to all
computers are given through user id’s through which students get access to the system files
and compiler program files and which result in non-operability of compilers in the pc . As
most of the times the pc are unable to open software because of issues related to the system
files or the configuration of the compiler. Which leads to delay in class teaching time, reduction
in understanding of students as most pc are not able to even run the soft wares and difficulties
faced at the time evaluation.
3.2 Existing Software
1) Online platform: PHP websites provides online coding and output space for compiling
the code.
1.1) ideone.com: provides users to use their websites where they can compile
there code in different languages .they also provides tutorial to learn a language and
steps in making the project in that language.
2) Cloud Platform: there are products like our specially designed or talking the problems
like cost reduction, high collaboration and platform independence in some giant companies.
2.1 Microsoft Roslyn: Roslyn isn't services in the sense of software-as-a-service
(SaaS), platform-as-a-service (PaaS), or similar cloud offerings. Rather, it's services in the
sense of Windows services. Roslyn is a complete reengineering of Microsoft's .Net compiler
toolchain in a new way, such that each phase of the code compilation process is exposed as a
service that can be consumed by other applications. Specially designed for coding projects in
visual basic and c#.
.
12
3.3 DFD for Existing Systems
Present system is based on simple architecture of computer as hardware is over headed by kernel on
which we can have different types of os or platform. On this platform number of different apps and
compilers are installed and used for services.
13
3.4 Improvements to be done
Our new cloud based compiler just completely eliminate the dependency of the app on hardware,
kernel. Which means you need not to have the high configuration hardware to run a compiler we
provide you with a remote interface on which that compiler is deployed. Cloud based compiler
mainly deals with providing a platform to compile and execute programs that is not dependent on
any platform related restriction or complication. Present
The cloud compiler can be used by any user who has subscribed to the compiler and can use it for a
specific period of time. The functionalities that are provided by the cloud are:-
Compiler on go: The cloud will have an IDE where the source code can be written. The code can be
implemented on the cloud itself and the output can be viewed at same time
File management system: The source code can be saved in a text format or in .java format in the
space that is allocated to each user. The user can extended his storage space by buying a bigger
storage space.
Present the various advantage and disadvantage of the systems are:-
Advantages:
 No need to download the SDK of any compiler.
 No issues of setting path variables.
 Elegant and simple to use GUI for better coding.
 Support from other users in forums
14
4. PROBLEM ANALYSIS
4.1 Problem Definition
Now a days it is common utilization of Internet, in this web world every one of the things are on the
web. Cloud computing model is for empowering helpful and in addition as needed network access to
a common pool of configurable computing assets which can be immediately provisioned and
discharged with least administration endeavours. So we develop software as a service like online
compiler. This research main goal is we can easily write programs, compile and debug online. Using
these cloud compilers we can reduce the storage space and movability, centralized compiler using
cloud computing that helps to save the time, storage and cost using this concept. So that it’s a most
appropriate tool to compile the code, remove the errors and debug it. Using these compilers will
provide online compiler service, like SaaS installation of separate compiler on each machine is
avoided. Once we use this application in cloud we can access the compiler from the web. So that we
can obtain the common errors and analysis of time complexity of different compilers
4.2 Feasibility Study
The main objective behind performing the feasibility study is to determine whether it would be
possible to develop the project. The feasibility study activity involves analysis of the problem and
collection of all relevant information relating to the product such as the different data items which
would be input to the system, the processing required to be carried out on these data. The result of our
feasibility study is a kind of formal proposal which will explain in detail the nature and the scope of
the proposed work. For our project 3 types of feasibility study was performed which are:
1. Economic Feasibility
2. Technical Feasibility
3. Operational Feasibility
15
4.2.1 Economical Feasibility
Economic Feasibility in case our project was to make sure that developing the project will be
within the cost of members of the group. It is commonly known as cost/benefit analysis in
software industry as it is the process in which cost of developing and maintaining the project
is determined and the benefits that we will get by developing the project is also determined. If
benefits overtake the cost the decision to develop the project is made otherwise project is
rejected. The economic feasibility study of our project covered:
1. The cost of hardware.
2. The Cost of API’s and other network services.
3. Cost of Software used for deploying cloud.
Our proposed application is economically feasible because:
1. Our group members have the android phone so the cost of hardware needed to test
the system was not in consideration.
2. Software needed to developing the cloud is Open stack which is easily available.
Technical Feasibility
Technical Feasibility activity involves is it possible to develop our project from technical
perspective that is technology exists to develop the project and development team will be able
to develop the project. Things we must be taking care during the technical feasibility of our
project are:
Knowledge of Open stack environment how thing work.
Knowledge of how we have to deploy a cloud and able to solve all the problem that come
during the process.
4.2.3 Operational Feasibility
It is an evaluation to determine whether the system is operationally acceptable. It also
determines how the proposed system will fit with current operational system. Operational
feasibility is dependent on human resources available for the project and involves projecting
whether the system will be used if it is developed and implemented.
16
4.3 Project Plan
Aim: - The major gap they experienced was the frequent change of technology makes it difficult for
any organization to upgrade their laboratories, so the available systems find it difficult to run the
new compilers and simulators as they are less powered.
From This project our aim was that we don’t have to upgrade the all existing system rather we will
upgrade only the server and all other systems can access the compiler services from the private cloud
which will be working on server within the Local Area Network
Project Goals: A project is successful when the needs of the stakeholders have been met. A
stakeholder is anybody directly, or indirectly impacted by the project. It is important to identify the
users in your project. It is not always easy to identify the users of a project, particularly those impacted
indirectly. Examples of users are:
The project sponsor.
The user who needs compiler services.
The project manager and project team.
Output:
Interface showing the compiler list
User is able to access all the compiler
Remote login is made easy
Different instances are available to user
User is able to request for provisioning of resources
Platform as a Service is added successfully
History of user is recorded
Files once saved under accounts are safe to retrieve
Can access internet through remote login instance
Dashboard for Openstack is working fine
Dashboard for Amazon server is working fine
17
Quality criteria:
Product outcomes define the quality of product like:
● Is it better than other products?
● Does it consume too much resources like memory, storage and processor? We need to
take special care of these factors as we are developing a mobile application and
mobile phone has limited resources
 Does the webpage is taking time to load
 Does it fulfil the need of the users?
 Does it provide efficient output?
Resources:
It defines what type of resources we need to develop and test our application. The resources
needed in our application:
 Required Skills
 Red Hat Linux (minimum 7)
 Software for Development (Openstack Repo Files)
 Remote Login Application
for mobile phones
 Amazon online Server
access
 Amazon Dashboard
knowledge
18
5. SOFTWARE REQUIREMENT ANALYSIS
5.1 Introduction
In order to develop this project there are several software requirement needs to be fulfilled. As we
are supposed to provide services over cloud we need to have our own cloud deployed and for access
of services we needs servers to provide remote login to our instances which are running on cloud.
5.1.1 Cloud Deployment
1. Red hat access account
2. Red hat Enterprise Linux 7.2
3. Openstack Repository for RHEL 7.2
Red Hat Access Account
We need to have a redhat.com account to access their core cloud repo files and to get access
of their own resources for cloud management. In case of technical assistance this is helpful to
have an account.
Red Hat Enterprise Linux 7.2
We need the Red Hat Enterprise Linux for deployment of the Openstack cloud. As we know
that it’s an open source cloud and can be deployed over any of the Linux, we choose redhat
because of the tie-ups the cloud provider shares with redhat and amazon.
Openstack Repository for RHEL 7.2
These repo files are the small software which collectively create a cloud. There are repo file
for every kind of the work that the compiler do. Like we are having repo file for Database
connections, Networking, Interconnections of different connection between various cloud
components.
Overview
The proposed work is such which requires Redhat Linux operating system and the open source
openstack platform which is easily available.
We have our own ‘good configuration Laptops’ which can run those open source software, so
it is feasible to carry out proposed work.
19
5.1.2 Remote Login
1. Amazon EC2 Account
2. Remote Amazon Server
Amazon EC2 Account
Amazon is having all the important components that helps in building a cloud platform.
Amazon shares a healthy relationship with Rackspack foundations which is the main creator
of openstack cloud. So here in our project we require an account on amazon cloud services so
that we can use their components as per our needs.
Remote Amazon Server
Yes this Part is important to discuss because we have taken access of Amazon Server to
provide our cloud platform the exposure to WWW. As we require our deployed instances to
be able run remotely we need online servers to give our cloud the ability of being accessed
remotely anywhere in the world.
5.2 General Description
5.2.1 Cloud computing
Cloud computing, also on-demand computing, is a kind of Internet-based computing that
provides shared processing resources and data to computers and other devices on demand. It
is a model for enabling ubiquitous, on-demand access to a shared pool of configurable
computing resources (e.g., networks, servers, storage, applications and services),which can be
rapidly provisioned and released with minimal management effort. Cloud computing and
storage solutions provide users and enterprises with various capabilities to store and process
their data in third-party data centres. It relies on sharing of resources to achieve coherence
and economy of scale, similar to a utility (like the electricity grid) over a network. Middleware
and key applications.
5.2.2 Openstack cloud
OpenStack is a cloud operating system that controls large pools of compute, storage, and
networking resources throughout a datacentre, all managed through a dashboard that gives
administrators control while empowering their users to provision resources through a web
inter
5.2.3 Red hat
Red Hat is the world's leading provider of open source solutions, using a community-
powered approach to provide reliable and high-performing cloud computing resource.
Red Hat has a collaborative approach towards technology enhancement and it shares a
healthy relationship with Openstack and Amazon.
20
5.2.4 Amazon Server
Amazon EC2 works in conjunction with Amazon Simple Storage Service (Amazon S3),
Amazon Relational Database Service (Amazon RDS), Amazon Simple DB and Amazon
Simple Queue Service (Amazon SQS) to provide a complete solution for computing, query
processing and storage across a wide range of applications executable here we have used the
Hosting server to host our cloud on their servers
5.3 Specific Requirements
5.3.1 Software Requirements
● Platform Used for Development:
Red Hat Linux 7.2
● Cloud Platform
Openstack Cloud by Rackspace NASA
● Online Server:
Amazon EC2 Host server
● Dashboard
Openstack Dashboard for Local management
Amazon Dashboard for remote management
5.3.2 Hardware Requirements
Deployment End:
Minimum RAM required: 8GB
Operating System: Red Hat Enterprise Linux 7 & above
Processor: 2.4 GHz
Hard Disk: 300GB (can be more or less as per your system requirement)
User End:
User just need to have a very basic platform to run remote servers.
User require a good internet connections.
21
6. DESIGN
Design is a very important part of the software development process. If you discover a problem in
the design phase then it is easy (and therefore cheap) to fix. This is true for any development process
– not just for software.
6.1 System Design
System Design is the process in which the architecture, components, modules, interfaces and
data of the system is designed to meet the specific requirements.
In the process of System Design Requirements that we have gathered and specified in concise form
serve as an input.
System Design is a two Step Process:
1. High Level Design
2. Low Level Design
6.1.1 High Level Design
In a high level design architecture of the system is developed. Modules and then their sub
modules that should be include in the system are decided. In our Project High level design was
deciding which layout will be used, what modules and sub modules will be there.
Architecture of our project is
22
6.2 Design Notations
There are tried and tested methods for communicating with other team members when
designing software. These are called design notations. This simply means there are ways of
helping us represent what is going on in our program. Commonly used design notations are:
1. Algorithms
2. Flow charts
3. DFD
Here are some detailed design for the system we created covering these concerns:
1. How the customer will interact with the system?
2. How will the data flow?
3. What is the process and the functionality covered?
6.3 Detailed Design
In a detailed design the architecture is further explained i.e. the modules and sub-modules are
further elaborately classified. Below are some of our detailed designs.
6.2.2 Data Flow Diagram (DFD)
23
6.3 Flowcharts
24
Here are some initial designs of the website on how proceeded with the end product:-
1. How compiler will look like in remote pc
This is the snapshot of compiler running inside the remote pc where we can write the code and
can compile it .
2. How the Remote System Looks
This is how the remote instance is looking which is running at the server (Amazon Server)
25
3. Showing the IP address of Remote PC(not Host pc)
We have checked the ip address of remote pc for just the confirmation
4. google.com confirming the location of remote pc server
5. Instance Creation On back hand (inside private cloud)
26
6. Network Topology in Cloud
A router is connected to a network Local Area Network by which we can access to WWW.
A bus network is simple and reliable. If one node fails to operate, all the rest can still
communicate with each other. For a major disruption to take place, the bus itself must be broken
somewhere. Bus networks are easy to expand. Additional nodes can be added anywhere along
the bus.
27
7. TESTING
7.1 Functional Testing
Functional Testing is the process of testing the functionality of the system that is the testing of the
features provided by the system. It is based on the specifications of the system that we are putting
under test. It is one of the type of black box testing that test the system or component system by making
user to feed various inputs and then examining the outputs. Concentration is on the functionality,
internal structure of programming is not considered.
Testers: Functionality Testing can be performed by anyone as no knowledge of programming and
internal working of program is needed.
Steps:
The process of functionality testing of our system include following steps:
Step 1: Identifying the features that is system expected to deliver to the users.
Step 2: Identifying and making the list of various input data that can be given to system
Step 3: Determining the correct output based on the inputs that we have made list of.
Step 4: Run the system with all the listed inputs.
Step 5: The comparison of actual input and expected input.
7.1.1 Functional Testing of our Website and Mobile App
Our System is comprised of several modules as we are testing the functionality of the system
so firstly we have started process of testing module by module. Testing of modules is explained
below:
7.1.1.1 Registration / Log in
Whether the new user is able to register (as customer/service provider/ driver)
and current user is able to log in or not?
7.1.1.2 Compiler Running
Whether the customer is able to run a compiler with full functionality or not.
Weather the program is providing proper output or not
7.1.1.3 Instance Creation
Whether the instance is created properly or not. Keeping track of no. of
instance required for a particular lab. Keeping track which instance is
providing which compiler service
28
7.1.1.4 Connectivity
User’s connectivity with the instance has been put under testing in this phase. We
tried to connect to the remote instance using various configuration systems under
different internet connections
7.1.1.5 Profile
Whether In this phase we are keeping track of whether the user is able to
retrieve saved file from his profile or not. A profile with the name of user is
created in system and this is the location where all his files are saved.
7.2 Structural Testing
The structural testing is the testing of the structure of the system or component. Structural testing is
often referred to as ‘white box’ or ‘glass box’ or ‘clear-box testing’ because in structural testing we
are interested in what is happening ‘inside the system/application’. In structural testing the testers are
required to have the knowledge of the internal implementations of the code. Here the testers require
knowledge of how the software is implemented, how it works.
Structural Testing Techniques:
1. Control flow testing
2. Data Flow Testing
3. Branch testing
4. Path testing
5. Statement coverage
6. Decision coverage
7.3 Level Of Testing
7.3.1 Unit Testing
Unit testing is the process where each module is tested individually to find any bugs in
coding part of the module and makes sure that code is working as intended before
integrating this module in whole project. For project’s unit testing our application’s
module login, connectivity, Compiler status are running individually and making sure
that there is no bug left before integrating them into complete project.
.
7.3.2 Integration Testing
Integration testing is any type of software testing that seeks to verify the interfaces between
components against a software design. Software components may be integrated in an
29
Iterative way or all together ("big bang"). Normally the former is considered a better practice
since it allows interface issues to be located more quickly and fixed. An empty layout for
complete project was created and tested first and then each module was integrated and the
project was tested after integrating each module so that which interface has errors can be found
easily
7.4 Testing the project
When we have completed the coding and design part of our complete project we move to Interface
testing of the complete project is performed. We make sure that navigation among all the modules is
error free.
We make sure that if settings are changed then these changes are reflected in that particular module.
For example for our project if a user is has entered the proper login details then he should be awarded
with the remote access of the instance he was looking for.
7.5 Installation Testing
An installation test assures that the system is installed correctly and working at actual customer's
hardware. The application was tested by installing it into various android devices, and was found
working efficiently
The website is loading correctly across all the devices and is responding to the change in
Conditions as well. The mobile friendly nature is working correctly.
7.5 Deployment Testing
A deployment test assures that the system is deployed correctly and working at actual customer's
hardware. The application was tested by running it into various android devices and pcs and was
found working efficiently .The instance is loading correctly across all the devices and is
responding to the change in conditions as well. The mobile friendly nature is working correctly.
30
8. IMPLEMENTATION
8.1 Implementation of the Project
We have developed the platform incrementally to make sure we have a working app and website at all
times. We finally made a working final version with all the basic functionality. Also, distributing and
implementing the platform was managed very effectively so that there are less conflicts and
regressions introduced in our platform. We strongly believed in submitting a platform with less
features but fully functioning one rather than the one with more features and an unstable version. At
the end, we provided a working instance which can be run on any pc after giving the connectivity. In
this project we have used a Openstack cloud, Openstack is a free and open-source software
platform for cloud computing, mostly deployed as an infrastructure-as-a-service (IaaS). The software
platform consists of interrelated components that control hardware pools of processing, storage, and
networking resources throughout a data center. The cloud is deployed on the Open Stack environment.
After then we have created different instances on the cloud easily accessed through dashboard. The
good thing about the instance is that they are not connected with each other in any way only one thing
common that they are running on a same private cloud. Due to which we have get the flexibility that
we can provide different functionality on different instance .Like if on the day of lab evaluation teacher
want that the student is not able to cheat as student previously save the program on the lab pcs ,teacher
can provide a new instance to the students where everything is newly installed .
8.2 Conversion Plan
Conversion plan works with the working of the project implemented and how the project concept is
implemented as a real time application. The first and far most thing which was most important in
conversion plan was deploying the cloud, there were many error which we have gone through during
the process like mongo DB database error, static IP error, puppet error, interconnection of various
components of cloud error. After going through
All this error the road was somewhat clear. Then one big thing which had taken a long time was which
type of instance should be provided to the users, should all the instance be alike or each of the instance
should have its own property. Finally we decided that we will go for multiple instance which look
exactly same in functionality and it's perfectly suitable for the labs. In addition to that we are providing
Platform as a Service (Paas) in which a user can install his own Application that will look like working
in his own pc. User have given the flexibility to download anything from the Internet and can save it
there for the future reference.
31
8.3 Post Implementation and Software Maintenance
After a project has been implemented and is available for the end user to use it, he gets all the
functionalities of user related tasks. . After a time, when the number of users increase, the software is
needed to be maintained for fulfilling the increasing requirements of the user. The solution has to be
regularly maintained so that there is no effect on the performance of the solution with change in time.
Software implementation include:
1.Understanding the existing system.
2. Optimal use of present technology and tools.
3. Requirement and product analysis.
4. Optimizing the existing methods with the use of technology.
Software is changed when:
1.Technology Changes
2.User Requirements
3.New feature is to be added to current system.
4. Efficient use of hardware.
5. Additivity is required to stay at par with your competition.
To stay at par with the latest legal norms and requirements related to privacy and security of the users.
32
9. PROJECT LEGACIES
9.1 Current Status of the project
Our platform has been tested incrementally and it’s working fine. We found lot of bugs during testing
phase of our platform like database errors in cloud deployment, static IP errors in transferring requests
and remote login errors. We debugged all the bugs now and it is working properly. Looking At the
project we are successfully able to deploy the openstack cloud and we also have successfully
connected it to online server which will give us remote access to our instances, the front end is still
under construction.
9.2 Remaining area of concern
● Front end of it using html and CSS
● Add-on Platform as a Service component
● Internet necessity
9.3 Technical and Managerial Lesson learnt
9.3.1 Technical Lessons Learnt
Coming to technical lessons we a team have learnt what is said to be one of the difficult area
in modern tech arena “Cloud Administration “. It was hard to deploy cloud on system but what
made the whole process all difficult is the Administration Part.
It’s like you cannot even operate the simple Windows operation system if you are using is for
the very first time, similarly the management part of cloud is a hack of a task to handle even
when you have basic knowledge of it.
Other Parts:
1. Knowledge of Cloud Computing
2. Deployment of Private Cloud
3. Cloud Administration
4. Knowledge of HTML , CSS3
5. Connection of Cloud with Online Servers
6. Amazon EC2 Cloud Server Dashboard Management
33
9.3.2 Managerial Lessons Learnt
This should be the part to talk about, working in a team is a unique experience for all of the
team members. We learnt the time management part with resource utilization and team work
effect on the project. We experienced the importance the systematic approach towards small
goals and modules of the project which are ultimately came out as a successful plan to
complete the project on time.
34
10. USER MANUAL
10.1 remote login
To use the service of complier through remote login the user have to go through following modules
to gain access. These can be considered as the user manual steps also.
10.1.1 Landing Page
This is home page of the HTML when visiting it will show you the compiler links of
different languages having respective remote login file (.rdc) attached to it which will
connect to their respective instances.
10.1.2 Remote desktop connection file
After downloading the file for specific instance it will provide a login interface on which you
have to login through user access and the id password will be provided beforehand by the
admin to specific user.
10.1.3 Compiler Dashboard
After login the dashboard will open like a normal software running parallel on user’s
hardware without requiring any computational power. It will provide all the functionalities as
well as database for earlier saved work which can be used in collaborative working.
10.1.4 Exit
Just click on the Red Cross button on the right top of the screen which will automatically
disconnect the connection between the instance and user and user get its access back to its pc.
Remote Desktop Connection file which connects server to users pc
35
12. SNAPSHOTS
Amazon Dashboard Management
Instance availability
36
37
38
13. OPENSTACK Cloud Components
python-babel BSD Non-core
cloud-utils-growpart GPLv3 Non-core
crudini GPLv2 Non-core
dib-utils ASL 2.0 Non-core
dibbler-relay GPLv2
technology
preview
dibbler-requestor GPLv2
technology
preview
dibbler-server GPLv2
technology
preview
dibbler-client GPLv2
technology
preview
diskimage-builder ASL 2.0 Non-core
dnsmasq-utils GPLv2 Non-core
erlang-inets ERPL Non-core
erlang-cosProperty ERPL Non-core
erlang-hipe ERPL Non-core
erlang-syntax_tools ERPL Non-core
erlang-snmp ERPL Non-core
erlang-percept ERPL Non-core
erlang-cosFileTransfer ERPL Non-core
erlang-xmerl ERPL Non-core
erlang-cosTime ERPL Non-core
erlang-sasl ERPL Non-core
erlang-edoc ERPL Non-core
erlang-kernel ERPL Non-core
erlang-odbc ERPL Non-core
erlang-compiler ERPL Non-core
erlang-cosEvent ERPL Non-core
erlang-eunit ERPL Non-core
erlang-asn1 ERPL Non-core
erlang-otp_mibs ERPL Non-core
erlang ERPL Non-core
erlang-public_key ERPL Non-core
39
erlang-erl_interface ERPL Non-core
erlang-ssh ERPL Non-core
erlang-eldap ERPL Non-core
erlang-mnesia ERPL Non-core
erlang-crypto ERPL Non-core
erlang-runtime_tools ERPL Non-core
erlang-parsetools ERPL Non-core
erlang-stdlib ERPL Non-core
erlang-diameter ERPL Non-core
erlang-erts ERPL Non-core
erlang-cosTransactions ERPL Non-core
erlang-cosNotification ERPL Non-core
erlang-ssl ERPL Non-core
erlang-os_mon ERPL Non-core
erlang-erl_docgen ERPL Non-core
erlang-tools ERPL Non-core
erlang-cosEventDomain ERPL Non-core
erlang-orber ERPL Non-core
erlang-reltool ERPL Non-core
erlang-sd_notify MIT Non-core
facter ASL 2.0 Non-core
fontawesome-fonts-web OFL ; MIT Non-core
fontawesome-fonts OFL ; MIT Non-core
galera GPLv2 Non-core
hdf5 BSD Non-core
heat-cfntools ASL 2.0 Core
hiera ASL 2.0 Non-core
ipmitool BSD Non-core
jq MIT and ASL 2.0 and CC-BY and GPLv3 Non-core
liberasurecode BSD and CRC32 Non-core
libstemmer BSD Non-core
libxslt-python MIT Non-core
mariadb-galera-common
GPLv2 with exceptions and LGPLv2 and
BSD
Non-core
mariadb-galera-server
GPLv2 with exceptions and LGPLv2 and
BSD
Non-core
memcached BSD Non-core
40
mongodb-server AGPLv3 and zlib and ASL 2.0 Non-core
mongodb AGPLv3 and zlib and ASL 2.0 Non-core
novnc GPLv3 Core
opendaylight EPL-1.0
technology
preview
openstack-aodh-evaluator ASL 2.0
technology
preview
python-aodh ASL 2.0
technology
preview
openstack-aodh-common ASL 2.0
technology
preview
openstack-aodh-api ASL 2.0
technology
preview
openstack-aodh-expirer ASL 2.0
technology
preview
openstack-aodh-listener ASL 2.0
technology
preview
openstack-aodh-notifier ASL 2.0
technology
preview
openstack-aodh-compat ASL 2.0
technology
preview
python-ceilometer ASL 2.0 Core
openstack-ceilometer-collector ASL 2.0 Core
openstack-ceilometer-common ASL 2.0 Core
openstack-ceilometer-ipmi ASL 2.0 Core
openstack-ceilometer-notification ASL 2.0 Core
openstack-ceilometer-api ASL 2.0 Core
openstack-ceilometer-alarm ASL 2.0 Core
openstack-ceilometer-polling ASL 2.0 Core
openstack-ceilometer-central ASL 2.0 Core
openstack-ceilometer-compute ASL 2.0 Core
python-cinder ASL 2.0 Core
openstack-cinder ASL 2.0 Core
openstack-designate-mdns ASL 2.0
technology
preview
openstack-designate-central ASL 2.0
technology
preview
41
openstack-designate-api ASL 2.0
technology
preview
openstack-designate-pool-manager ASL 2.0
technology
preview
openstack-designate-agent ASL 2.0
technology
preview
python-designate ASL 2.0
technology
preview
openstack-designate-common ASL 2.0
technology
preview
openstack-designate-sink ASL 2.0
technology
preview
openstack-designate-zone-manager ASL 2.0
technology
preview
openstack-glance ASL 2.0 Core
python-glance ASL 2.0 Core
openstack-gnocchi-common APL 2.0
technology
preview
openstack-gnocchi-indexer-
sqlalchemy
APL 2.0
technology
preview
openstack-gnocchi-carbonara APL 2.0
technology
preview
openstack-gnocchi-metricd APL 2.0
technology
preview
openstack-gnocchi-statsd APL 2.0
technology
preview
openstack-gnocchi-api APL 2.0
technology
preview
python-gnocchi APL 2.0
technology
preview
openstack-heat-api-cloudwatch ASL 2.0 Core
openstack-heat-api-cfn ASL 2.0 Core
openstack-heat-api ASL 2.0 Core
openstack-heat-common ASL 2.0 Core
openstack-heat-engine ASL 2.0 Core
openstack-heat-templates ASL 2.0 Core
openstack-ironic-common ASL 2.0 Core
openstack-ironic-api ASL 2.0 Core
42
openstack-ironic-conductor ASL 2.0 Core
python-keystone ASL 2.0 Core
openstack-keystone ASL 2.0 Core
python-manila ASL 2.0
technology
preview
openstack-manila ASL 2.0
technology
preview
openstack-manila-share ASL 2.0
technology
preview
openstack-manila-ui ASL 2.0
technology
preview
openstack-neutron-bigswitch ASL 2.0 Core
openstack-neutron-openvswitch ASL 2.0 Core
openstack-neutron-midonet ASL 2.0 Core
openstack-neutron-mellanox ASL 2.0 Core
openstack-neutron ASL 2.0 Core
openstack-neutron-metering-agent ASL 2.0 Core
openstack-neutron-nuage ASL 2.0 Core
openstack-neutron-cisco ASL 2.0 Core
openstack-neutron-oneconvergence-
nvsd
ASL 2.0 Core
openstack-neutron-ml2 ASL 2.0 Core
openstack-neutron-brocade ASL 2.0 Core
openstack-neutron-rpc-server ASL 2.0 Core
openstack-neutron-dev-server ASL 2.0 Core
openstack-neutron-linuxbridge ASL 2.0 Core
openstack-neutron-common ASL 2.0 Core
openstack-neutron-sriov-nic-agent ASL 2.0 Core
openstack-neutron-opencontrail ASL 2.0 Core
python-neutron ASL 2.0 Core
openstack-neutron-embrane ASL 2.0 Core
openstack-neutron-ovsvapp ASL 2.0 Core
python-neutron-tests ASL 2.0 Core
openstack-neutron-ofagent ASL 2.0 Core
openstack-neutron-fwaas ASL 2.0
technology
preview
43
python-neutron-fwaas ASL 2.0
technology
preview
python-neutron-fwaas-tests ASL 2.0
technology
preview
openstack-neutron-lbaas ASL 2.0 Core
python-neutron-lbaas-tests ASL 2.0 Core
python-neutron-lbaas ASL 2.0 Core
openstack-neutron-vpnaas ASL 2.0
technology
preview
python-neutron-vpnaas ASL 2.0
technology
preview
python-neutron-vpnaas-tests ASL 2.0
technology
preview
openstack-nova-scheduler ASL 2.0 Core
openstack-nova-api ASL 2.0 Core
openstack-nova-spicehtml5proxy ASL 2.0 Core
openstack-nova-cert ASL 2.0 Core
openstack-nova-cells ASL 2.0 Core
openstack-nova-serialproxy ASL 2.0 Core
openstack-nova ASL 2.0 Core
openstack-nova-console ASL 2.0 Core
openstack-nova-common ASL 2.0 Core
openstack-nova-conductor ASL 2.0 Core
openstack-nova-compute ASL 2.0 Core
python-nova ASL 2.0 Core
openstack-nova-network ASL 2.0 Core
openstack-nova-novncproxy ASL 2.0 Core
openstack-nova-objectstore ASL 2.0 Core
openstack-packstack ASL 2.0 and GPLv2 Core
openstack-packstack-puppet ASL 2.0 and GPLv2 Core
openstack-puppet-modules ASL 2.0 and GPLv2 and GPLv3 Non-core
openstack-rally ASL 2.0
technology
preview
openstack-sahara-common ASL 2.0 Core
openstack-sahara ASL 2.0 Core
python-sahara ASL 2.0 Core
openstack-sahara-engine ASL 2.0 Core
44
openstack-sahara-api ASL 2.0 Core
python-sahara-tests ASL 2.0 Core
openstack-selinux GPLv2 Core
openstack-swift-proxy ASL 2.0 Core
openstack-swift-object ASL 2.0 Core
openstack-swift-account ASL 2.0 Core
openstack-swift ASL 2.0 Core
openstack-swift-container ASL 2.0 Core
openstack-swift-plugin-swift3 ASL 2.0 Non-core
openstack-tempest ASL 2.0 Core
openstack-trove-conductor ASL 2.0
technology
preview
openstack-trove ASL 2.0
technology
preview
openstack-trove-api ASL 2.0
technology
preview
openstack-trove-taskmanager ASL 2.0
technology
preview
openstack-trove-common ASL 2.0
technology
preview
openstack-trove-images ASL 2.0
technology
preview
python-trove ASL 2.0
technology
preview
openstack-trove-guestagent ASL 2.0
technology
preview
openstack-utils ASL 2.0 Non-core
openstack-zaqar ASL 2.0
technology
preview
python-openvswitch ASL 2.0 and LGPLv2+ and SISSL Non-core
openvswitch ASL 2.0 and LGPLv2+ and SISSL Non-core
openvswitch-dpdk ASL 2.0 and LGPLv2+ and SISSL
technology
preview
oz LGPLv2 Non-core
plotnetcfg GPLv2+ Non-core
puppet ASL 2.0 Non-core
puppet-server ASL 2.0 Non-core
45
pyparsing MIT Non-core
pysendfile MIT Non-core
pysnmp BSD Non-core
pystache MIT Non-core
python-Bottleneck BSD Non-core
python-PyMySQL MIT Non-core
python-UcsSdk ASL 2.0 Non-core
python-XStatic MIT Non-core
python-XStatic-Angular MIT Non-core
python-XStatic-Angular-Bootstrap MIT Non-core
python-XStatic-Angular-Gettext MIT Non-core
python-XStatic-Angular-Mock MIT Non-core
python-XStatic-Angular-
lrdragndrop
MIT Non-core
python-XStatic-Bootstrap-
Datepicker
ASL 2.0 Non-core
python-XStatic-Bootstrap-SCSS MIT Non-core
python-XStatic-D3 BSD Non-core
python-XStatic-Font-Awesome OFL and MIT Non-core
python-XStatic-Hogan ASL 2.0 Non-core
python-XStatic-JQuery-Migrate MIT Non-core
python-XStatic-JQuery-TableSorter MIT Non-core
python-XStatic-JQuery-quicksearch MIT Non-core
python-XStatic-JSEncrypt MIT Non-core
python-XStatic-Jasmine MIT Non-core
python-XStatic-Magic-Search ASL 2.0 Non-core
python-XStatic-QUnit MIT Non-core
python-XStatic-Rickshaw MIT Non-core
python-XStatic-Spin MIT Non-core
python-XStatic-bootswatch MIT Non-core
bootswatch-common MIT Non-core
bootswatch-fonts MIT Non-core
python-XStatic-jQuery MIT Non-core
python-XStatic-jquery-ui CCO Non-core
python-XStatic-mdi OFL Non-core
mdi-fonts OFL Non-core
mdi-common OFL Non-core
46
roboto-fontface-fonts ASL 2.0 Non-core
python-XStatic-roboto-fontface ASL 2.0 Non-core
roboto-fontface-common ASL 2.0 Non-core
python-XStatic-smart-table MIT Non-core
python-XStatic-termjs MIT Non-core
python-alembic MIT Non-core
python-amqp LGPLv2+ Non-core
python-amqplib LGPLv2+ Non-core
python-anyjson BSD Non-core
python-appdirs MIT Non-core
python-automaton ASL 2.0 Non-core
python-barbicanclient ASL 2.0 Non-core
python-boto MIT Non-core
python-cachetools MIT Non-core
python-castellan ASL 2.0 Non-core
python-ceilometerclient ASL 2.0 Core
python-ceilometermiddleware ASL 2.0 Non-core
python-cffi MIT Non-core
python-cheetah MIT Non-core
python-cinderclient ASL 2.0 Core
python-cliff ASL 2.0 Non-core
python-cliff-tablib ASL 2.0 Non-core
python-cmd2 MIT Non-core
python-contextlib2 Python Non-core
python-croniter MIT Non-core
python-crypto Public Domain and Python Non-core
python-cryptography ASL 2.0 or BSD Non-core
python-debtcollector ASL 2.0 Non-core
python-designateclient ASL 2.0
technology
preview
python-django-bash-completion BSD Non-core
python-django BSD Non-core
python-django-appconf BSD Non-core
python-django-compressor MIT Non-core
openstack-dashboard-theme ASL 2.0 and BSD Core
python-django-horizon ASL 2.0 and BSD Core
openstack-dashboard ASL 2.0 and BSD Core
47
python-django-openstack-auth BSD Non-core
python-django-pyscss BSD Non-core
python-docutils
Public Domain and BSD and Python and
GPLv3+
Non-core
python-dogpile-cache BSD Non-core
python-dogpile-Core BSD Non-core
python-ecdsa MIT Non-core
python-elasticsearch ASL 2.0 Non-core
python-eventlet MIT Non-core
python-extras MIT Non-core
python-falcon ASL 2.0 Non-core
python-fasteners ASL 2.0 Non-core
python-fixtures ASL 2.0 or BSD Non-core
python-futures BSD Non-core
python-futurist ASL 2.0 Non-core
python-glance-store ASL 2.0 Non-core
python-glanceclient ASL 2.0 Core
python-gnocchiclient ASL 2.0
technology
preview
python-heatclient ASL 2.0 Core
python-httplib2 MIT Non-core
python-idna BSD and Python and Unicode Non-core
python-ipaddress Python Non-core
python-ironicclient ASL 2.0 Core
python-iso8601 MIT Non-core
python-jsonpatch BSD Non-core
python-jsonpath-rw ASL 2.0 Non-core
python-jsonpath-rw-ext ASL 2.0 Non-core
python-jsonrpclib ASL 2.0 Non-core
python-jsonschema MIT Non-core
python-junitxml LGPLv3 Non-core
python-kafka ASL 2.0 Non-core
python-kazoo ASL 2.0 Non-core
python-keyring MIT and Python Non-core
python-keystoneauth1 ASL 2.0 Non-core
python-keystoneclient ASL 2.0 Core
python-keystoneclient-kerberos ASL 2.0 Core
48
python-keystonemiddleware ASL 2.0 Core
python-kombu BSD and Python Non-core
python-ldappool MPLv1.1 and GPLv2+ and LGPLv2+ Non-core
python-lesscpy MIT Non-core
python-linecache2 Python Non-core
python-lockfile MIT Non-core
python-logutils BSD Non-core
python-lxml BSD Non-core
python-manilaclient ASL 2.0
technology
preview
python-markdown BSD Non-core
python-memcached Python Non-core
python-migrate MIT Non-core
python-mimeparse MIT Non-core
python-mock BSD Non-core
python-monotonic ASL 2.0 Non-core
python-msgpack ASL 2.0 Non-core
python-ncclient ASL 2.0 Non-core
python-netaddr BSD Non-core
python-netifaces MIT Non-core
python-networking-bigswitch ASL 2.0 Non-core
openstack-neutron-bigswitch-lldp ASL 2.0 Non-core
openstack-neutron-bigswitch-agent ASL 2.0 Non-core
python-networking-cisco ASL 2.0 Non-core
python-networking-odl ASL 2.0
technology
preview
python-networking-vmware-nsx ASL 2.0 Non-core
python-networkx-Core BSD Non-core
python-networkx BSD Non-core
python-neutronclient ASL 2.0 Core
python-novaclient ASL 2.0 Core
python-numexpr MIT Non-core
python-oauthlib BSD Non-core
python-openstackclient ASL 2.0 Core
python-os-brick ASL 2.0 Non-core
python-os-client-config ASL 2.0 Non-core
python-os-testr ASL 2.0 Non-core
49
python-oslo-cache ASL 2.0 Non-core
python-oslo-concurrency ASL 2.0 Non-core
python-oslo-config ASL 2.0 Non-core
python-oslo-context ASL 2.0 Non-core
python-oslo-db ASL 2.0 Non-core
python-oslo-i18n ASL 2.0 Non-core
python-oslo-log ASL 2.0 Non-core
python-oslo-messaging ASL 2.0 Non-core
python-oslo-middleware ASL 2.0 Non-core
python-oslo-policy ASL 2.0 Non-core
python-oslo-reports ASL 2.0 Non-core
python-oslo-rootwrap ASL 2.0 Non-core
python-oslo-serialization ASL 2.0 Non-core
python-oslo-service ASL 2.0 Non-core
python-oslo-sphinx ASL 2.0 Non-core
python-oslo-utils ASL 2.0 Non-core
python-oslo-versionedobjects ASL 2.0 Non-core
python-oslo-vmware ASL 2.0 Non-core
python-osprofiler ASL 2.0 Non-core
python-pandas BSD Non-core
python-paramiko LGPLv2+ Non-core
python-passlib BSD and Beerware and Copyright only Non-core
python-paste-deploy MIT Non-core
python-pathlib MIT Non-core
python-pbr ASL 2.0 Non-core
python-pecan BSD Non-core
python-pint BSD Non-core
python-posix_ipc BSD Non-core
python-prettytable BSD Non-core
python-psutil BSD Non-core
python-pyasn1 BSD Non-core
python-pyasn1-modules BSD Non-core
python-pycadf ASL 2.0 Non-core
python-pyeclib BSD Non-core
python-pyghmi ASL 2.0 Non-core
python-pygments BSD Non-core
python-pymemcache ASL 2.0 Non-core
50
python-pymongo-gridfs ASL 2.0 and MIT Non-core
python-bson ASL 2.0 and MIT Non-core
python-pymongo ASL 2.0 and MIT Non-core
python-pysaml2 ASL 2.0 Non-core
python-pytimeparse MIT Non-core
python-qpid ASL 2.0 Non-core
python-redis MIT Non-core
python-repoze-lru BSD Non-core
python-repoze-who BSD Non-core
python-requests ASL 2.0 Non-core
python-requests-kerberos MIT Non-core
python-requests-oauthlib ISC Non-core
python-retrying ASL 2.0 Non-core
python-rfc3986 ASL 2.0 Non-core
python-routes BSD Non-core
python-ryu Apache-2.0
technology
preview
python-saharaclient ASL 2.0 Core
python-scciclient ASL 2.0 Non-core
python-scss MIT Non-core
python-semantic_version BSD Non-core
python-simplegeneric Python or ZPLv2.1 Non-core
python-simplejson (MIT or AFL) and (MIT or GPLv2) Non-core
python-singledispatch MIT Non-core
python-speaklater BSD Non-core
python-sphinx
BSD and Public Domain and Python and
(MIT or GPLv2)
Non-core
python-sqlalchemy MIT Non-core
python-sqlalchemy-utils BSD Non-core
python-sqlite3dbm ASL 2.0 Non-core
python-sqlparse BSD Non-core
python-stevedore ASL 2.0 Non-core
python-swiftclient ASL 2.0 Non-core
python-sysv_ipc GPLv3+ Non-core
python-tables BSD Non-core
python-tablib MIT Non-core
python-taskflow ASL 2.0 Non-core
51
python-tempest-lib ASL 2.0 Core
python-testrepository ASL 2.0 Non-core
python-testresources ASL 2.0 and BSD and GPLv2+ Non-core
python-testscenarios ASL 2.0 and BSD Non-core
python-testtools MIT Non-core
python-tooz ASL 2.0 Non-core
python-traceback2 Python Non-core
python-trollius ASL 2.0 Non-core
python-troveclient ASL 2.0
technology
preview
python-unicodecsv BSD Non-core
python-unittest2 BSD Non-core
python-urllib3 MIT Non-core
python-versiontools LGPLv3 Non-core
python-voluptuous BSD Non-core
python-warlock ASL 2.0 Non-core
python-webob MIT Non-core
python-websockify LGPLv3 Non-core
python-webtest MIT Non-core
python-wrapt BSD Non-core
python-wsme MIT Non-core
python-zaqarclient ASL 2.0 Non-core
python-zope-interface ZPLv2.1 Non-core
qemu-kvm-rhev GPLv2+ and LGPLv2+ and BSD Non-core
libcacard-rhev GPLv2+ and LGPLv2+ and BSD Non-core
qemu-kvm-tools-rhev GPLv2+ and LGPLv2+ and BSD Non-core
qemu-img-rhev GPLv2+ and LGPLv2+ and BSD Non-core
libcacard-tools-rhev GPLv2+ and LGPLv2+ and BSD Non-core
qemu-kvm-common-rhev GPLv2+ and LGPLv2+ and BSD Non-core
qpid-cpp-server ASL 2.0 ; LGPL 2.1+ Non-core
qpid-cpp-server-ha ASL 2.0 ; LGPL 2.1+ Non-core
qpid-cpp-client ASL 2.0 ; LGPL 2.1+ Non-core
python-qpid-proton ASL 2.0 Non-core
qpid-proton-c ASL 2.0 Non-core
python-qpid-qmf ASL 2.0 Non-core
qpid-qmf ASL 2.0 Non-core
qpid-tools ASL 2.0 Non-core
52
rabbitmq-server MPLv1.1 Non-core
redis BSD Non-core
ruby-augeas LGPLv2+ Non-core
ruby-shadow Public Domain Non-core
rubygem-rgen MIT Non-core
sahara-image-elements ASL 2.0 Core
saslwrapper ASL 2.0 Non-core
python-saslwrapper ASL 2.0 Non-core
sos GPLv2+ Core
subunit-filters ASL 2.0 or BSD Non-core
python-subunit ASL 2.0 or BSD Non-core
subunit ASL 2.0 or BSD Non-core
v8 BSD Non-core
web-assets-filesystem MIT ; Public Domain Non-core
yaml-cpp MIT Non-core
These small components combines together to make the whole cloud working. These have different
different functions to perform when it comes to administration purpose of OPENSTACK cloud.
53
13. BIBLIOGRAPHY
http://getcloudify.org/2014/07/18/openstack-wiki-open-cloud.html
https://ap-southeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-southeast-1
docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html
https://access.redhat.com/documentation/en/red-hat-openstack-platform/8/package-
manifest/package-manifest

More Related Content

Similar to openstack_report2016

Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot DocumentationDeepAnshu Sharma
 
Private Network Project for Colleges
Private Network Project for CollegesPrivate Network Project for Colleges
Private Network Project for CollegesAditya Jain
 
Multicast chat with file and desktop sharing
Multicast chat with file and desktop sharingMulticast chat with file and desktop sharing
Multicast chat with file and desktop sharingKhagendra Chapre
 
2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...
2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...
2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...Papitha Velumani
 
Java Developer Working at CSIR-URDIP
Java Developer Working at CSIR-URDIPJava Developer Working at CSIR-URDIP
Java Developer Working at CSIR-URDIPLaxmi Narayan Khatri
 
Anirban Nath resume
Anirban Nath resumeAnirban Nath resume
Anirban Nath resumeAnirban Nath
 
TECHNICAL RESOURCE PORTAL_JUHI
TECHNICAL RESOURCE PORTAL_JUHITECHNICAL RESOURCE PORTAL_JUHI
TECHNICAL RESOURCE PORTAL_JUHIJuhi Sharma
 
Aasheesh_RHCA&CloudAdmin30Dec16
Aasheesh_RHCA&CloudAdmin30Dec16Aasheesh_RHCA&CloudAdmin30Dec16
Aasheesh_RHCA&CloudAdmin30Dec16Aasheesh Ranjan
 
AI OpenPOWER Academia Discussion Group
AI OpenPOWER Academia Discussion Group AI OpenPOWER Academia Discussion Group
AI OpenPOWER Academia Discussion Group Ganesan Narayanasamy
 
Report for-smart-trash-project
Report for-smart-trash-project Report for-smart-trash-project
Report for-smart-trash-project Aimen Hajri
 
Research and Application of Development Model of Information Service for IOT ...
Research and Application of Development Model of Information Service for IOT ...Research and Application of Development Model of Information Service for IOT ...
Research and Application of Development Model of Information Service for IOT ...TELKOMNIKA JOURNAL
 

Similar to openstack_report2016 (20)

Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot Documentation
 
Private Network Project for Colleges
Private Network Project for CollegesPrivate Network Project for Colleges
Private Network Project for Colleges
 
Amarpal
AmarpalAmarpal
Amarpal
 
UpdatedResume
UpdatedResumeUpdatedResume
UpdatedResume
 
inernship ppt.ppt
inernship ppt.pptinernship ppt.ppt
inernship ppt.ppt
 
Multicast chat with file and desktop sharing
Multicast chat with file and desktop sharingMulticast chat with file and desktop sharing
Multicast chat with file and desktop sharing
 
Fulltime_Resume
Fulltime_ResumeFulltime_Resume
Fulltime_Resume
 
2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...
2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...
2014 ieee project list for free, ieee 2014 project abstracts,ieee projects li...
 
santosh_kumar
santosh_kumarsantosh_kumar
santosh_kumar
 
Raghavendra Gupta Resume
Raghavendra  Gupta  ResumeRaghavendra  Gupta  Resume
Raghavendra Gupta Resume
 
Java Developer Working at CSIR-URDIP
Java Developer Working at CSIR-URDIPJava Developer Working at CSIR-URDIP
Java Developer Working at CSIR-URDIP
 
Industrial Training report on java
Industrial  Training report on javaIndustrial  Training report on java
Industrial Training report on java
 
Anirban Nath resume
Anirban Nath resumeAnirban Nath resume
Anirban Nath resume
 
TECHNICAL RESOURCE PORTAL_JUHI
TECHNICAL RESOURCE PORTAL_JUHITECHNICAL RESOURCE PORTAL_JUHI
TECHNICAL RESOURCE PORTAL_JUHI
 
Aasheesh_RHCA&CloudAdmin30Dec16
Aasheesh_RHCA&CloudAdmin30Dec16Aasheesh_RHCA&CloudAdmin30Dec16
Aasheesh_RHCA&CloudAdmin30Dec16
 
AI OpenPOWER Academia Discussion Group
AI OpenPOWER Academia Discussion Group AI OpenPOWER Academia Discussion Group
AI OpenPOWER Academia Discussion Group
 
Report for-smart-trash-project
Report for-smart-trash-project Report for-smart-trash-project
Report for-smart-trash-project
 
Vinny_Resume
Vinny_ResumeVinny_Resume
Vinny_Resume
 
Research and Application of Development Model of Information Service for IOT ...
Research and Application of Development Model of Information Service for IOT ...Research and Application of Development Model of Information Service for IOT ...
Research and Application of Development Model of Information Service for IOT ...
 
firozreport.pdf
firozreport.pdffirozreport.pdf
firozreport.pdf
 

openstack_report2016

  • 1. i CAPSTONE PROJECT REPORT Project Term January-April, 2016 ON Compiler as a Service-A Private Cloud Submitted by:- Abhinav Registration Number: 11206526 Umesh Kumar Registration Number: 11205670 Anil Chamoli Registration Number: 11200080 Manvender Singh Registration Number: 11205653 Project Group Number: CSERGC0108 Course Code: CSE445 Under the Guidance of Pradeep Kumar (Lecturer) School of Computer Science and Engineering
  • 2. ii DECLARATION We hereby declare that the project work entitled (“Compiler as a Service-A Private Cloud”) is an authentic record of our own work carried out as requirements of Capstone Project for the award of B.Tech degree in CSE from Lovely Professional University, Phagwara, under the guidance of Pradeep Kumar, during January to April 2016. All the information furnished in this capstone project report is based on our own intensive work and is genuine. Project Group Number: CSERGC0069 Name of Student 1: Abhinav Registration Number: 11206526 Name of Student 2: Umesh Kumar Registration Number: 11205670 Name of Student 3: Anil chamoli Registration Number: 11200080 Name of Student 4: Manvender Singh Bhati Registration Number: 11205653 (Signature of Student 1) Date: (Signature of Student 2) Date: (Signature of Student 3) Date: (Signature of Student 4) Date:
  • 3. iii CERTIFICATE This is to certify that the declaration statement made by this group of students is correct to the best of my knowledge and belief. They have completed this Capstone Project under my guidance and supervision. The present work is the result of their original investigation, effort and study. No part of the work has ever been submitted for any other degree at any University. The Capstone Project is fit for the submission and partial fulfilment of the conditions for the award of B.Tech degree in CSE from Lovely Professional University, Phagwara. Name of the Mentor: Pradeep Kumar Signature: Designation: lecturer School of Computer Science and Engineering, Lovely Professional University, Phagwara, Punjab. Date:
  • 4. iv TOPIC APPROVAL PERFORMA School of Computer Science and Engineering Program: 1202: B.Tech. – CSE COURSE CODE : CSE445 REGULAR/BACKLOG : Regular GROUP NUMBER : CSERGC0108 Supervisor Name : Pradeep Kumar UID : 16473 Designation : Lecturer Qualification : ________________________ Research Experience : ________________________ SR.NO. NAME OF STUDENT REGISTRATION NO BATCH SECTION CONTACT NUMBER 1 Abhinav 11206526 2012 K1203 8437317557 2 Umesh Kumar 11205670 2012 K1213 9915291110 3 Manvender Singh Bhati 11205653 2012 K1202 8437505395 4 Anil Chamoli 11200080 2012 K1211 9855308576 SPECIALIZATION AREA : System Architecture and Design Supervisor Signature: ___________________ PROPOSED TOPIC : Compiler As A Service-A Private Cloud
  • 5. v Qualitative Assessment of Proposed Topic by PAC Sr.No. Parameter Rating (out of 10) 1 Project Novelty: Potential of the project to create new knowledge 7.25 2 Project Feasibility: Project can be timely carried out in-house with low-cost and available resources in 6.75 the University by the students. 3 Project Academic Inputs: Project topic is relevant and makes extensive use of academic inputs in UG 7.00 program and serves as a culminating effort for core study area of the degree program. 4 Project Supervision: Project supervisor’s is technically competent to guide students, resolve any issues, 7.00 and impart necessary skills. 5 Social Applicability: Project work intends to solve a practical problem. 6.75 6 Future Scope: Project has potential to become basis of future research work, publication or patent. 7.00 PAC Committee Members PAC Member 1 Name: Gaurav Pushkarna UID: 11057 Recommended (Y/N): Yes PAC Member 2 Name: Er.Dalwinder Singh UID: 11265 Recommended (Y/N): Yes PAC Member 3 Name: Harwant Singh Arri UID: 12975 Recommended (Y/N): NA PAC Member 4 Name: Balraj Singh UID: 13075 Recommended (Y/N): NA PAC Member 5 Name: Mandeep Singh UID: 13742 Recommended (Y/N): Yes DAA Nominee Name: Kanwar Preet Singh UID: 15367 Recommended (Y/N): Yes Final Topic Approved by PAC: Compiler As A Service-A Private Cloud Overall Remarks: Approved PAC CHAIRPERSON Name: 11024::Amandeep Nagpal Approval Date: 11 Mar 2016
  • 6. vi ACKNOWLEDGMENT We are sincerely thankful to all those people who have been giving us any kind of assistance in the making of this project. We express our gratitude to Mr. Pradeep Kumar, who has through his vast experience and knowledge has been able to guide us, both ably and successfully towards the completion of the project. I express my gratitude to Lovely Professional University, Punjab. We would hereby, make most of the opportunity by expressing my sincerest thanks to all our faculties whose teachings gave us conceptual understanding and clarity of comprehension, which ultimately made our job more easy. Credit also goes to all our friends whose encouragement kept us in good stead. Their continuous support has given us the strength and confidence to complete the project without any difficulties. Last of all but not the least we would like to acknowledge our gratitude to the respondents without whom this project would have been incomplete.
  • 7. 7 TABLE OF CONTENT Page 1. INTRODUCTION 8 2. PROBLEM STATEMENT 10 3. EXISTING SYSTEM 11 4. PROBLEM ANALYSIS 15 5. SOFTWARE REQUIREMENT ANALYSIS 19 6. DESIGN 21 7. TESTING 28 8. IMPLEMENTATION 31 9. PROJECT LEGACIES 33 10. USER MANUAL 35 11. SNAPSHOTS 36 12. CLOUD COMPONENTS 38 13. BIBLIOGRAPHY 53
  • 8. 8 1. INTRODUCTION The Cloud Computing is said to be the technology which is the next big thing after artificial intelligence. It was an idea of NASA which was commercially brought into the market by the technology giant Amazon. It was a simple idea of resource utilization which then made way for a lot of other services that we see now a days attach to cloud computing. In today’s world when we talk about technology improvement then cloud computing must be in top three, the way developers have improved the technology in past three to four years it suddenly become a fashion for all the enterprise to have their own private cloud. Openstack Cloud platform is one of the first open source cloud platform which can easily be modified and provisioned as per requirement. It was developed by Rackspace foundation which works under NASA in the United States of America. It meant to server as a purpose of easy modification in cloud administration, but the open source quality of it made Openstack popular among all the Linux based OS providers. Red Hat made tie-ups with Rackspace to develop it further with a collaborative approach towards making it the biggest open source cloud platform. At Present it has wide range of customer including 15 companies form fortune 500. 1.1 Components of Openstack: There are basically nine components of OpenStack (two of which were just included in the last Icehouse release), below is a quick breakdown of what they are called in OpenStack speak, and what they do. 1.1.1 OpenStack Compute (Nova) OpenStack compute (codename: Nova) is the component which allows the user to create and manage virtual servers using the machine images. It is the brain of the Cloud. OpenStack compute provisions and manages large networks of virtual machines. 1.1.2 OpenStack Networking (Neutron) It is a pluggable, scalable and API-driven system for managing networks. OpenStack networking is useful for VLAN management, management of IP addresses to different VMs and management of firewalls using these components. 1.1.3 Identity Service (Keystone) This provides a central directory of users mapped to the OpenStack services. It is used to provide an authentication and authorization service for other OpenStack services.
  • 9. 9 1.1.4 Openstack image Services This provides the discovery, registration and delivery services for the disk and server images.it stores and retrieves the virtual machine disk image 1.1.5 Orchestration Heat This component manages multiple Cloud applications through an OpenStack-native REST API and a Cloud Formation-compatible Query API. 1.1.6 Database as a Service (Trove) Trove is Database as a Service for OpenStack. It's designed to run entirely on OpenStack, with the goal of allowing users to quickly and easily utilize the features of a relational database without the burden of handling complex administrative tasks. Cloud users and database administrators can provision and manage multiple database instances as needed. Initially, the service will focus on providing resource isolation at high performance while automating complex administrative tasks including deployment, configuration, patching, backups, restores, and monitoring. 1.1.7 Messaging as a Service (Marconi) Marconi is a cloud messaging and notification service for developers building applications on top of OpenStack. The service features a web-friendly HTTP API, which developers can use to send messages between the various components of their SaaS and mobile applications, using a variety of communication patterns. Underlying the API is an efficient messaging engine designed with scalability and security in mind. 1.1.8 OpenStack Telemetry Service (Ceilometer) It monitors the usage of the Cloud services and decides the billing accordingly. This component is also used to decide the scalability and obtain the statistics regarding the usage.
  • 10. 10 2. PROBLEM STATEMENT Compilers are used to run programs and convert them from a text format to executable format. Compiler that is to be installed manually on every system physically requires a lot of space and also configuring of it if not installed using default parameters. Also once a program is compiled it becomes platform dependent. It is also not easy to carry the same program code to multiple systems if situation doesn’t permit the usage of a single system. Another drawback is that we would need to install a different complier on each language on which we wish to work. Our implementation is a private cloud on which the application would be hosted. The software would be provided to the end user using a SAAS cloud. The software would contain a system that has a text editor and a terminal. The user would be given an option to select the language in which he wants to compile the program. The software will compile the program and return the output to the user. Additional functionalities such as monitoring of the system and collaborative development can be added as needed. The major gap they experienced was the frequent change of technology makes it difficult for any organization to upgrade their laboratories, so the available systems find it difficult to run the new compilers and simulators as they are less powered. From This project we don’t have to upgrade the all existing system rather we will upgrade only the server and all other systems can access the compiler services from the private cloud which will be working on server within the Local Area Network. The Expected Outcome of this project will be such that we can access compiler of our choice and need from anywhere within the campus using any device which is connected to Local Area Network of our University (i.e. LPU Wireless). We can compile and run any program of any language even using our smartphone screen with help of Microsoft Remote client Application.
  • 11. 11 3. EXISTING SYSTEM 3.1 Introduction Our problem is directly concentrating the traditional present systems installed in our computer labs .computers in labs are placed in ring topology and connected to internet .access to all computers are given through user id’s through which students get access to the system files and compiler program files and which result in non-operability of compilers in the pc . As most of the times the pc are unable to open software because of issues related to the system files or the configuration of the compiler. Which leads to delay in class teaching time, reduction in understanding of students as most pc are not able to even run the soft wares and difficulties faced at the time evaluation. 3.2 Existing Software 1) Online platform: PHP websites provides online coding and output space for compiling the code. 1.1) ideone.com: provides users to use their websites where they can compile there code in different languages .they also provides tutorial to learn a language and steps in making the project in that language. 2) Cloud Platform: there are products like our specially designed or talking the problems like cost reduction, high collaboration and platform independence in some giant companies. 2.1 Microsoft Roslyn: Roslyn isn't services in the sense of software-as-a-service (SaaS), platform-as-a-service (PaaS), or similar cloud offerings. Rather, it's services in the sense of Windows services. Roslyn is a complete reengineering of Microsoft's .Net compiler toolchain in a new way, such that each phase of the code compilation process is exposed as a service that can be consumed by other applications. Specially designed for coding projects in visual basic and c#. .
  • 12. 12 3.3 DFD for Existing Systems Present system is based on simple architecture of computer as hardware is over headed by kernel on which we can have different types of os or platform. On this platform number of different apps and compilers are installed and used for services.
  • 13. 13 3.4 Improvements to be done Our new cloud based compiler just completely eliminate the dependency of the app on hardware, kernel. Which means you need not to have the high configuration hardware to run a compiler we provide you with a remote interface on which that compiler is deployed. Cloud based compiler mainly deals with providing a platform to compile and execute programs that is not dependent on any platform related restriction or complication. Present The cloud compiler can be used by any user who has subscribed to the compiler and can use it for a specific period of time. The functionalities that are provided by the cloud are:- Compiler on go: The cloud will have an IDE where the source code can be written. The code can be implemented on the cloud itself and the output can be viewed at same time File management system: The source code can be saved in a text format or in .java format in the space that is allocated to each user. The user can extended his storage space by buying a bigger storage space. Present the various advantage and disadvantage of the systems are:- Advantages:  No need to download the SDK of any compiler.  No issues of setting path variables.  Elegant and simple to use GUI for better coding.  Support from other users in forums
  • 14. 14 4. PROBLEM ANALYSIS 4.1 Problem Definition Now a days it is common utilization of Internet, in this web world every one of the things are on the web. Cloud computing model is for empowering helpful and in addition as needed network access to a common pool of configurable computing assets which can be immediately provisioned and discharged with least administration endeavours. So we develop software as a service like online compiler. This research main goal is we can easily write programs, compile and debug online. Using these cloud compilers we can reduce the storage space and movability, centralized compiler using cloud computing that helps to save the time, storage and cost using this concept. So that it’s a most appropriate tool to compile the code, remove the errors and debug it. Using these compilers will provide online compiler service, like SaaS installation of separate compiler on each machine is avoided. Once we use this application in cloud we can access the compiler from the web. So that we can obtain the common errors and analysis of time complexity of different compilers 4.2 Feasibility Study The main objective behind performing the feasibility study is to determine whether it would be possible to develop the project. The feasibility study activity involves analysis of the problem and collection of all relevant information relating to the product such as the different data items which would be input to the system, the processing required to be carried out on these data. The result of our feasibility study is a kind of formal proposal which will explain in detail the nature and the scope of the proposed work. For our project 3 types of feasibility study was performed which are: 1. Economic Feasibility 2. Technical Feasibility 3. Operational Feasibility
  • 15. 15 4.2.1 Economical Feasibility Economic Feasibility in case our project was to make sure that developing the project will be within the cost of members of the group. It is commonly known as cost/benefit analysis in software industry as it is the process in which cost of developing and maintaining the project is determined and the benefits that we will get by developing the project is also determined. If benefits overtake the cost the decision to develop the project is made otherwise project is rejected. The economic feasibility study of our project covered: 1. The cost of hardware. 2. The Cost of API’s and other network services. 3. Cost of Software used for deploying cloud. Our proposed application is economically feasible because: 1. Our group members have the android phone so the cost of hardware needed to test the system was not in consideration. 2. Software needed to developing the cloud is Open stack which is easily available. Technical Feasibility Technical Feasibility activity involves is it possible to develop our project from technical perspective that is technology exists to develop the project and development team will be able to develop the project. Things we must be taking care during the technical feasibility of our project are: Knowledge of Open stack environment how thing work. Knowledge of how we have to deploy a cloud and able to solve all the problem that come during the process. 4.2.3 Operational Feasibility It is an evaluation to determine whether the system is operationally acceptable. It also determines how the proposed system will fit with current operational system. Operational feasibility is dependent on human resources available for the project and involves projecting whether the system will be used if it is developed and implemented.
  • 16. 16 4.3 Project Plan Aim: - The major gap they experienced was the frequent change of technology makes it difficult for any organization to upgrade their laboratories, so the available systems find it difficult to run the new compilers and simulators as they are less powered. From This project our aim was that we don’t have to upgrade the all existing system rather we will upgrade only the server and all other systems can access the compiler services from the private cloud which will be working on server within the Local Area Network Project Goals: A project is successful when the needs of the stakeholders have been met. A stakeholder is anybody directly, or indirectly impacted by the project. It is important to identify the users in your project. It is not always easy to identify the users of a project, particularly those impacted indirectly. Examples of users are: The project sponsor. The user who needs compiler services. The project manager and project team. Output: Interface showing the compiler list User is able to access all the compiler Remote login is made easy Different instances are available to user User is able to request for provisioning of resources Platform as a Service is added successfully History of user is recorded Files once saved under accounts are safe to retrieve Can access internet through remote login instance Dashboard for Openstack is working fine Dashboard for Amazon server is working fine
  • 17. 17 Quality criteria: Product outcomes define the quality of product like: ● Is it better than other products? ● Does it consume too much resources like memory, storage and processor? We need to take special care of these factors as we are developing a mobile application and mobile phone has limited resources  Does the webpage is taking time to load  Does it fulfil the need of the users?  Does it provide efficient output? Resources: It defines what type of resources we need to develop and test our application. The resources needed in our application:  Required Skills  Red Hat Linux (minimum 7)  Software for Development (Openstack Repo Files)  Remote Login Application for mobile phones  Amazon online Server access  Amazon Dashboard knowledge
  • 18. 18 5. SOFTWARE REQUIREMENT ANALYSIS 5.1 Introduction In order to develop this project there are several software requirement needs to be fulfilled. As we are supposed to provide services over cloud we need to have our own cloud deployed and for access of services we needs servers to provide remote login to our instances which are running on cloud. 5.1.1 Cloud Deployment 1. Red hat access account 2. Red hat Enterprise Linux 7.2 3. Openstack Repository for RHEL 7.2 Red Hat Access Account We need to have a redhat.com account to access their core cloud repo files and to get access of their own resources for cloud management. In case of technical assistance this is helpful to have an account. Red Hat Enterprise Linux 7.2 We need the Red Hat Enterprise Linux for deployment of the Openstack cloud. As we know that it’s an open source cloud and can be deployed over any of the Linux, we choose redhat because of the tie-ups the cloud provider shares with redhat and amazon. Openstack Repository for RHEL 7.2 These repo files are the small software which collectively create a cloud. There are repo file for every kind of the work that the compiler do. Like we are having repo file for Database connections, Networking, Interconnections of different connection between various cloud components. Overview The proposed work is such which requires Redhat Linux operating system and the open source openstack platform which is easily available. We have our own ‘good configuration Laptops’ which can run those open source software, so it is feasible to carry out proposed work.
  • 19. 19 5.1.2 Remote Login 1. Amazon EC2 Account 2. Remote Amazon Server Amazon EC2 Account Amazon is having all the important components that helps in building a cloud platform. Amazon shares a healthy relationship with Rackspack foundations which is the main creator of openstack cloud. So here in our project we require an account on amazon cloud services so that we can use their components as per our needs. Remote Amazon Server Yes this Part is important to discuss because we have taken access of Amazon Server to provide our cloud platform the exposure to WWW. As we require our deployed instances to be able run remotely we need online servers to give our cloud the ability of being accessed remotely anywhere in the world. 5.2 General Description 5.2.1 Cloud computing Cloud computing, also on-demand computing, is a kind of Internet-based computing that provides shared processing resources and data to computers and other devices on demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services),which can be rapidly provisioned and released with minimal management effort. Cloud computing and storage solutions provide users and enterprises with various capabilities to store and process their data in third-party data centres. It relies on sharing of resources to achieve coherence and economy of scale, similar to a utility (like the electricity grid) over a network. Middleware and key applications. 5.2.2 Openstack cloud OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacentre, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web inter 5.2.3 Red hat Red Hat is the world's leading provider of open source solutions, using a community- powered approach to provide reliable and high-performing cloud computing resource. Red Hat has a collaborative approach towards technology enhancement and it shares a healthy relationship with Openstack and Amazon.
  • 20. 20 5.2.4 Amazon Server Amazon EC2 works in conjunction with Amazon Simple Storage Service (Amazon S3), Amazon Relational Database Service (Amazon RDS), Amazon Simple DB and Amazon Simple Queue Service (Amazon SQS) to provide a complete solution for computing, query processing and storage across a wide range of applications executable here we have used the Hosting server to host our cloud on their servers 5.3 Specific Requirements 5.3.1 Software Requirements ● Platform Used for Development: Red Hat Linux 7.2 ● Cloud Platform Openstack Cloud by Rackspace NASA ● Online Server: Amazon EC2 Host server ● Dashboard Openstack Dashboard for Local management Amazon Dashboard for remote management 5.3.2 Hardware Requirements Deployment End: Minimum RAM required: 8GB Operating System: Red Hat Enterprise Linux 7 & above Processor: 2.4 GHz Hard Disk: 300GB (can be more or less as per your system requirement) User End: User just need to have a very basic platform to run remote servers. User require a good internet connections.
  • 21. 21 6. DESIGN Design is a very important part of the software development process. If you discover a problem in the design phase then it is easy (and therefore cheap) to fix. This is true for any development process – not just for software. 6.1 System Design System Design is the process in which the architecture, components, modules, interfaces and data of the system is designed to meet the specific requirements. In the process of System Design Requirements that we have gathered and specified in concise form serve as an input. System Design is a two Step Process: 1. High Level Design 2. Low Level Design 6.1.1 High Level Design In a high level design architecture of the system is developed. Modules and then their sub modules that should be include in the system are decided. In our Project High level design was deciding which layout will be used, what modules and sub modules will be there. Architecture of our project is
  • 22. 22 6.2 Design Notations There are tried and tested methods for communicating with other team members when designing software. These are called design notations. This simply means there are ways of helping us represent what is going on in our program. Commonly used design notations are: 1. Algorithms 2. Flow charts 3. DFD Here are some detailed design for the system we created covering these concerns: 1. How the customer will interact with the system? 2. How will the data flow? 3. What is the process and the functionality covered? 6.3 Detailed Design In a detailed design the architecture is further explained i.e. the modules and sub-modules are further elaborately classified. Below are some of our detailed designs. 6.2.2 Data Flow Diagram (DFD)
  • 24. 24 Here are some initial designs of the website on how proceeded with the end product:- 1. How compiler will look like in remote pc This is the snapshot of compiler running inside the remote pc where we can write the code and can compile it . 2. How the Remote System Looks This is how the remote instance is looking which is running at the server (Amazon Server)
  • 25. 25 3. Showing the IP address of Remote PC(not Host pc) We have checked the ip address of remote pc for just the confirmation 4. google.com confirming the location of remote pc server 5. Instance Creation On back hand (inside private cloud)
  • 26. 26 6. Network Topology in Cloud A router is connected to a network Local Area Network by which we can access to WWW. A bus network is simple and reliable. If one node fails to operate, all the rest can still communicate with each other. For a major disruption to take place, the bus itself must be broken somewhere. Bus networks are easy to expand. Additional nodes can be added anywhere along the bus.
  • 27. 27 7. TESTING 7.1 Functional Testing Functional Testing is the process of testing the functionality of the system that is the testing of the features provided by the system. It is based on the specifications of the system that we are putting under test. It is one of the type of black box testing that test the system or component system by making user to feed various inputs and then examining the outputs. Concentration is on the functionality, internal structure of programming is not considered. Testers: Functionality Testing can be performed by anyone as no knowledge of programming and internal working of program is needed. Steps: The process of functionality testing of our system include following steps: Step 1: Identifying the features that is system expected to deliver to the users. Step 2: Identifying and making the list of various input data that can be given to system Step 3: Determining the correct output based on the inputs that we have made list of. Step 4: Run the system with all the listed inputs. Step 5: The comparison of actual input and expected input. 7.1.1 Functional Testing of our Website and Mobile App Our System is comprised of several modules as we are testing the functionality of the system so firstly we have started process of testing module by module. Testing of modules is explained below: 7.1.1.1 Registration / Log in Whether the new user is able to register (as customer/service provider/ driver) and current user is able to log in or not? 7.1.1.2 Compiler Running Whether the customer is able to run a compiler with full functionality or not. Weather the program is providing proper output or not 7.1.1.3 Instance Creation Whether the instance is created properly or not. Keeping track of no. of instance required for a particular lab. Keeping track which instance is providing which compiler service
  • 28. 28 7.1.1.4 Connectivity User’s connectivity with the instance has been put under testing in this phase. We tried to connect to the remote instance using various configuration systems under different internet connections 7.1.1.5 Profile Whether In this phase we are keeping track of whether the user is able to retrieve saved file from his profile or not. A profile with the name of user is created in system and this is the location where all his files are saved. 7.2 Structural Testing The structural testing is the testing of the structure of the system or component. Structural testing is often referred to as ‘white box’ or ‘glass box’ or ‘clear-box testing’ because in structural testing we are interested in what is happening ‘inside the system/application’. In structural testing the testers are required to have the knowledge of the internal implementations of the code. Here the testers require knowledge of how the software is implemented, how it works. Structural Testing Techniques: 1. Control flow testing 2. Data Flow Testing 3. Branch testing 4. Path testing 5. Statement coverage 6. Decision coverage 7.3 Level Of Testing 7.3.1 Unit Testing Unit testing is the process where each module is tested individually to find any bugs in coding part of the module and makes sure that code is working as intended before integrating this module in whole project. For project’s unit testing our application’s module login, connectivity, Compiler status are running individually and making sure that there is no bug left before integrating them into complete project. . 7.3.2 Integration Testing Integration testing is any type of software testing that seeks to verify the interfaces between components against a software design. Software components may be integrated in an
  • 29. 29 Iterative way or all together ("big bang"). Normally the former is considered a better practice since it allows interface issues to be located more quickly and fixed. An empty layout for complete project was created and tested first and then each module was integrated and the project was tested after integrating each module so that which interface has errors can be found easily 7.4 Testing the project When we have completed the coding and design part of our complete project we move to Interface testing of the complete project is performed. We make sure that navigation among all the modules is error free. We make sure that if settings are changed then these changes are reflected in that particular module. For example for our project if a user is has entered the proper login details then he should be awarded with the remote access of the instance he was looking for. 7.5 Installation Testing An installation test assures that the system is installed correctly and working at actual customer's hardware. The application was tested by installing it into various android devices, and was found working efficiently The website is loading correctly across all the devices and is responding to the change in Conditions as well. The mobile friendly nature is working correctly. 7.5 Deployment Testing A deployment test assures that the system is deployed correctly and working at actual customer's hardware. The application was tested by running it into various android devices and pcs and was found working efficiently .The instance is loading correctly across all the devices and is responding to the change in conditions as well. The mobile friendly nature is working correctly.
  • 30. 30 8. IMPLEMENTATION 8.1 Implementation of the Project We have developed the platform incrementally to make sure we have a working app and website at all times. We finally made a working final version with all the basic functionality. Also, distributing and implementing the platform was managed very effectively so that there are less conflicts and regressions introduced in our platform. We strongly believed in submitting a platform with less features but fully functioning one rather than the one with more features and an unstable version. At the end, we provided a working instance which can be run on any pc after giving the connectivity. In this project we have used a Openstack cloud, Openstack is a free and open-source software platform for cloud computing, mostly deployed as an infrastructure-as-a-service (IaaS). The software platform consists of interrelated components that control hardware pools of processing, storage, and networking resources throughout a data center. The cloud is deployed on the Open Stack environment. After then we have created different instances on the cloud easily accessed through dashboard. The good thing about the instance is that they are not connected with each other in any way only one thing common that they are running on a same private cloud. Due to which we have get the flexibility that we can provide different functionality on different instance .Like if on the day of lab evaluation teacher want that the student is not able to cheat as student previously save the program on the lab pcs ,teacher can provide a new instance to the students where everything is newly installed . 8.2 Conversion Plan Conversion plan works with the working of the project implemented and how the project concept is implemented as a real time application. The first and far most thing which was most important in conversion plan was deploying the cloud, there were many error which we have gone through during the process like mongo DB database error, static IP error, puppet error, interconnection of various components of cloud error. After going through All this error the road was somewhat clear. Then one big thing which had taken a long time was which type of instance should be provided to the users, should all the instance be alike or each of the instance should have its own property. Finally we decided that we will go for multiple instance which look exactly same in functionality and it's perfectly suitable for the labs. In addition to that we are providing Platform as a Service (Paas) in which a user can install his own Application that will look like working in his own pc. User have given the flexibility to download anything from the Internet and can save it there for the future reference.
  • 31. 31 8.3 Post Implementation and Software Maintenance After a project has been implemented and is available for the end user to use it, he gets all the functionalities of user related tasks. . After a time, when the number of users increase, the software is needed to be maintained for fulfilling the increasing requirements of the user. The solution has to be regularly maintained so that there is no effect on the performance of the solution with change in time. Software implementation include: 1.Understanding the existing system. 2. Optimal use of present technology and tools. 3. Requirement and product analysis. 4. Optimizing the existing methods with the use of technology. Software is changed when: 1.Technology Changes 2.User Requirements 3.New feature is to be added to current system. 4. Efficient use of hardware. 5. Additivity is required to stay at par with your competition. To stay at par with the latest legal norms and requirements related to privacy and security of the users.
  • 32. 32 9. PROJECT LEGACIES 9.1 Current Status of the project Our platform has been tested incrementally and it’s working fine. We found lot of bugs during testing phase of our platform like database errors in cloud deployment, static IP errors in transferring requests and remote login errors. We debugged all the bugs now and it is working properly. Looking At the project we are successfully able to deploy the openstack cloud and we also have successfully connected it to online server which will give us remote access to our instances, the front end is still under construction. 9.2 Remaining area of concern ● Front end of it using html and CSS ● Add-on Platform as a Service component ● Internet necessity 9.3 Technical and Managerial Lesson learnt 9.3.1 Technical Lessons Learnt Coming to technical lessons we a team have learnt what is said to be one of the difficult area in modern tech arena “Cloud Administration “. It was hard to deploy cloud on system but what made the whole process all difficult is the Administration Part. It’s like you cannot even operate the simple Windows operation system if you are using is for the very first time, similarly the management part of cloud is a hack of a task to handle even when you have basic knowledge of it. Other Parts: 1. Knowledge of Cloud Computing 2. Deployment of Private Cloud 3. Cloud Administration 4. Knowledge of HTML , CSS3 5. Connection of Cloud with Online Servers 6. Amazon EC2 Cloud Server Dashboard Management
  • 33. 33 9.3.2 Managerial Lessons Learnt This should be the part to talk about, working in a team is a unique experience for all of the team members. We learnt the time management part with resource utilization and team work effect on the project. We experienced the importance the systematic approach towards small goals and modules of the project which are ultimately came out as a successful plan to complete the project on time.
  • 34. 34 10. USER MANUAL 10.1 remote login To use the service of complier through remote login the user have to go through following modules to gain access. These can be considered as the user manual steps also. 10.1.1 Landing Page This is home page of the HTML when visiting it will show you the compiler links of different languages having respective remote login file (.rdc) attached to it which will connect to their respective instances. 10.1.2 Remote desktop connection file After downloading the file for specific instance it will provide a login interface on which you have to login through user access and the id password will be provided beforehand by the admin to specific user. 10.1.3 Compiler Dashboard After login the dashboard will open like a normal software running parallel on user’s hardware without requiring any computational power. It will provide all the functionalities as well as database for earlier saved work which can be used in collaborative working. 10.1.4 Exit Just click on the Red Cross button on the right top of the screen which will automatically disconnect the connection between the instance and user and user get its access back to its pc. Remote Desktop Connection file which connects server to users pc
  • 35. 35 12. SNAPSHOTS Amazon Dashboard Management Instance availability
  • 36. 36
  • 37. 37
  • 38. 38 13. OPENSTACK Cloud Components python-babel BSD Non-core cloud-utils-growpart GPLv3 Non-core crudini GPLv2 Non-core dib-utils ASL 2.0 Non-core dibbler-relay GPLv2 technology preview dibbler-requestor GPLv2 technology preview dibbler-server GPLv2 technology preview dibbler-client GPLv2 technology preview diskimage-builder ASL 2.0 Non-core dnsmasq-utils GPLv2 Non-core erlang-inets ERPL Non-core erlang-cosProperty ERPL Non-core erlang-hipe ERPL Non-core erlang-syntax_tools ERPL Non-core erlang-snmp ERPL Non-core erlang-percept ERPL Non-core erlang-cosFileTransfer ERPL Non-core erlang-xmerl ERPL Non-core erlang-cosTime ERPL Non-core erlang-sasl ERPL Non-core erlang-edoc ERPL Non-core erlang-kernel ERPL Non-core erlang-odbc ERPL Non-core erlang-compiler ERPL Non-core erlang-cosEvent ERPL Non-core erlang-eunit ERPL Non-core erlang-asn1 ERPL Non-core erlang-otp_mibs ERPL Non-core erlang ERPL Non-core erlang-public_key ERPL Non-core
  • 39. 39 erlang-erl_interface ERPL Non-core erlang-ssh ERPL Non-core erlang-eldap ERPL Non-core erlang-mnesia ERPL Non-core erlang-crypto ERPL Non-core erlang-runtime_tools ERPL Non-core erlang-parsetools ERPL Non-core erlang-stdlib ERPL Non-core erlang-diameter ERPL Non-core erlang-erts ERPL Non-core erlang-cosTransactions ERPL Non-core erlang-cosNotification ERPL Non-core erlang-ssl ERPL Non-core erlang-os_mon ERPL Non-core erlang-erl_docgen ERPL Non-core erlang-tools ERPL Non-core erlang-cosEventDomain ERPL Non-core erlang-orber ERPL Non-core erlang-reltool ERPL Non-core erlang-sd_notify MIT Non-core facter ASL 2.0 Non-core fontawesome-fonts-web OFL ; MIT Non-core fontawesome-fonts OFL ; MIT Non-core galera GPLv2 Non-core hdf5 BSD Non-core heat-cfntools ASL 2.0 Core hiera ASL 2.0 Non-core ipmitool BSD Non-core jq MIT and ASL 2.0 and CC-BY and GPLv3 Non-core liberasurecode BSD and CRC32 Non-core libstemmer BSD Non-core libxslt-python MIT Non-core mariadb-galera-common GPLv2 with exceptions and LGPLv2 and BSD Non-core mariadb-galera-server GPLv2 with exceptions and LGPLv2 and BSD Non-core memcached BSD Non-core
  • 40. 40 mongodb-server AGPLv3 and zlib and ASL 2.0 Non-core mongodb AGPLv3 and zlib and ASL 2.0 Non-core novnc GPLv3 Core opendaylight EPL-1.0 technology preview openstack-aodh-evaluator ASL 2.0 technology preview python-aodh ASL 2.0 technology preview openstack-aodh-common ASL 2.0 technology preview openstack-aodh-api ASL 2.0 technology preview openstack-aodh-expirer ASL 2.0 technology preview openstack-aodh-listener ASL 2.0 technology preview openstack-aodh-notifier ASL 2.0 technology preview openstack-aodh-compat ASL 2.0 technology preview python-ceilometer ASL 2.0 Core openstack-ceilometer-collector ASL 2.0 Core openstack-ceilometer-common ASL 2.0 Core openstack-ceilometer-ipmi ASL 2.0 Core openstack-ceilometer-notification ASL 2.0 Core openstack-ceilometer-api ASL 2.0 Core openstack-ceilometer-alarm ASL 2.0 Core openstack-ceilometer-polling ASL 2.0 Core openstack-ceilometer-central ASL 2.0 Core openstack-ceilometer-compute ASL 2.0 Core python-cinder ASL 2.0 Core openstack-cinder ASL 2.0 Core openstack-designate-mdns ASL 2.0 technology preview openstack-designate-central ASL 2.0 technology preview
  • 41. 41 openstack-designate-api ASL 2.0 technology preview openstack-designate-pool-manager ASL 2.0 technology preview openstack-designate-agent ASL 2.0 technology preview python-designate ASL 2.0 technology preview openstack-designate-common ASL 2.0 technology preview openstack-designate-sink ASL 2.0 technology preview openstack-designate-zone-manager ASL 2.0 technology preview openstack-glance ASL 2.0 Core python-glance ASL 2.0 Core openstack-gnocchi-common APL 2.0 technology preview openstack-gnocchi-indexer- sqlalchemy APL 2.0 technology preview openstack-gnocchi-carbonara APL 2.0 technology preview openstack-gnocchi-metricd APL 2.0 technology preview openstack-gnocchi-statsd APL 2.0 technology preview openstack-gnocchi-api APL 2.0 technology preview python-gnocchi APL 2.0 technology preview openstack-heat-api-cloudwatch ASL 2.0 Core openstack-heat-api-cfn ASL 2.0 Core openstack-heat-api ASL 2.0 Core openstack-heat-common ASL 2.0 Core openstack-heat-engine ASL 2.0 Core openstack-heat-templates ASL 2.0 Core openstack-ironic-common ASL 2.0 Core openstack-ironic-api ASL 2.0 Core
  • 42. 42 openstack-ironic-conductor ASL 2.0 Core python-keystone ASL 2.0 Core openstack-keystone ASL 2.0 Core python-manila ASL 2.0 technology preview openstack-manila ASL 2.0 technology preview openstack-manila-share ASL 2.0 technology preview openstack-manila-ui ASL 2.0 technology preview openstack-neutron-bigswitch ASL 2.0 Core openstack-neutron-openvswitch ASL 2.0 Core openstack-neutron-midonet ASL 2.0 Core openstack-neutron-mellanox ASL 2.0 Core openstack-neutron ASL 2.0 Core openstack-neutron-metering-agent ASL 2.0 Core openstack-neutron-nuage ASL 2.0 Core openstack-neutron-cisco ASL 2.0 Core openstack-neutron-oneconvergence- nvsd ASL 2.0 Core openstack-neutron-ml2 ASL 2.0 Core openstack-neutron-brocade ASL 2.0 Core openstack-neutron-rpc-server ASL 2.0 Core openstack-neutron-dev-server ASL 2.0 Core openstack-neutron-linuxbridge ASL 2.0 Core openstack-neutron-common ASL 2.0 Core openstack-neutron-sriov-nic-agent ASL 2.0 Core openstack-neutron-opencontrail ASL 2.0 Core python-neutron ASL 2.0 Core openstack-neutron-embrane ASL 2.0 Core openstack-neutron-ovsvapp ASL 2.0 Core python-neutron-tests ASL 2.0 Core openstack-neutron-ofagent ASL 2.0 Core openstack-neutron-fwaas ASL 2.0 technology preview
  • 43. 43 python-neutron-fwaas ASL 2.0 technology preview python-neutron-fwaas-tests ASL 2.0 technology preview openstack-neutron-lbaas ASL 2.0 Core python-neutron-lbaas-tests ASL 2.0 Core python-neutron-lbaas ASL 2.0 Core openstack-neutron-vpnaas ASL 2.0 technology preview python-neutron-vpnaas ASL 2.0 technology preview python-neutron-vpnaas-tests ASL 2.0 technology preview openstack-nova-scheduler ASL 2.0 Core openstack-nova-api ASL 2.0 Core openstack-nova-spicehtml5proxy ASL 2.0 Core openstack-nova-cert ASL 2.0 Core openstack-nova-cells ASL 2.0 Core openstack-nova-serialproxy ASL 2.0 Core openstack-nova ASL 2.0 Core openstack-nova-console ASL 2.0 Core openstack-nova-common ASL 2.0 Core openstack-nova-conductor ASL 2.0 Core openstack-nova-compute ASL 2.0 Core python-nova ASL 2.0 Core openstack-nova-network ASL 2.0 Core openstack-nova-novncproxy ASL 2.0 Core openstack-nova-objectstore ASL 2.0 Core openstack-packstack ASL 2.0 and GPLv2 Core openstack-packstack-puppet ASL 2.0 and GPLv2 Core openstack-puppet-modules ASL 2.0 and GPLv2 and GPLv3 Non-core openstack-rally ASL 2.0 technology preview openstack-sahara-common ASL 2.0 Core openstack-sahara ASL 2.0 Core python-sahara ASL 2.0 Core openstack-sahara-engine ASL 2.0 Core
  • 44. 44 openstack-sahara-api ASL 2.0 Core python-sahara-tests ASL 2.0 Core openstack-selinux GPLv2 Core openstack-swift-proxy ASL 2.0 Core openstack-swift-object ASL 2.0 Core openstack-swift-account ASL 2.0 Core openstack-swift ASL 2.0 Core openstack-swift-container ASL 2.0 Core openstack-swift-plugin-swift3 ASL 2.0 Non-core openstack-tempest ASL 2.0 Core openstack-trove-conductor ASL 2.0 technology preview openstack-trove ASL 2.0 technology preview openstack-trove-api ASL 2.0 technology preview openstack-trove-taskmanager ASL 2.0 technology preview openstack-trove-common ASL 2.0 technology preview openstack-trove-images ASL 2.0 technology preview python-trove ASL 2.0 technology preview openstack-trove-guestagent ASL 2.0 technology preview openstack-utils ASL 2.0 Non-core openstack-zaqar ASL 2.0 technology preview python-openvswitch ASL 2.0 and LGPLv2+ and SISSL Non-core openvswitch ASL 2.0 and LGPLv2+ and SISSL Non-core openvswitch-dpdk ASL 2.0 and LGPLv2+ and SISSL technology preview oz LGPLv2 Non-core plotnetcfg GPLv2+ Non-core puppet ASL 2.0 Non-core puppet-server ASL 2.0 Non-core
  • 45. 45 pyparsing MIT Non-core pysendfile MIT Non-core pysnmp BSD Non-core pystache MIT Non-core python-Bottleneck BSD Non-core python-PyMySQL MIT Non-core python-UcsSdk ASL 2.0 Non-core python-XStatic MIT Non-core python-XStatic-Angular MIT Non-core python-XStatic-Angular-Bootstrap MIT Non-core python-XStatic-Angular-Gettext MIT Non-core python-XStatic-Angular-Mock MIT Non-core python-XStatic-Angular- lrdragndrop MIT Non-core python-XStatic-Bootstrap- Datepicker ASL 2.0 Non-core python-XStatic-Bootstrap-SCSS MIT Non-core python-XStatic-D3 BSD Non-core python-XStatic-Font-Awesome OFL and MIT Non-core python-XStatic-Hogan ASL 2.0 Non-core python-XStatic-JQuery-Migrate MIT Non-core python-XStatic-JQuery-TableSorter MIT Non-core python-XStatic-JQuery-quicksearch MIT Non-core python-XStatic-JSEncrypt MIT Non-core python-XStatic-Jasmine MIT Non-core python-XStatic-Magic-Search ASL 2.0 Non-core python-XStatic-QUnit MIT Non-core python-XStatic-Rickshaw MIT Non-core python-XStatic-Spin MIT Non-core python-XStatic-bootswatch MIT Non-core bootswatch-common MIT Non-core bootswatch-fonts MIT Non-core python-XStatic-jQuery MIT Non-core python-XStatic-jquery-ui CCO Non-core python-XStatic-mdi OFL Non-core mdi-fonts OFL Non-core mdi-common OFL Non-core
  • 46. 46 roboto-fontface-fonts ASL 2.0 Non-core python-XStatic-roboto-fontface ASL 2.0 Non-core roboto-fontface-common ASL 2.0 Non-core python-XStatic-smart-table MIT Non-core python-XStatic-termjs MIT Non-core python-alembic MIT Non-core python-amqp LGPLv2+ Non-core python-amqplib LGPLv2+ Non-core python-anyjson BSD Non-core python-appdirs MIT Non-core python-automaton ASL 2.0 Non-core python-barbicanclient ASL 2.0 Non-core python-boto MIT Non-core python-cachetools MIT Non-core python-castellan ASL 2.0 Non-core python-ceilometerclient ASL 2.0 Core python-ceilometermiddleware ASL 2.0 Non-core python-cffi MIT Non-core python-cheetah MIT Non-core python-cinderclient ASL 2.0 Core python-cliff ASL 2.0 Non-core python-cliff-tablib ASL 2.0 Non-core python-cmd2 MIT Non-core python-contextlib2 Python Non-core python-croniter MIT Non-core python-crypto Public Domain and Python Non-core python-cryptography ASL 2.0 or BSD Non-core python-debtcollector ASL 2.0 Non-core python-designateclient ASL 2.0 technology preview python-django-bash-completion BSD Non-core python-django BSD Non-core python-django-appconf BSD Non-core python-django-compressor MIT Non-core openstack-dashboard-theme ASL 2.0 and BSD Core python-django-horizon ASL 2.0 and BSD Core openstack-dashboard ASL 2.0 and BSD Core
  • 47. 47 python-django-openstack-auth BSD Non-core python-django-pyscss BSD Non-core python-docutils Public Domain and BSD and Python and GPLv3+ Non-core python-dogpile-cache BSD Non-core python-dogpile-Core BSD Non-core python-ecdsa MIT Non-core python-elasticsearch ASL 2.0 Non-core python-eventlet MIT Non-core python-extras MIT Non-core python-falcon ASL 2.0 Non-core python-fasteners ASL 2.0 Non-core python-fixtures ASL 2.0 or BSD Non-core python-futures BSD Non-core python-futurist ASL 2.0 Non-core python-glance-store ASL 2.0 Non-core python-glanceclient ASL 2.0 Core python-gnocchiclient ASL 2.0 technology preview python-heatclient ASL 2.0 Core python-httplib2 MIT Non-core python-idna BSD and Python and Unicode Non-core python-ipaddress Python Non-core python-ironicclient ASL 2.0 Core python-iso8601 MIT Non-core python-jsonpatch BSD Non-core python-jsonpath-rw ASL 2.0 Non-core python-jsonpath-rw-ext ASL 2.0 Non-core python-jsonrpclib ASL 2.0 Non-core python-jsonschema MIT Non-core python-junitxml LGPLv3 Non-core python-kafka ASL 2.0 Non-core python-kazoo ASL 2.0 Non-core python-keyring MIT and Python Non-core python-keystoneauth1 ASL 2.0 Non-core python-keystoneclient ASL 2.0 Core python-keystoneclient-kerberos ASL 2.0 Core
  • 48. 48 python-keystonemiddleware ASL 2.0 Core python-kombu BSD and Python Non-core python-ldappool MPLv1.1 and GPLv2+ and LGPLv2+ Non-core python-lesscpy MIT Non-core python-linecache2 Python Non-core python-lockfile MIT Non-core python-logutils BSD Non-core python-lxml BSD Non-core python-manilaclient ASL 2.0 technology preview python-markdown BSD Non-core python-memcached Python Non-core python-migrate MIT Non-core python-mimeparse MIT Non-core python-mock BSD Non-core python-monotonic ASL 2.0 Non-core python-msgpack ASL 2.0 Non-core python-ncclient ASL 2.0 Non-core python-netaddr BSD Non-core python-netifaces MIT Non-core python-networking-bigswitch ASL 2.0 Non-core openstack-neutron-bigswitch-lldp ASL 2.0 Non-core openstack-neutron-bigswitch-agent ASL 2.0 Non-core python-networking-cisco ASL 2.0 Non-core python-networking-odl ASL 2.0 technology preview python-networking-vmware-nsx ASL 2.0 Non-core python-networkx-Core BSD Non-core python-networkx BSD Non-core python-neutronclient ASL 2.0 Core python-novaclient ASL 2.0 Core python-numexpr MIT Non-core python-oauthlib BSD Non-core python-openstackclient ASL 2.0 Core python-os-brick ASL 2.0 Non-core python-os-client-config ASL 2.0 Non-core python-os-testr ASL 2.0 Non-core
  • 49. 49 python-oslo-cache ASL 2.0 Non-core python-oslo-concurrency ASL 2.0 Non-core python-oslo-config ASL 2.0 Non-core python-oslo-context ASL 2.0 Non-core python-oslo-db ASL 2.0 Non-core python-oslo-i18n ASL 2.0 Non-core python-oslo-log ASL 2.0 Non-core python-oslo-messaging ASL 2.0 Non-core python-oslo-middleware ASL 2.0 Non-core python-oslo-policy ASL 2.0 Non-core python-oslo-reports ASL 2.0 Non-core python-oslo-rootwrap ASL 2.0 Non-core python-oslo-serialization ASL 2.0 Non-core python-oslo-service ASL 2.0 Non-core python-oslo-sphinx ASL 2.0 Non-core python-oslo-utils ASL 2.0 Non-core python-oslo-versionedobjects ASL 2.0 Non-core python-oslo-vmware ASL 2.0 Non-core python-osprofiler ASL 2.0 Non-core python-pandas BSD Non-core python-paramiko LGPLv2+ Non-core python-passlib BSD and Beerware and Copyright only Non-core python-paste-deploy MIT Non-core python-pathlib MIT Non-core python-pbr ASL 2.0 Non-core python-pecan BSD Non-core python-pint BSD Non-core python-posix_ipc BSD Non-core python-prettytable BSD Non-core python-psutil BSD Non-core python-pyasn1 BSD Non-core python-pyasn1-modules BSD Non-core python-pycadf ASL 2.0 Non-core python-pyeclib BSD Non-core python-pyghmi ASL 2.0 Non-core python-pygments BSD Non-core python-pymemcache ASL 2.0 Non-core
  • 50. 50 python-pymongo-gridfs ASL 2.0 and MIT Non-core python-bson ASL 2.0 and MIT Non-core python-pymongo ASL 2.0 and MIT Non-core python-pysaml2 ASL 2.0 Non-core python-pytimeparse MIT Non-core python-qpid ASL 2.0 Non-core python-redis MIT Non-core python-repoze-lru BSD Non-core python-repoze-who BSD Non-core python-requests ASL 2.0 Non-core python-requests-kerberos MIT Non-core python-requests-oauthlib ISC Non-core python-retrying ASL 2.0 Non-core python-rfc3986 ASL 2.0 Non-core python-routes BSD Non-core python-ryu Apache-2.0 technology preview python-saharaclient ASL 2.0 Core python-scciclient ASL 2.0 Non-core python-scss MIT Non-core python-semantic_version BSD Non-core python-simplegeneric Python or ZPLv2.1 Non-core python-simplejson (MIT or AFL) and (MIT or GPLv2) Non-core python-singledispatch MIT Non-core python-speaklater BSD Non-core python-sphinx BSD and Public Domain and Python and (MIT or GPLv2) Non-core python-sqlalchemy MIT Non-core python-sqlalchemy-utils BSD Non-core python-sqlite3dbm ASL 2.0 Non-core python-sqlparse BSD Non-core python-stevedore ASL 2.0 Non-core python-swiftclient ASL 2.0 Non-core python-sysv_ipc GPLv3+ Non-core python-tables BSD Non-core python-tablib MIT Non-core python-taskflow ASL 2.0 Non-core
  • 51. 51 python-tempest-lib ASL 2.0 Core python-testrepository ASL 2.0 Non-core python-testresources ASL 2.0 and BSD and GPLv2+ Non-core python-testscenarios ASL 2.0 and BSD Non-core python-testtools MIT Non-core python-tooz ASL 2.0 Non-core python-traceback2 Python Non-core python-trollius ASL 2.0 Non-core python-troveclient ASL 2.0 technology preview python-unicodecsv BSD Non-core python-unittest2 BSD Non-core python-urllib3 MIT Non-core python-versiontools LGPLv3 Non-core python-voluptuous BSD Non-core python-warlock ASL 2.0 Non-core python-webob MIT Non-core python-websockify LGPLv3 Non-core python-webtest MIT Non-core python-wrapt BSD Non-core python-wsme MIT Non-core python-zaqarclient ASL 2.0 Non-core python-zope-interface ZPLv2.1 Non-core qemu-kvm-rhev GPLv2+ and LGPLv2+ and BSD Non-core libcacard-rhev GPLv2+ and LGPLv2+ and BSD Non-core qemu-kvm-tools-rhev GPLv2+ and LGPLv2+ and BSD Non-core qemu-img-rhev GPLv2+ and LGPLv2+ and BSD Non-core libcacard-tools-rhev GPLv2+ and LGPLv2+ and BSD Non-core qemu-kvm-common-rhev GPLv2+ and LGPLv2+ and BSD Non-core qpid-cpp-server ASL 2.0 ; LGPL 2.1+ Non-core qpid-cpp-server-ha ASL 2.0 ; LGPL 2.1+ Non-core qpid-cpp-client ASL 2.0 ; LGPL 2.1+ Non-core python-qpid-proton ASL 2.0 Non-core qpid-proton-c ASL 2.0 Non-core python-qpid-qmf ASL 2.0 Non-core qpid-qmf ASL 2.0 Non-core qpid-tools ASL 2.0 Non-core
  • 52. 52 rabbitmq-server MPLv1.1 Non-core redis BSD Non-core ruby-augeas LGPLv2+ Non-core ruby-shadow Public Domain Non-core rubygem-rgen MIT Non-core sahara-image-elements ASL 2.0 Core saslwrapper ASL 2.0 Non-core python-saslwrapper ASL 2.0 Non-core sos GPLv2+ Core subunit-filters ASL 2.0 or BSD Non-core python-subunit ASL 2.0 or BSD Non-core subunit ASL 2.0 or BSD Non-core v8 BSD Non-core web-assets-filesystem MIT ; Public Domain Non-core yaml-cpp MIT Non-core These small components combines together to make the whole cloud working. These have different different functions to perform when it comes to administration purpose of OPENSTACK cloud.