architectural concerns Flashcards
What are the functionalities encapsulated in each of the application layers in the respective pattern by Fowler
According to Fowler there are three distinct application layers.
1. Presentation layer: This layer is completely focused on the presenta-
tion of resources. Its tasks are rendering data, reacting to events and
processing sessions via communication/ conversation logic.
2. Application Logic Layer: This layer implements the functions offered
by the presentation layer. It also contains the logic used by the
application.
3. Resource Layer: The logic to access data needed by the application
logic is embedded in this layer. It consists of databases, files, content,
queues and other support functions.
What is the relation between layers and tiers?
Layers describe functionality and logic that is contained inside of a con-
ceptual block of the application. These are split into the above mentioned
three layers. The layers can be seen as functional organization units.
Tiers are an accumulation of the layers. If we take the two-tier model
with client and server as an example the question appears on how much
functionality should be on the client side and how much on the server side.
Tiers can therefore be seen as physical organization units.
what is the architectural decision for the SOA
- Thin client: Thin clients have little to no presentation logic. They
essentially act as dumb terminals to the program. - Thick client: Thick clients host some of the presentation logic and
sometimes more logic than that. Depending on the used model a
thick client can be responsible for the presentation layer and part of
or all of the application layer. The resource layer stays on the server
side.
Where does the application split lie in the case of remote presen-
tation/distributed/remote data applications? Name examples of
such types of applications
- Remote presentation: In these types of applications the client is re-
sponsible for the presentation layer, while the server is operating the
application and resource layer. This split can be found in single page
applications (SPA) or multi-device web applications. - Distributed applications: In these types of applications the client is
responsible for the presentation layer, while the server operates the
resource layer. The application layer is partly done by the client
and partly by the server. This often means that some processing is
delegated from the client to a funciton on the server. This can also
be seen in SPAs and many current web applications. - Remote data applications: In these types of applications the client is
responsible for the presentation layer and all of the application layer,
the server is responsible for the resource layer. Data is accessed by
high-level interfaces to resources. This type of application provides
location transparency to resources. This architecture is often seen in
mobile/ platform games.