Diagram: A Component Modeling Example


This article provides an introduction to component modeling beyond the UML notation. It describes how I typically do component modeling, combining the non-functional and functional aspects of software to be built. Continue reading “Diagram: A Component Modeling Example”

The seven most important corner-stones of successful Solution Architectures


I have come to realize that successful (typical) Solution Architectures rely on only a handful of areas (let’s call them corner-stones) that need to be defined. Examples are: Non-Functional Requirements, Architectural Decisions, etc. Naturally, those areas need to be defined and thought about that much more carefully… Continue reading “The seven most important corner-stones of successful Solution Architectures”

Diagram: Layering Software-Centric Systems (an example for a Layer Diagram)


Read this article if you want to learn how to layer software centric server-based system. This article is not geared towards a specific technology and the concepts presented can be applied to any type of server-centric architectures, such as J2EE or .NET It does – however – have a focus on server-side processing such as web-based, rich-client or service-oriented architectures. Continue reading “Diagram: Layering Software-Centric Systems (an example for a Layer Diagram)”

Knowledge Nugget: What is Horizontal Scalability (Scale Out)?


Read this knowledge nugget if you want to learn about horizontal scalability. Just like vertical scalability it is a term that is more or less clear. There are – however – different interpretations around… Continue reading “Knowledge Nugget: What is Horizontal Scalability (Scale Out)?”

Knowledge Nugget: What is Vertical Scalability (Scale Up)?


Read this knowledge nugget if you want to learn more about vertical scalability. It is a term that is more or less clear. From time to time you can – however – find different interpretations of it… Continue reading “Knowledge Nugget: What is Vertical Scalability (Scale Up)?”

Architectural Pattern: Clustering for Single-Tier Network-Centric J2EE Software Applications


Read this article if you want to learn about the principles of clustering for a single-tier J2EE application. I know that clustering is a commonly found pattern in today’s IT world. I nevertheless wanted to cover it for those with less experience in a short entry as it is an essential pattern to know.

I outlined the objective, variations and commonly found patterns. After reading this article you should be able to distinguish between clustering and availability, know the advantages and disadvantages of clustering and be able to recognize the infrastructure impact a clustered application has. Continue reading “Architectural Pattern: Clustering for Single-Tier Network-Centric J2EE Software Applications”

Architectural Pattern: Single Node Deployment Configuration for Multi-Tier Network-Centric Software Applications


Read this article if you want to earn how you can deploy a web-centric application on a single node in a complex network infrastructure (with Internet zone, DMZ and Intranet zone). I outlined a number of alternative configurations, including advantages and disadvantages.

This is a commonly found pattern in today’s IT world. I nevertheless wanted to cover it in a short entry as it is an essential pattern to know. Continue reading “Architectural Pattern: Single Node Deployment Configuration for Multi-Tier Network-Centric Software Applications”