architecture

There are two aspects of computer architecture. They are :

  • Front End
  • Back End

Front End

This means the computer program that you are using is of an app/website. Typically, apps have a bigger footprint (code) than a website. Apps are accessed through different tools like the mobile phone, tablet or sometimes your desktop/laptop. You have the play store (Android) or app store (Apple) hosting many kinds of programs ranging from personal fitness to corporate applications. The front end in case you are accessing a website is called as a thin client. This is because of the reason that you are using typically a browser. (Like Chrome / Firefox / IE etc) A browser is a small amount of code which fetches pages from the backend (server) and renders it. When you are using a browser, a lot of computing/storage power is underutilized. What you need is a strong internet connection. The web server (backend) serves the pages to the client.

The programming language that makes a front-end slick is called Javascript. Over 91% of all applications use Javascirpt. Do not confuse it with Java. Both are two different animals. Javascript empowers HTML / CSS. (HyperText Markup Language / Cascading Style Sheets). HTML / CSS are markup languages (not full-blown programming language) which are used to give structure to a web page and render it. When you are using a product and you want to make it more powerful, what do you do? Simple, you use a programming language. (For example – Visual Basic for Applications or simply VBA makes MS Office suite programmable) For HTML / CSS the gift is Javascript. Now note that Javascript is a scripting language (you can say a programming language) and it’s quite cryptic. To make it simpler to use, programmers have written Javascript libraries like jQuery, Bootstrap, Vue etc. The most popular flavors are Angular (Google) and  React (Facebook). If you want to know more about these go to : https://technospirituality.com/2019/03/angular-and-react-javascript-frameworks/

Back End

Now let’s discuss the back end. Servers typically sitting in some data centre or on-premises host the program that delivers results. Take for example a web server (typically running Apache software on Linux) is capable of serving webpages. An app also may contact the backend using JSON (Javascript Object Notation). To communicate with the server, the client uses what are called as REST (Representational State Transfer) API (Application Programming Interface). A server is several times more powerful than a stock client. These servers work on the logic of the program, the business rules, security etc. And they send back a response to the client. After it receives a response, the client-side code will render the page. This architecture is called client-server. At times, there may be an application server in between your server and client (For example Weblogic / Websphere). This is a 3-tier architecture.

There are 3 kinds of Servers

  • Web Server
  • Database Server
  • Application Server

Webservers typically use programs like PHP (this is a programming language) and are responsible for transmitting the output arrived at, by the other 2 types of servers, to the client. Database server as the name indicates is a database like say ORACLE (RDBMS) or Cassandra (NoSQL). There are many other types of Database servers also. Application server sometimes is used to encapsulate business logic. There are many kinds of programming languages like Java, RubyonRails, Scala, etc. used by the backend. They stretch compute and storage. With the advent of the cloud, you can provision all these servers in less than a minute. If you have skills of both the front and back end, you are a full stack developer. And this programming is called full stack development.

A wise idea if you have lots of time. Otherwise, people specialize either in client or server. A working knowledge of the languages and platforms is essential. Go ahead, take a shot at what you want to specialize in. Update yourself with the tech trends.

God Bless …

Techno Spiritual Entrepreneur with over 30 years of experience in the IT industry. Author of 5 books, trainer and consultant. Seeker of the truth - inclined towards spirituality and technology. Also, love to read and write inspirational stuff.