Book Image

Software Architecture with Spring 5.0

By : René Enríquez, Alberto Salazar
Book Image

Software Architecture with Spring 5.0

By: René Enríquez, Alberto Salazar

Overview of this book

Spring 5 and its ecosystem can be used to build robust architectures effectively. Software architecture is the underlying piece that helps us accomplish our business goals whilst supporting the features that a product demands. This book explains in detail how to choose the right architecture and apply best practices during your software development cycle to avoid technical debt and support every business requirement. Choosing the right architecture model to support your business requirements is one of the key decisions you need to take when a new product is being created from scratch or is being refactored to support new business demands. This book gives you insights into the most common architectural models and guides you when and where they can be used. During this journey, you’ll see cutting-edge technologies surrounding the Spring products, and understand how to use agile techniques such as DevOps and continuous delivery to take your software to production effectively. By the end of this book, you’ll not only know the ins and outs of Spring, but also be able to make critical design decisions that surpass your clients’ expectations.
Table of Contents (21 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Understanding client-server architectures


In client-server architectures, each running process is either a server or a client. They interact with each other using requests that are sent through a defined communication channel, in a network that connects them together. We have all used an email service, and we understand how such a service works; that is the quintessential example of a client-server architecture, illustrated in the following diagram:

Email service components

We will now provide a brief overview of each component in the preceding diagram, in order to explain how it fits within the client-server architectural style. The precedingdiagram is comprised of the following parts:

  • The server (1)
  • The request payload (2)
  • The clients accessing the server resources (3)

Server

The server is in charge of processing the received requests (which should comply with a predefined format), and then producing results.

Once the data is retrieved, a whole process begins, checking the requests before processing...