What is software architecture in software development
What is system architecture?
Architecture is the preoccupation with the question of how to structure and orchestrate code. What architecture options are there and what are their advantages and disadvantages?
Anyone who deals with software development is often primarily concerned with writing code. In fact, that's not all, it is also important to plan and design the structure of the code - this is exactly the topic that the large field of architecture deals with.
In principle, architecture can be operated at the system and software level. While the system architecture deals with cross-process structures and their orchestration, the software architecture deals with the structure within a process. Some types of architecture exist on both levels, others only on the level of the system or software architecture.
The monolithic architecture
The simplest architecture is the monolith - there is only one single, large, self-contained structure. The monolith works without layers or other structure, which is why it most closely corresponds to a "non-architecture" that one does not have to think about, but that in a certain sense simply arises.
The next more complex approach is the client-server architecture, in which an application is broken down into two parts - a front end and a back end. In some situations, this architecture is the natural approach, for example in web development, which generally separates the UI executable in the web browser from the business logic executed on the server and the data access. Mobile applications also often follow this approach.
The great advantage of this approach is the possibility of being able to control and ensure consistency and integrity at a central point - but this is also the greatest disadvantage, because systems designed in this way have a single point of failure with the central server, which the system in More vulnerable to attack or censorship compared to other approaches.
Peer to Peer (P2P)
An alternative to this are P2P architectures that work in a decentralized and distributed manner, but manage entirely without a server: Instead, all nodes are equal to each other and they exchange data directly. Permanently disrupting an application set up in this way is very time-consuming, as the system itself searches for new ways around holes that have arisen - in case of doubt, via other nodes.
Historically, P2P systems are primarily known from the various more or less legal file sharing sites that were particularly widespread around the turn of the millennium. However, the same concepts, protocols and methods can also be used to develop business applications.
The distributed service-based architectures, which are based on the idea of breaking down an application into smaller functional units that can be developed, operated, tested and updated independently of one another, represent a mixture of all of this. The basic principle is not new, because in the mid-1990s there were corresponding approaches with SOA and WOA, which, however, were still very complex technically.
In the meantime, micro- and nano-services are the common approach with this type of architecture, which is often combined with serverless approaches from the cloud. The ideas behind it, however, are still the same, namely to build an application as a network of individual, self-sufficient and autonomous services instead of developing a single large piece of software.
tl; dr: Architecture deals with the structuring and orchestration of software and the associated components. There are different types of architecture, each with their own advantages and disadvantages - from monolith to client-server and P2P to service-based architectures.
Golo Roden is the founder, CTO and managing director of the native web GmbH, a company specializing in native web technologies.
Read CV »
- Hot guys meet fat girls
- Where do pastors come together?
- Are you a fanatic
- Are Americans politically naive
- How can I learn basic programming languages
- How the fingers take a girl's virginity
- America is serious about terrorism
- Why were the Japanese discriminated against?
- How can a UK citizen withdraw their pension early
- Is there really free speech
- Which universities offer free tuition?
- Why does Johann Hari hates Little Britain
- What are the best MySQL alternatives
- Hedonism or expansion of the comfort zone
- Will buying Ethereum Classic be profitable?
- When do we write the introduction to the essay
- What is a tapeworm
- Why is the Tulu language not famous
- Are Korean dramas popular in the west
- Can foreigners own land in Vietnam
- Can you decipher the animal name RULETT?
- Why is ISIS targeting Turkey
- Tamil is a beautiful language
- What are the best photos of you