.code { background:#f5f8fa; background-repeat:no-repeat; border: solid #5C7B90; border-width: 1px 1px 1px 20px; color: #000000; font: 13px 'Courier New', Courier, monospace; line-height: 16px; margin: 10px 0 10px 10px; max-height: 200px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 90%; } .code:hover { background-repeat:no-repeat; } .code { background:#f5f8fa; background-repeat:no-repeat; border: solid #5C7B90; border-width: 1px 1px 1px 20px; color: #000000; font: 13px 'Courier New', Courier, monospace; line-height: 16px; margin: 10px 0 10px 10px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 90%; } .code:hover { background-repeat:no-repeat; }

Wednesday, March 25, 2020

Software Architectures


Enterprise Architecture is about understanding all of the different elements that go to make up the enterprise and how those elements interrelate

 -[The Open Group]-

Without Architecture

  • Unpredictable Solutions
  • Poor quality and reduced user experience
  • Stunted evolution
  • Rigid system - Hard to reuse 

There are many types of software architectures.

  • Layered Architecture
  • MVC Architecture
  • Component Based Architecture
  • Service Oriented Architecture
  • Enterprise Architecture

In this article we only discus about the layered architecture and MVC architecture.

Layered Architecture

One of the most common architecture pattern is layered architecture that stand for most Java EE applications. Most of the time layered content four major layers namely presentation, business, persistence and database. But it is not specify special number of layers. These layers are organized as horizontal layers. In small applications there are only 3 layers and in complex application there are five or more layers. In an component it does not worry about other components’ logic.


Presentation layer – Responsible for handle the browser communication logic and user interfaces.

Business layer- According to the request this layer execute specific business logics.

Persistence layer – Contain the classes that responsible for technical stuffs.

Database – Represent data in the application and provide an interface to a database.

Fig.1.Layered Architecture


Applications of layered Architecture

  •          World wide web
  •         Web application development
  •          Mobile application development

Advantages

  •          Developer can work pararllelly in the application.
  •          Increase the scalability, maintainability, and flexibility.
  •          Have different levels of security.
  •          Each component can work independently.
  •          Can reuse the components by multiple applications.

Disadvantages

  •          Add complexity to small applications. Not suitable for small applications.
  •          Can decrease the performance because the data passing through components instead of directly call     for the components.
  •          Sometimes difficult to decide the number of layers.
  •          Chance of various improper stability issues if not handled correctly.

    MVC Architecture

MVC architecture is mostly use software architecture to develop applications. MVC stand for Model, View, Controller.

Model – All the logic related data that user work with is handle by Model. This can represent the data that transfer between the View and the Controller Components. This is like the database in your application.

View – All the UI applications that customer finally interact with are include in this component

Controller – This is act as an interface between Model and View. This process all the business logics.


Fig.2.MVC Architecture

Applications of MVC Architecture

  • Development of mobile application
  • This is first desktop application and now mostly use in web applications.

Advantages

  •         Can create multiple Views of a Model.
  •          Multiple users can access an do the development process. One can work in View while         other work with Controller. So the process is faster.
  •         Support asynchronous techniques.
  •         Can use for develop large web applications.
  •         For the return of data, no need of formatting.
  •          If we do a modification in a component it does not affect to whole architecture.

Disadvantages

  •          Not suitable for small applications.
  •         The complexity is high when develop applications.
  •         Increase the cost because of frequent updates.
  •         Required knowledge of multiple technologies.
  •         Multiple developers need for parallel development.



Written by : Pramodi Samarathunga
                    Madhusanka Edirimanna
 Undergraduates - University of Moratuwa 












No comments:

Post a Comment

SPRING MVC SIMPLE CRUD APPLICATION