Flylib.com

Books Software

 
 
 

The Software Fortress Model


The Software Fortress Model

This book introduces a new approach for modeling large enterprise systems: the software fortress model. The software fortress model treats enterprise systems as a series of self-contained software fortresses. Each fortress makes its own choices as to software platform and data storage mechanisms and interacts with other fortresses through carefully crafted treaties . Without going into too much detail this early, I present in Figure P.3 a view of the same enterprise that is shown in Figure P.2, but as seen from the software fortress model. Don't worry at this point about what the cartoon figures mean; they will become familiar soon enough.

Figure P.3. The Enterprise as Seen from the Software Fortress Model

The software fortress model pushes simplification of the enterprise architecture further and further. As we use the model to decompose the enterprise, Figure P.3 becomes a series of collaborations, as shown in Figure P.4.

Figure P.4. The Enterprise as Fortress Collaborations

I will discuss what the software fortress model is throughout this book. For now, let's focus on why we need this model.

The most important reason for the software fortress model is so that we can better understand how our systems interact within our overall enterprise architecture. Even without knowing the details of how the software fortress model works, you can quickly get the sense that Figures P.3 and P.4 are a lot more approachable than Figure P.2.

We already have many good techniques for modeling software systems. The most prevalent is the Unified Modeling Language (UML). But existing systems, including UML, focus on the issues involved with designing software systems. They have little to offer the enterprise architect in modeling how the various software systems that make up the enterprise architecture relate to each other. In other words, they are fine for modeling a sales system, an inventory system, or an accounts payable system. They are not useful for showing how sales, inventory, and accounts payable systems need to work together to coordinate a customer purchase.

The software fortress model picks up where techniques like UML leave off. Or, to be more precise, UML picks up where the software fortress model leaves off. The software fortress model helps us describe and plan for the relationships between software systems. These relationships ultimately define the enterprise architecture. UML and related technologies can then be used to document how individual software systems are designed.


Who Cares about Software Fortresses?

The software fortress model has a lot to offer, especially for the high-level manager who is trying to understand the overall enterprise architecture, and for the enterprise architect who is trying to explain it.

For CTOs, the software fortress model offers these immediate payoffs:

  • It aligns technology boundaries with organizational boundaries within the enterprise.

  • It provides an intellectual framework for modeling and managing the technical complexity of enterprise systems.

  • It cleanly separates issues that must be decided at the enterprise level from those that can be decided at the local level.

  • It is independent of technology and allows groups with different technology biases to discuss architectures using a common language.

Enterprise architects will appreciate the following additional benefits of the software fortress model:

  • It cleanly defines natural technical boundaries across which autonomous groups can agree to disagree .

  • It provides a methodology for achieving interoperability between software systems.

  • It provides a methodology for defining security at the enterprise level.

  • It provides an intellectual framework within which different technologies can be meaningfully compared .

But CTOs and enterprise architects are not the only ones who will gain from the software fortress model; this model has the power to transform the entire industry. For the first time, the entire industry will have a lingua franca for discussing enterprise applications. Customers and clients will be able to communicate readily with programmers and architects, Java programmers will be able to understand Visual Basic programmers, and architects from different business fields will be able to compare approaches to common problems.

Over time, the software fortress model will influence the software platforms themselves . Tools will appear to directly support the model. Platforms will evolve as the model exposes underlying platform weaknesses. New technological approaches will be explored as the model helps us better understand the needs of the enterprise.

Perhaps the most important contribution of the model is simplification: simplification of security, simplification of interoperability, and simplification of collaboration. Simple systems are inherently better than complex systems. They are cheaper to build, they are more reliable, and they are more secure. We can all get behind that.