Diagram: A more complex Layer Diagram (example)


This article describes a best practice for a layer diagram, showing a typical architecture for a server-centric application as can commonly be found in J2EE- or .NET-based Web, Service-oriented or Rich-Client applications.

Figure 1 shows a comprehensive example or a Layer Diagram.

A more complex layer diagram
Figure 1 - A more complex layer diagram (click on image to see in full size)

It is important to note that there are different ways to construct layer diagrams. This is just one of them. The example demonstrates a best practice I have developed over the years and commonly use in my work.

Solution Components

The software system consists of:

  • A Browser client – Accessing the server via HTTP and HTTPS
  • A Server-based application on a J2EE application server providing static HTML content and dynamic content
  • A Relational Database serving as persistent data-store

Technical components are colored orange, functional components and data are colored in green. Responsibilities and are colored in white.

Diagram Elements

The diagram consists of the following major elements:

  • Tiers – The diagram consists of three tiers: client (browser), server and database
  • Layers – The diagram shows different layers and their responsibilities. The client- and database-tier each contain one layer, not showing more content.
    The server contains 5 layers:

    • Static Content Layer – A layer serving static HTTP content. If you have high static load this layer will more likely be placed into a separate tier.
    • Web Presentation Layer – A layer serving the web-site (dynamic HTTP content) and as an interface to the business logic of the application.
    • Service Layer – A layer providing services to the web presentation layer and executing business logic implemented by the Logic Layer.
    • Logic Layer – A layer implementing business logic with the help of business rules. The Logic Layer accesses the Data Layer via the Data Access Layer.
    • Data Access Layer – The primary purpose of the Data Access Layer is to transform Logic Layer business objects into Data Access Layer POJOs and vice versa as well as providing access to the Data Layer via Data Access Objects and – in this case – Hibernate.
    • Data Layer – The Data Layer stores the application’s data in the database schema and is accessed via a JDBC interface provided by the Database Tier.
  • Specialized Responsibilities – In addition some of the layers have specialized responsibilities that are carried out transparent to the layer above. Examples are:
    • Security – Implemented by the web presentation layer transparent to the browser
    • Caching – Implemented by the data access layer, transparent to the layers above.
    • Asynchronous processes – Implemented in the business logic layer transparent to the layers above.

Notable Features

Notable features of the layer diagram shown are:

  • The diagram represents a best practice for constructing server-centric software applications
  • The diagram shows technical components and responsibilities
  • The diagram shows functional components and how they use the capabilities provided by the technical components
  • How data is transformed and transported between layers and tiers

Additional Notes

  • Layer diagrams provide a view of a system’s logical architecture.
  • Layer diagrams do not provide details on the physical or operational architecture. For this operational diagrams, deployment diagrams or network diagrams are more suitable.

References

[Amb2009] Ambler, S. 2009, “UML 2 Deployment Diagrams”, Agile Modeling (AM) Homepage [online] available at http://www.agilemodeling.com/artifacts/deploymentDiagram.htm

[Pic2010] Pichler, M. 2010, “Diagram: A more complex Network Diagram (example)”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/

[Pic2010] Pichler, M. 2010, “Diagram: Layering Software-Centric Systems (an example for a Layer Diagram)”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/

[Pic2010] Pichler, M. 2010, “Diagram: The Network Diagram”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/

[Pic2010] Pichler, M. 2010, “Knowledge Nugget: What is a Layer in Software Architecture?”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/

[Pic2010] Pichler, M. 2010, “Knowledge Nugget: What is a Tier in Software Architecture?”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/

[Pic2010] Pichler, M. 2010, “On documenting Software Architecture (for Business Applications)”, A Practical Guide to Software Architecture [online] available at https://applicationarchitecture.wordpress.com/

Copyright © 2010 Michael Pichler

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s