Skip to main content

Monolithic Architecture

 

Monolithic Architecture

Monolith means composed all in one piece. The Monolithic application describes a single-tiered software application in which different components combined into a single program from a single platform. Components can be:

  • Authorization — responsible for authorizing a user
  • Presentation — responsible for handling HTTP requests and responding with either HTML or JSON/XML (for web services APIs).
  • Business logic — the application’s business logic.
  • Database layer — data access objects responsible for accessing the database.
  • Application integration — integration with other services (e.g. via messaging or REST API). Or integration with any other Data sources.
  • Notification module — responsible for sending email notifications whenever needed.

Example for Monolithic Approach

Consider an example of Ecommerce application, that authorizes customer, takes an order, check products inventory, authorize payment and ships ordered products. This application consists of several components including e-Store User interface for customers (Store web view) along with some backend services to check products inventory, authorize and charge payments and shipping orders.

Image for post

Despite having different components/modules/services, the application is built and deployed as one Application for all platforms (i.e. desktop, mobile and tablet) using RDBMS as a data source. Benefits and Drawbacks of Monolithic Architecture.

1. Monolithic architecture

2.    Layerd archtecture.

3.     Virtual machine architecture

4.     Exokernel architecture

5.    Client server architecture

      Micro kernel architecture

Benefits:

  • Simple to develop — At the beginning of a project it is much easier to go with Monolithic Architecture.
  • Simple to test. For example, you can implement end-to-end testing by simply launching the application and testing the UI with Selenium.
  • Simple to deploy. You have to copy the packaged application to a server.
  • Simple to scale horizontally by running multiple copies behind a load balancer.

Drawbacks:

  • Maintenance — If Application is too large and complex to understand entirely, it is challenging to make changes fast and correctly.
  • The size of the application can slow down the start-up time.
  • You must redeploy the entire application on each update.
  • Monolithic applications can also be challenging to scale when different modules have conflicting resource requirements.
  • Reliability — Bug in any module (e.g. memory leak) can potentially bring down the entire process. Moreover, since all instances of the application are identical, that bug impact the availability of the entire application
  • Regardless of how easy the initial stages may seem, Monolithic applications have difficulty to adopting new and advance technologies. Since changes in languages or frameworks affect an entire application, it requires efforts to thoroughly work with the app details, hence it is costly considering both time and efforts.

Comments

Popular posts from this blog

Defination of OS(operating system) and its concepts

    What do you mean by operating system?     Definition :  An operating system is a program that act as an interface between the user of a computer and the                                      Computer hardware. Operating system is a first program that gets loaded into the memory through a process called booting. Concepts of operating system : ·                       The purpose of operating system is to provide an environment in which a user can execute program in a convenient and efficient manner. ·                       Operating system is an integrated set of program that ma...

Multi Programming Operating System

  Multi programming  system ·           Multi programming operating system allows multiple users to execute multiple programs using a single CPU concurrently i.e. at the same time. ·           In multiprogramming several process are kept in the main memory and CPU execute all these processes concurrently. It means, the CPU immediately switches from one process to next that are ready to get executed ·           In such an operating system when one process start process start performing the instructions from several programs at the same time. ·           Rather, it means that there are number program available to CPU and that portion of one is executed, then segment of another and so on                                 ...

Multi user Operating System

  Multi user operating system ·           In a multi-user operating system, multiple number of user can access different resources of a computer at a same time. ·           The access is provided using a network that consists of various personal computer attached to a mainframe computer system.                                                              diagram of multi -user operating system       ·           The various personal computer can send and receive information to mainframe computer system. ·           The example    of multi-user OS are UNIX, windows 2000,novell netware.            sing...

Layered Operating System

  Layered Operating System Layered Structure is a type of system structure in which the different services of the  operating system  are split into various layers, where each layer has a specific well-defined task to perform . It was created to improve the pre-existing structures like the Monolithic structure ( UNIX ) and the Simple structure ( MS-DOS ). Example –  The Windows NT operating system uses this layered approach as a part of it . Design Analysis : The whole Operating System is separated into several layers ( from 0 to n ) as the diagram shows. Each of the layers must have its own specific function to perform. There are some rules in the implementation of the layers as follows. The outermost layer must be the User Interface layer. The innermost layer must be the Hardware layer. A particular layer can access all the layers present below it but it cannot access the layers present above it. That is layer n-1 can access all the layers from n-2 to 0 but it canno...

Real-time system

  R eal-time system ·           In a real time operating system, a job is to be completed within the    rigid time constraints otherwise job loses its meaning. ·           A real time system function correctly only if it returns the correct result within its time constraints ·           Thus, in a    real-time system, the correctness of the    computation not only depends upon the logical correctness of the computation but also upon the time at which the result is produced. R eal-time system In a real time system various functions like process scheduling, memory management, I/O management and file  management are performed as follows : 1.         Process scheduling  . the real time system uses priority based pre-emptive scheduling. each process is assigned a certain level of ...