
Software Fortresses
Modeling Enterprise Architectures
Roger Sessions(Author)
Addison Wesley (Publisher)
Published on 5. March 2003
Book
Paperback/Softback
304 pages
978-0-321-16608-1 (ISBN)
Description
This book introduces a new approach for modeling large enterprise systems: the software fortress model. In the software fortress model, an enterprise architecture is viewed as a series of self-contained, mutually suspicious, marginally cooperating software fortresses interacting with each other through carefully crafted and meticulously managed treaty relationships. The software fortress model is an intuitive, simple, expressive approach that maps readily to existing technologies such as .NET and Java 2 Enterprise Edition (J2EE). This book is designed to meet an immediate need to define, clarify, and explain the basics of this new modeling methodology for large enterprise software architectures.
More details
Language
English
Place of publication
New Jersey
United States
Publishing group
Pearson Education (US)
Target group
College/higher education
Dimensions
Height: 235 mm
Width: 187 mm
Thickness: 20 mm
Weight
601 gr
ISBN-13
978-0-321-16608-1 (9780321166081)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Person
Roger Sessions is one of the world's leading experts in enterprise software architectures and the developer of the software fortress model. He has written six books and dozens of articles. He writes and publishes ObjectWatch, a widely read, highly regarded newsletter covering hotly debated topics on high-end software technologies. More than 50,000 people have attended his architect-level workshops in more than 30 countries.
0321166086AB01242003
0321166086AB01242003
Content
Preface.
The Software Fortress Model.
Who Cares about Software Fortresses?
The Goals of This Book.
Who Should Read This Book.
The History of the Software Fortress Model.
The Organization of This Book.
Acknowledgments.
About the Author.
1. Introduction.
Definitions.
Software Fortress Organization.
Typical Technologies.
The Fortress as a Trust Boundary.
The Main Fortress Types.
Treaty Relationships.
The Fortress as a Unit of Interoperability.
Objects, Components, and Fortresses.
Summary.
2. Diagramming Software Fortresses.
Basic Software Fortress Diagram.
Fortress-Ally Diagram.
Treaty-Ally Diagram.
Sequence-Ally Diagram.
Fortress-Ally-Responsibility Cards.
Treaty-Ally-Responsibility Cards.
Fortress Overview Document.
Treaty Overview Document.
Summary.
3. Transactions.
Transactionally Aware Resources.
Tightly Coupled Single-Resource Transactions.
Multiple-Resource Transactions.
Loosely Coupled Multiple-Resource Transactions.
Tightly Coupled Multiple-Resource Transactions.
The Distributed Transaction Coordinator.
Summary.
4. Drawbridges.
Drawbridge Overview.
Summary.
5. Synchronous Drawbridges.
Components.
Homogeneous Synchronous Drawbridges.
Heterogeneous Synchronous Drawbridges.
Summary.
6. Asynchronous Drawbridges.
Message Queues.
Implementation of Asynchronous Drawbridges.
Persistence and Transactions in Queues.
Heterogeneous Asynchronous Drawbridges.
Homogeneous Asynchronous Drawbridges.
Advantages of Asynchronous Drawbridges
Nonblocking Workflow.
Pseudoreliability.
Workload Averaging.
Poor-Man's Clustering.
Performance Problems of Asynchronous Drawbridges.
Summary.
7. Guards and Walls.
Fortification.
Validation.
Auditing.
Authentication.
Privacy.
Integrity.
Nonrepudiation.
Authorization.
Summary.
8. Treaties.
A Treaty between Two Fortresses.
Treaty Considerations.
Summary.
9. General Fortress Issues.
Scalability.
Reliability.
Integrity.
Summary.
10. Internet Fortresses.
Presentation Fortresses.
J2EE versus the .NET Approach.
Scalability.
Security.
Reliability.
Integrity.
Web Service Fortresses.
J2EE versus the .NET Approach.
Technology Overview.
SOAP Problems.
Scalability.
Security.
Reliability.
Integrity.
Summary.
11. Business Application Fortresses.
Foundation: Components and COMWare.
State Management.
Transaction Boundary Management.
State Management Revisited.
Leveraging Clusters.
.NET versus the J2EE Approach.
Language.
Platform Support.
Cost.
Summary.
12. Legacy, Service, and Treaty Management Fortresses.
Legacy Fortresses.
Service Fortresses
Broadcast Service Fortresses.
Data-Sharing Fortresses.
Security Fortresses.
Loosely Coupled Transaction Management Service Fortresses.
Treaty Management Fortresses.
Summary.
13. Software Fortress Design Review.
Group One: Enterprise Overview Questions.
Question 1: Do we need a software fortress architecture?
Question 2: Do we all have the same understanding of the software fortress methodology?
Question 3: Have the requirements for each fortress been clearly articulated?
Question 4: Have our fortresses been partitioned with organizational boundaries in mind?
Question 5: Are our fortresses organized around natural trust boundaries?
Question 6: Have we really made enterprise-level decisions at the enterprise level and fortress-level decisions at the fortress level?
Question 7: Have we confused objects, components, and fortresses?
Question 8: Have we identified all of the security issues?
Group Two: Enterprise Architecture Questions.
Question 9: Do we have the right number of fortresses?
Question 10: Are all drawbridge requests idempotent?
Question 11: Are all drawbridge requests for substantial work?
Question 12: Do we have any tightly coupled transactions across fortresses?
Question 13: Are all drawbridges heterogeneous asynchronous?
Question 14: Does all interfortress communication pass through drawbridges?
Question 15: Have we considered all of the risk factors inherent in our presentation and Web service fortresses?
Group Three: Fortress Architecture Questions.
Question 16: Are we considering fortress-appropriate technologies?
Question 17: If we must use a synchronous drawbridge, do we have an asynchronous back end?
Question 18: Are we using more than one technology base within a single fortress?
Question 19: Have we designed a scale-out architecture?
Question 20: Have we designed a fortress architecture that can leverage loosely coupled clusters for reliability?
Question 21: Have we designed adequate security for each of our guards?
Question 22: Have we built effective walls around the fortress?
Question 23: Are we using only homogeneous synchronous communications within the fortress?
Question 24: Do all of our outgoing communications pass through envoys?
Question 25: Is all of our data being stored in the data strongbox?
Summary.
14. Case Study.
The Problem.
First-Pass Design.
Second-Pass Design.
The ProcessOrder Drawbridges.
The CheckInventory Drawbridges.
Guards.
Summary.
15. Postlude.
Ten Important Points about Software Fortresses.
Ten Reasons to Adopt the Software Fortress Model.
Ten Rules for Software Fortress Design.
Ten Controversial Ideas within the Software Fortress Model.
Ten Considerations for Evaluating J2EE versus .NET.
Ten Observations on the State of the Software Industry.
Where to Go Next.
Final Words.
Glossary.
Index. 0321166086T01292003
The Software Fortress Model.
Who Cares about Software Fortresses?
The Goals of This Book.
Who Should Read This Book.
The History of the Software Fortress Model.
The Organization of This Book.
Acknowledgments.
About the Author.
1. Introduction.
Definitions.
Software Fortress Organization.
Typical Technologies.
The Fortress as a Trust Boundary.
The Main Fortress Types.
Treaty Relationships.
The Fortress as a Unit of Interoperability.
Objects, Components, and Fortresses.
Summary.
2. Diagramming Software Fortresses.
Basic Software Fortress Diagram.
Fortress-Ally Diagram.
Treaty-Ally Diagram.
Sequence-Ally Diagram.
Fortress-Ally-Responsibility Cards.
Treaty-Ally-Responsibility Cards.
Fortress Overview Document.
Treaty Overview Document.
Summary.
3. Transactions.
Transactionally Aware Resources.
Tightly Coupled Single-Resource Transactions.
Multiple-Resource Transactions.
Loosely Coupled Multiple-Resource Transactions.
Tightly Coupled Multiple-Resource Transactions.
The Distributed Transaction Coordinator.
Summary.
4. Drawbridges.
Drawbridge Overview.
Summary.
5. Synchronous Drawbridges.
Components.
Homogeneous Synchronous Drawbridges.
Heterogeneous Synchronous Drawbridges.
Summary.
6. Asynchronous Drawbridges.
Message Queues.
Implementation of Asynchronous Drawbridges.
Persistence and Transactions in Queues.
Heterogeneous Asynchronous Drawbridges.
Homogeneous Asynchronous Drawbridges.
Advantages of Asynchronous Drawbridges
Nonblocking Workflow.
Pseudoreliability.
Workload Averaging.
Poor-Man's Clustering.
Performance Problems of Asynchronous Drawbridges.
Summary.
7. Guards and Walls.
Fortification.
Validation.
Auditing.
Authentication.
Privacy.
Integrity.
Nonrepudiation.
Authorization.
Summary.
8. Treaties.
A Treaty between Two Fortresses.
Treaty Considerations.
Summary.
9. General Fortress Issues.
Scalability.
Reliability.
Integrity.
Summary.
10. Internet Fortresses.
Presentation Fortresses.
J2EE versus the .NET Approach.
Scalability.
Security.
Reliability.
Integrity.
Web Service Fortresses.
J2EE versus the .NET Approach.
Technology Overview.
SOAP Problems.
Scalability.
Security.
Reliability.
Integrity.
Summary.
11. Business Application Fortresses.
Foundation: Components and COMWare.
State Management.
Transaction Boundary Management.
State Management Revisited.
Leveraging Clusters.
.NET versus the J2EE Approach.
Language.
Platform Support.
Cost.
Summary.
12. Legacy, Service, and Treaty Management Fortresses.
Legacy Fortresses.
Service Fortresses
Broadcast Service Fortresses.
Data-Sharing Fortresses.
Security Fortresses.
Loosely Coupled Transaction Management Service Fortresses.
Treaty Management Fortresses.
Summary.
13. Software Fortress Design Review.
Group One: Enterprise Overview Questions.
Question 1: Do we need a software fortress architecture?
Question 2: Do we all have the same understanding of the software fortress methodology?
Question 3: Have the requirements for each fortress been clearly articulated?
Question 4: Have our fortresses been partitioned with organizational boundaries in mind?
Question 5: Are our fortresses organized around natural trust boundaries?
Question 6: Have we really made enterprise-level decisions at the enterprise level and fortress-level decisions at the fortress level?
Question 7: Have we confused objects, components, and fortresses?
Question 8: Have we identified all of the security issues?
Group Two: Enterprise Architecture Questions.
Question 9: Do we have the right number of fortresses?
Question 10: Are all drawbridge requests idempotent?
Question 11: Are all drawbridge requests for substantial work?
Question 12: Do we have any tightly coupled transactions across fortresses?
Question 13: Are all drawbridges heterogeneous asynchronous?
Question 14: Does all interfortress communication pass through drawbridges?
Question 15: Have we considered all of the risk factors inherent in our presentation and Web service fortresses?
Group Three: Fortress Architecture Questions.
Question 16: Are we considering fortress-appropriate technologies?
Question 17: If we must use a synchronous drawbridge, do we have an asynchronous back end?
Question 18: Are we using more than one technology base within a single fortress?
Question 19: Have we designed a scale-out architecture?
Question 20: Have we designed a fortress architecture that can leverage loosely coupled clusters for reliability?
Question 21: Have we designed adequate security for each of our guards?
Question 22: Have we built effective walls around the fortress?
Question 23: Are we using only homogeneous synchronous communications within the fortress?
Question 24: Do all of our outgoing communications pass through envoys?
Question 25: Is all of our data being stored in the data strongbox?
Summary.
14. Case Study.
The Problem.
First-Pass Design.
Second-Pass Design.
The ProcessOrder Drawbridges.
The CheckInventory Drawbridges.
Guards.
Summary.
15. Postlude.
Ten Important Points about Software Fortresses.
Ten Reasons to Adopt the Software Fortress Model.
Ten Rules for Software Fortress Design.
Ten Controversial Ideas within the Software Fortress Model.
Ten Considerations for Evaluating J2EE versus .NET.
Ten Observations on the State of the Software Industry.
Where to Go Next.
Final Words.
Glossary.
Index. 0321166086T01292003