The Software Overview - Part 1

Β·

4 min read

Hey Guys,

Hope you're all having a πŸ†’ weekend just like the πŸ†’ weather outside!

I am here today with part-1 of a new blog series where we talk about Software and all that is involved in a typical software application development. We are going to refer to most of the things with real-time examples for easy understanding.

What is a Software?

Software is a generic term we use to refer to applications, scripts, and programs that run on a machine. It's a set of instructions that we tell to a system/computer to perform a task, and in order to put these instructions together we use programming languages which are then interpreted by the machine for performing the task.

Basically, the game you play on your mobile is software, the webpage you load using a browser which is software, Gmail you use is one of the software applications etc,.

If you are aware of this you might also hear about the terms FE, BE, Cloud, DevOps, HTTP, HTTPS, and a few things. Are you confused about what exactly are these terms and where in the real world they exist?!

Well, let me explain it all through a simple analogy from our day-to-day life:

Ever been to a restaurant? observed the flow of how the process of going through the menu, placing an order and receiving the dish you've asked for as a customer happened!

Similarly, software applications also have this process of receiving a request from a machine and sending a response to that machine where the terms like FE, BE and so on come into the picture. Let me elaborate on all this a little bit more.

Imagine the restaurant that we've been to as a Software. The menu card you have to go through what the restaurant has to offer is similar to the UI you see of any software application which is called the 'Front End, FE' here! Then comes the waiter who takes your order and takes it to the chef for preparation. Here, that part is played by the protocol like HTTP/HTTPS, the internet, which acts as a connection and sends data between your machine (Menu) and the web server (Kitchen).

Likewise, our order/request is sent to the kitchen/web server which is called the 'Back End, BE'. The whole BE part comes under the web server that processes, prepares and sends the finished dish/response to the end user.

There are certain components in the BE part like database, filesystem, and APIs.

Let's assume you've ordered noodles. Not all chefs make noodles, so your order will be sent to the chef who makes noodles. For this, he needs some ingredients like salt, water, noodles, masala, egg/chicken etc. And these ingredients will be stored in some place in the kitchen like an inventory in a labeled manner. The chef must get those ingredients and prepares the deliciousness for you. Then he will hand over the noodles to the waiter which then will be served to you.

In a similar way to how the chef looks for the ingredients, the server looks for the required data requested by the user in the inventory (Database) whenever you request particular information through a FE application from your machine. The internet sends it to the web server (BE) which then routes the request to a specific API which will retrieve the data from the database if required, processes it, and sends data back to the internet. That's how you will get back the response to the machine from which the user sent the request.

I hope you resonate with the restaurant example that is in sync with the concept of the software overview and it helped you in getting a better picture of how everything looks and works. This is a fundamental scenario of how web applications work. But there are a lot of advancements in how communication happens, and how automation helps to make frequent deliveries across platforms.

So in this similar way, we will also dive into the concepts of Cloud, DevOps and various tools of DevOps. Keep looking out for upcoming blogs.

That's it for now, see you soon at the next one :)

Also, let me know how informative the blog is and also ask queries if you have any in the comment sectionπŸ‘‡

Β