Front End, Middleware and Back End – what are they and how are they different?
The 6th article in our Jargon Series we look at the software engineering concepts of Front end, Middleware and Back end development.
All 3 of these terms are linked to the process of building a piece of software, an application or a system and refers to the layer or part of the development that is being built. All 3 of these architectural layers work in tandem to produce the entire system/ piece of software. It easier to convey this through separate definitions of the 3 key terms: –
Front end – This relates to the Software’s presentation layer, essentially the user interface (UI) and User Experience (UX). This is basically what elements of the software are visible by the end user and what their interactions with the system will be. Typically we want this to look good and user friendly so front end developers often have web design skills and can find their way around design tools like Photoshop.
Back end – This relates to the Software’s data tier or persistence layer. Typically this is the database(s) that the software is built on which is not directly presented to the user. So once a user requests data, clicks on an option or issues a command of some sort through the UI this is where the data is stored, found by the software, retrieved and then displayed back to the user. It basically serves up the requested information.
Typically code used here will include PHP, C, C++, C#, Python and .Net along with a tool that communicates with the database such as MySQL. This enables the developers to build applications that can efficiently and quickly search, locate and present data.
Middleware – is referred to as middle tier. Essentially Middleware links the front and back end of the system together acting as a bridge between the front and back end. It is often referred to as the glue between the data and the UI. The Middleware is therefore often where the business logic resides.
Typically code used here will include Java and C# and frameworks like SOAP and JSON are used to communicate throughout the breadth of the software.
All three of these elements are required in order to build a complete system/ piece of software. Typically most software developers specialise in just one of these types of development but commonly they will know enough about the other elements to get by and there is some cross over between the areas. A “full stack” developer is a very talented coder who is equally adept at all of these elements.
We like to think that between our team we are pretty well balanced when it comes to these layers and the skill sets required for each so if you’re considering a new software project why not get in touch and see how we can help you improve your business through software.