Comparing Design Of Cloud Computing Platforms


Cloud computing

It is the use of remote servers on the internet to store, manage and process data rather than a local server or your personal computer.

What is a cloud computing platform?

If a picture is worth a thousand words then one minute of video is worth one point eight million video is one of the densest forms of information made up of many steel frames per second and each frame contains millions of pixels that makes for some very large files and in many different formats but loading or organizing and sharing all this dense data is no easy task that’s where cloud platforms come in not only can the cloud platform manage huge volumes of video information it enables developers to build all kinds of applications  including cognitive ones that make use of visual data  to see what’s in a video.

Cloud Platform Providers:

    AWS (Amazon Web Services)

    Microsoft Azure

    GCP (Google Cloud Platform)

    Vmware

    OpenNebula

    Nimble


Google Cloud Platform (GCP)

A collection of cloud computing services like compute, storage, networking that runs on an equivalent infrastructure which Google uses internally for its end-user products, like Google Search and YouTube which is provided by Google is understood as Google Cloud Platform. Google Cloud Platform (GCP) started their journey on 6th October, 2011 at that point, they need managed to make an honest presence within the industry. Initially, they need their own services like google and YouTube. But now, they need created the enterprise services. So now anyone can use GCP which shares an equivalent infrastructure that google search and YouTube.

GCP has lot of services so this service has been divided into certain domains. the most domain which may basically host any quite application is that compute, storage and networking using these domains we will create an infrastructure for any quite application. In compute domain, primary service offered by google is cloud engine which help to launching instance on cloud. While launching any instance Google takes only few second. In database domain, database service provided by Google is SQL database, there don’t have provision to settle on any another database aside from MySQL database. In storage domain, cloud storage is that the service which give object-based filing system. So, whenever we store files on this technique are often treated as an object. In troubleshooting domain, primary service provided by Google is Stack driver Logging, any deployed apps on GCP with API calls, those API calls gets recorded within the logs of GCP and may be traced then it helps to troubleshoot application. In monitoring domain, Stack driver monitoring which may monitor each and each resources or service running in GCP account. It provides basic information just like the amount of traffic coming to instance, what quite traffic is connected to instance, the performance of instance, etc.

Availability zones are the isolated locations within data center regions from public cloud services originate and operate and thus the regions are geographic locations within the info centers of public cloud service providers reside. So, GCP has 18 availability zones with 3 more on the way which is sort of lesser than AWS and Azure.

According to Market Share GCP is on 3rd place with 10% of the market share over a worldwide. consistent with recent report on the market share Google successfully jumped its share from 8% to 10% within the cloud business. But comparing with AWS and Azure, Google is a smaller amount market share. Google shares an equivalent infrastructure that of Google program and YouTube. Some their major clients are HSBC, PayPal, Dominos, Target, Bloomberg, etc.

In GCP very basic instance which include 2 virtual CPUs and eight GB of RAM will cost around 52 dollars per month which is 25% cheaper. For the most important instance offered by GCP is 3.75 TB RAM alongside 160 virtual CPUs which cost around 5.32 dollars/hour which is cheaper in terms of virtual CPUs provisioning as compared to AWS and Azure.


 Microsoft Azure

Microsoft introduced their Cloud Computing Platform - Azure in 2010 to provide cloud services where users, businesses and organizations can build, test, deploy, and manage their applications on huge and capable servers/ data centres of Microsoft. These data centres are spread across 54 regions around the world. Azure, by Microsoft, offers variety of services across multiple domains, right from Compute Engines, Database Management to Content Delivery, Networking and many more.

Now let us delve into Azure…

Due to its easy to use and understand design of the Azure Architecture, minimal cost, and flexibility, it is not surprising that it is first choice of more than 90 percent of Fortune 500.

This provides users with the flexibility to use their preferred tools and technologies. In addition, Azure offers four different forms of cloud computing viz. infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS) and server less.

Microsoft charges for Azure on a ‘pay as you use’ basis, meaning that customers receive a bill each month that only charges them for the specific resources they have used for what time.

Looking into the Architecture of Azure, services it offers shapes the design of Azure:

 

Fig. Azure Architecture


AppFabric is the middleware which comprises of services such as compute, storage, networking, and identity management. Azure comprises of all the services that can be offered by a cloud service provide that one can think of. Be it Compute, Mobile, Web, Storage, Analytics, Media & CDN, Integration, IoT right up to DevOps, Security, Containers, Database Management, AI & ML and Blockchain.  This plethora of tools and services is accessible from Microsoft Azure Management Portal.

One of the important reasons which makes Azure first choice of its customers is the seamless integration of Microsoft Apps and Windows into Azure and the features offered by Microsoft such as: Data Recovery, Security, Flexibility, Scalability and Cost

Some Distinct Design Characteristics of Azure include (but not limited to):

•            Web App and Non-Web App (Desktop) Service Type

•            OS level virtualization achieved via AppFabric Fabric Controller

•            Supports all Web APIs, SMTP suppor0074 and value-added services

•            Microsoft Windows Azure Portal is the User Access interface for all of Azure

•            Built on Microsoft.NET framework

 

Amazon Web Services (AWS)

Amazon Web Services (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis.

The AWS platform was launched in July 2002. Cloud market of $50.4 billion (2020) has been dominated by AWS since day one. Now, Synergy Research Group's figures for Q3 2020 have AWS as the clear market leader globally for public IaaS and PaaS market share at 32 percent, followed by Microsoft at 16 percent, Google at 8 percent and Alibaba at 5 percent. AWS's revenue grew by 29% in 2020. According to Amazon, the number of active AWS users exceeds 1,000,000.While small and mid-size companies make up the majority of that user base, recent polls by private consulting firms suggest that enterprise-scale users make up at least 10% of that total.

The AWS Global Cloud Infrastructure offers over 175  fully featured services from data centres globally that is with more than 175 across to compute, storage, database, analytics, networking, mobile, developer tools, management tools, IoT, security and enterprise applications, which is the key strength for the market leader it continues to be the breadth and depth of its services.

AWS launched SageMaker in 2017 as a way to simplify the adoption of machine learning by bringing together a hosted environment for Jupyter notebooks with built-in model management, automated spin up of training environments using EC2 instances, and HTTPS endpoints for hosting capabilities with Amazon S3. The vendor also has a broad set of off-the-shelf machine learning services for use cases like image recognition (AWS Rekognition), text to speech deep learning models (Polly) and the engine that powers Alexa (Lex).AWS storage includes its Simple Storage (S3), Elastic Block Storage (EBS), Elastic File System (EFS), Import/Export large volume data transfer service, Glacier archive backup and Storage Gateway, which integrates with on-premise environments.

 

Fig. AWS Architecture


This is the basic structure of AWS EC2, where EC2 stands for Elastic Compute Cloud. EC2 allow users to use virtual machines of different configurations as per their requirement. It allows various configuration options, mapping of individual server, various pricing options, etc. In the above diagram S3 stands for Simple Storage Service. It allows the users to store and retrieve various types of data using API calls. It does not contain any computing element.

Even though the charges of AWS are high compared to its competitors. AWS is perhaps the best choice for large enterprises with specific requirements, for multinational companies with a presence in many countries, and for businesses all over the world. AWS also offers excellent levels of support, availability, greater redundancy, and number of services.

 

OpenNebula

OpenNebula is an open source cloud computing tool specifically designed as modular to allow easy integration with different environments and hypervisors. It also manages the heterogeneity and complexity of distributed large infrastructure. It is a flexible, scalable, open virtual infrastructure mechanism, capable of enabling the synchronization of network, storage, and virtual techniques. Therefore, it allows users to dynamically deploy services on distributed infrastructure based on provision strategies at data centre and remote cloud resources.

Let us now look at the architecture of OpenNebula:


Fig. OpenNebula Architecture


The platform consists of three main components which includes Core Virtual Infrastructure Manager, Capacity Manager and Drivers. Core Virtual Infrastructure manages the lifecycle of virtual machines. Capacity manager manages all the functionalities from the OpenNebula core such as balancing workloads in virtual machines. The third component drivers supports all platforms under it. OpenNebula does not support Graphic User Interface (GUI) which is the main drawback to the platform. Some of the advantages of the platform include server consolidation, partitioning dynamic clustering, centralized management of all workload, load balancing, heterogeneous workloads, and virtual machine supply on demand. In terms of infrastructure management, Open nebula can dynamically adjust scale of cloud platform infrastructure by increasing the number of partition clusters and hosts in order to achieve various requirements.

The OpenNebula is a preferable platform for organization expecting more of an efficient, scalable, dynamic management of VMs within a private cloud reflecting the involvement of large entities of physical and virtual servers based on Haizea scheduling.

 

Nimbus

Nimbus cloud platform is an integrated open set tool, used to deliver, providing infrastructure as a service cloud computing (IaaS) solution supported by University of Florida and Chicago. Nimbus platform is specifically designed based on science community interest such as batch schedulers, proxy credentials and best-efforts allocation etc., although it has recently supported non-scientific applications. It is written in Python and Java for rapid development of custom community-specific solutions. It enables users to provide, build various remote computing on demand resources via deployment of virtual machines. Nimbus permits combination of Amazon, OpenStack, and many other clouds. Nimbus cloud seems more complicated than many cloud platforms as command and results are inputted in command lines, making nimbus appear extremely complex due to specific applications. Nevertheless, the software is particularly unique based on greater level of flexibility as it supports almost every hypervisor Nimbus platform 285 supports XEN and KVM virtualization technologies except VMware.

Nimbus platform functional components can be grouped into three: client supported module, service supported module and resources management module. Client supported modules is used to support users especially with quick instance launches, one click clusters and consists of context client module, cloud client module, EC2 client module including reference client module. Service supported module is primarily used in providing various cloud services and the modules include EC2 WSDL module, remote interface module, and web service resource framework module. Background resource management module is principally used to manage a range of physical resources on cloud computing platform such as IaaS gateway module, work service management module, EC2 plus another supported platform module, workspace controller, workspace resource management module and workspace pilot module.

Fig. Nimbus Cloud Platform


Nimbus Cloud however seems suited to scientific cooperative community that is more interested in broad customization need rather than technical forms of the system. Globus Toolkit makes nimbus a reasonable choice for the scientific community due to their familiarity with the tool kit and the more conductive of excess cloud time sharing.


 References:

Cloud-platforms-tutorial

What-is-Microsoft-Azure-and-How-Does-It-Work?

Learn-Microsoft-Azure-Intellipaat

Nimbus-Project.org

14. Course Project Details



Hello folks!
Welcome to this last blog of our blog series. In the previous blog we have studied basics of socket programming,Now in this blog we will see the code of project, socket programming based group chat application

Code of the project

1) SERVER code :
import socket
import threading

print("Server Code\n")
class Server:
clients = []
names = []

    def create(self):
        self.s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.port = 25000
        self.name = input("Enter name : ")
        self.s.bind(('', self.port))
        print("Socket binded to port: " + str(self.port))
        self.chatWindow()
        return

    def sender(self):
        while True:
            msg = input()
            for i in self.clients:
                self.s.sendto(bytes(self.name + " : " + msg, "utf-8"), i)

    def receiver(self):
        while True:
            msg, self.addr = self.s.recvfrom(1024)
            if(self.addr not in self.clients):
                print("Message from " + str(self.addr) + " : " + str(msg.decode("utf-8"))+"\n")
                self.clients.append(self.addr)
                self.names.append(str(msg.decode("utf-8")))
                self.s.sendto(bytes(self.name, "utf-8"), self.addr)
                print("Name sent to "+str(self.addr)+"\n")
            else:
                print(self.names[self.clients.index(self.addr)] +
                      ": " + str(msg.decode("utf-8"))+"\n")
                msg = str(msg.decode("utf-8"))
                for i in self.clients:
                    if(i != self.addr):
                        self.s.sendto(
                            bytes(self.names[self.clients.index(self.addr)]+" : " + msg, "utf-8"), i)

    def chatWindow(self):
        print("Chat Messenger Server\n")
        threadS = threading.Thread(target=self.sender)
        threadR = threading.Thread(target=self.receiver)
        threadS.start()
        threadR.start()

if __name__ == '__main__':
    server = Server()
    server.create()

2) CLIENT code :

import socket
import threading

print("Client Code\n")
class Client:
clients = []
names = []

    def create(self):
        self.name = input("Enter name : ")
        self.ip = socket.gethostbyname(socket.gethostname())
        self.port = 25000
        self.c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        print("Socket binded successfully")
        self.c.sendto(bytes(self.name, "utf-8"), (self.ip, self.port))
        print("Chat Messenger Client\n")
        self.chatWindow()

    def chatWindow(self):
        threadS = threading.Thread(target=self.sender)
        threadR = threading.Thread(target=self.receiver)
        threadS.start()
        threadR.start()

    def sender(self):
        while True:
            msg = bytes(input(), "utf-8")
            self.c.sendto(msg, (self.ip, self.port))

    def receiver(self):
        while True:
            msg, addr = self.c.recvfrom(1024)
            if(addr not in self.clients):
                self.clients.append(addr)
                self.names.append(str(msg.decode("utf-8")))
                print("Message from " + str(addr) + ": Name : " + str(msg.decode("utf-8"))+"\n")
            else:
                print(str(msg.decode("utf-8"))+"\n")

if __name__ == '__main__':
    client = Client()
    client.create()
    client.chatWindow()

The details of this code are explained in links given below


Details of the course project :

Course Project Title:Socket programming based group chat application
Description of project :
Course Project Report Link : Report link
Course Project Presentation Link : Presentation Link


Topic 1:
Presenter's Info:
Student Name : Archit Hiwrekar
Div : K
Roll No : 23
GRNO : gr no 1710994
Topic 1 Video Link : Video link

Topic 2:
Presenter's Info : 
Student Name : Chinmay Kapkar
Div : K
Roll No : 33
GRNO : 1710732
Topic 2 Video Link : Video link

Topic 3:
Presenter's Info : 
Student Name : Hrishikesh Deshpande
Div : K
Roll No : 16
GRNO : 1711063
Topic 3 Video Link :  Video link

Topic 4:
Presenter's Info:
Student Name : Ashutosh Bardapurkar
Div : K
Roll No :5
GRNO :1710459
Topic 4 Video Link : Video link

13. Socket Programming Based Group Chat Application - Part 2



Hello folks!
Welcome to this blog series.In previous blog we have seen basic theoretical background related to project based on socket programming ,now in this blog we will see some more concepts such as socket,TCP/IP which are related to this project.
In this project we are trying to establish connection between multiple people at the same time so they are able to chat with person by establishing server and client side separately using TCP IP protocol TCP/IP, or the Transmission Control Protocol/Internet Protocol, is a suite of communication protocols used to interconnect network devices on the internet. TCP/IP can also be used as a communications protocol in a private computer network (an intranet or an extranet). TCP/IP can be used to provide remote login over the network, for interactive file transfer, to deliver email, to deliver webpages over the network and to remotely access a server host's file system.
TCP/IP Layer :

                                               Figure reference : www.guru99.com

socket programming interface provides the routines required for interprocess communication between applications, either on the local system or spread in a distributed, TCP/IP based network environment. Once a peer-to-peer connection is established, a socket descriptor is used to uniquely identify the connection.
The sockets are the endpoints of any communication channel. These are used to connect the server and client. Sockets are Bi-Directional. In this project, we setup sockets for each end and setup the chatroom system among different clients through the server. The server side has some ports to connect with client sockets. When a client tries to connect with the same port, then the connection will be established for the chat room. Every time a user connects to the server, a separate thread is created for that user and communication from server to client takes place along individual threads based on socket objects created for the sake of identity of each client.
There are basically two parts. The server side and the client side. When the server side script is running, it waits for any active connection request. When one connection is established, it can communicate with it. In this case we are using localhost. If machines are connected via LAN or same wifi hotspot, then we can use IP addresses to communicate. The server will display its IP. From the client side the IP address of the server to connect. A message sent to from server side act as broadcast message to all the clients.
To use a socket object in the program, we first start off by importing the socket library.The type parameter is set to Socket Stream, also the default which enables “sequenced, reliable, two-way, connection-based byte streams” over TCP protocol. This code makes a socket object, and binds it to localhost’s port 8080 as a socket server. When clients connect to this address with a socket connection, the server listens for data, and stores it in the “data” variable. When a client connects, the server calls accept() to accept, or complete, the connection. The client calls connect() to establish a connection to the server and initiate the three-way handshake. 
The handshake step is important since it ensures that each side of the connection is reachable in the network, in other words that the client can reach the server and vice-versa. It may be that only one host, client or server, can reach the other.
In the middle is the round-trip section, where data is exchanged between the client and server using calls to send() and recv().
At the bottom, the client and server close() their respective sockets.

Figure & theory reference

By :
Ashutosh Bardapurkar    (k-05)
Hrishikesh Deshpande    (k-16)
Archit Hiwrekar        (k-23)
Chinmay Kapkar    (k-33)

12. Socket Programming Based Group Chat Application - Part 1



Hello folks!
Welcome to this new section of blog series. In this section we will see theoretical background as well as code related to project based on socket programming,o in this perticular blog
Sockets (aka socket programming) is a program that enables two sockets to send and receive data, bi-directionally, at any given moment.It works by connecting two sockets (or nodes) together and allowing them to communicate in real time, and is a great option for building a myriad of apps.
Internet-connected applications that need to operate in realtime greatly benefit from the implementation of sockets in their networking code. Some examples of apps that use socket programming are:
·       Web pages that show live notifications (Facebook, Twitch, eBay)
·       Multiplayer online games (League of Legends, WoW, Counter Strike)
·       Chat apps (WhatsApp, WeChat, Slack)
·       Realtime data dashboards (Robinhood, Coinbase)
·       IoT devices (Nest, August Locks)
Socket:
Sockets are basically used for inter process communication within single or over the network systems. So sockets are basically two endpoints of the communication via which we can communicate. So socket represents a single connection between exactly two pieces of software but we can also communicate between multiple piece of softwares but this requires multiple sockets.Sockets are also used for unidirectional as well as bidirectional communication
Now as we know if we have to work on the network then we have to deal with IP addresses also because each and every system on the network is recognized by its IP address.In this we have one server and many clients to take the service of the server. Notice that the client needs to know the existence of and the address of the server, but the server does not need to know the address of (or even the existence of) the client prior to the connection being established. Notice also that once a connection is established, both sides can send and receive information. 
Socket Types:
There are two widely used socket types, stream sockets, and datagram sockets. Stream sockets treat communications as a continuous stream of characters, while datagram sockets have to read entire messages at once. Each uses its own communications protocol. Stream sockets use TCP (Transmission Control Protocol), which is a reliable, stream oriented protocol, and datagram sockets use UDP (Unix Datagram Protocol), which is unreliable and message oriented.
The address of a socket in the Internet domain consists of the Internet address of the host machine (a unique 32 bit address, often referred to as its IP address). In addition, each socket needs a port number on that host. Port numbers are 16 bit unsigned integers. The lower numbers are reserved in Unix for standard services. For example, the port number for the FTP server is 21. It is important that standard services be at the same port on all computers so that clients will know their addresses. However, port numbers above 2000 are generally available
API to establish socket
In server side:
Socket system calls are declaired in the linux system at standard path in the <sys/socket.h> header file.
Firstly we have to make socket with socket() call. When a socket is created, the program has to specify the address domain and the socket type. Two processes can communicate with each other only if their sockets are of the same type and in the same domain. There are two widely used address domains, the unix domain, in which two processes which share a common file system communicate, and the Internet domain, in which two processes running on any two hosts on the Internet communicate. Each of these has its own address format
Bind the socket to an address using the bind() system call. For a server socket on the Internet, an address consists of a port number on the host machine.
Listen for connections with the listen() system call
Accept a connection with the accept() system call. This call typically blocks until a client connects with the server.
In client side:
In the client side also we have to make socket,Connect the socket to the address of the server using the connect() system call
Send and receive data. There are a number of ways to do this, but the simplest is to use the read() and write() system calls.
In next blog we will take some more information about socket ,socket programming and TCP/IP

 Reference :
[2] www.emlogic.com ,dt 3th april, 2020

By :
Ashutosh Bardapurkar    (k-05)
Hrishikesh Deshpande    (k-16)
Archit Hiwrekar        (k-23)
Chinmay Kapkar    (k-33)

11. Cafeteria Management System Code - Part 2


Hello folks!
Welcome to the blog series.In the previous blog we have seen about the libraries that we used in our program as well as the declaration of class, methods and variables. So in this blog we will continue with the remaining part code which includes global variables as well as main() function.

So as you can see we have used the standard namespace for using standard input and output. Next is the flag which is a global variable which is used so that the first part of the program which gives the user output whether the program has started runs only once. Another variable is of type ofstream which is used for writing every bill printed into a log file.

Another global variable is a pointer which stores the address of objects of class Cafe. In the main function we have declared two variable cmd which stores the option number for the item which the customer has ordered and table_number which stores table number. As explained earlier the use of flag variable the user gets to know the program has started. Also we are opening the Cafe_log.txt file to write the new bills. Next we are taking the input for table number and corresponding option for the item that the customer has ordered.
According to the option that the user has entered the program asks for the quantity for that item that the customer wants to order or print the bill or exit from the program. If the user opts for the option for the bill we also simultaneously write the bill the log file and if the user wants to exit the program then we close the log file which was opened earlier.

If the user enters in inappropriate command then an message is displayed for the same. So this is all about the code.The link of the code is attached below. In the next blog we will discuss about theoretical background of the project which is based on socket programming.


By :
Ashutosh Bardapurkar    (k-05)
Hrishikesh Deshpande    (k-16)
Archit Hiwrekar        (k-23)
Chinmay Kapkar    (k-33)

10. Cafeteria Management System Code - Part 1


Hello folks!
Welcome back to this blog series. In the previous blog we have studied advance ways of file handling .
Now In this blog we will see the code for Cafeteria Management System which is an application of object oriented programming studied in prior blogs. So lets start by knowing the libraries used.

Theee libraries that we required in order the implement the code are mentioned above. I will explain you some of the important libraries we needed. So the first one is the iostream library which contains the input output streams which are needed to make the user experience more better.
Next is the fstream library which contains necessary functions for file handling. The stdlib.h library is  used for dynamic memory allocation so as to make the space complexity low. Another important library is string.h which is required to perform string operations. We have also used a macro ‘max_value’ which is used to store the maximum number of tables available in the cafe.
Next task is to create a class and then create objects of this class which denote food serving tables of cafe.

So as you can see we have declared a class named Cafe which has private members price which is an array containing prices of each item present in the menu card which we will be displaying in the main() method. Quantity variable contains quantity of each item that the customer has ordered and bill contains the total amount that the customer needs to pay. In the constructor of the class we are setting values of arrays price and quantity to zero assuming that no customer is there on the table and cafe is just started. Next task is to set which items needed to be displayed in the menu. For example, we have taken four items as shown in the above picture. Also we have set the bill value to zero.
Now we need to create a method which would actually do the processing of data obtained from customer which includes getting the order, changing the appropriate values of quantity array and to calculate the total bill.


As you can see in the above image we have created a function named option which takes item number of the item ordered as input and changes values of quantity array and variable bill.


Next function is display which takes a fstream pointer as input. In this function we are basically display the items that we ordered and their respective quantities along with price and total amount. Simultaneously, we are also storing this bill as text in a file using the file pointer that we took as input.
Finally, in the destructor we are assigning bill variable to zero assuming that the previous customer has left the cafe and new customer has arrived. Also, we are assigning zero value to all elements of price and quantity array respectively.
So this is the end of class declaration and in the next blog we’ll explore the main() function and try to understand how the user will interact with the program. We will also examine the need for some global variables that we have used in the program. 

By :
Ashutosh Bardapurkar    (k-05)
Hrishikesh Deshpande    (k-16)
Archit Hiwrekar        (k-23)
Chinmay Kapkar    (k-33)

9. Advance way of handling files in C++




Hello folks!
Welcome to this blog series. In the previous blog we have studied basic file handling in C++. In this blog we will see some more advance ways of file handling in C++, so let’s get started.

Advance way of handling files in C++

There can be different purpose of opening a file. For example to write on the file, to read from the file, etc. These are the different modes in which we can open a file in C++.


Mode
Description
ios::app
To open a text file for appending purpose.
ios::ate
To open a file for output purpose and move the read/write control to the end of the file.
ios::in
To open a text file for reading purpose.
ios::out
To open a text file for writing purpose.
ios::trunc
To truncate the file content before opening a file, if file already exists in our system.


















Let’s understand this with an example code.

Code:
Output:
Files before running the code:
Files after running the code: 

So we now know how to play with files in C++. So we will meet you in our next blog where we will discuss, how we implemented the system in C++ with its code explained.

By-
Ashutosh Bardapurkar    (k-05)
Hrishikesh Deshpande    (k-16)
Archit Hiwrekar        (k-23)
Chinmay Kapkar    (k-33)