10 tips on how to prevent business value risk
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Feb 11, 2009
App Arch Guide 2.0 (Microsoft patterns&practices), Chapter 6, talks about architectural styles like Message-Bus, Layered Architecture, SOA. Beside those styles there are numerous architectural patterns like Plug-in, Peer-to-Peer, Publish-Subscribe. Some authors make a difference between architectural styles, patterns and metaphors.
What is an architectural style? According to App Arch Guide, an architectural style is:
A set of principles. You can think of it as a coarse-grained pattern that provides an abstract framework for a family of systems. An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems.
The authors of the guide list a number of architectural styles:
Architecture style Description Client-Server Segregates the system into two applications, where the client makes a service request to the server. Component-Based Architecture Decomposes application design into reusable functional or logical components that are location-transparent and expose well-defined communication interfaces. Layered Architecture Partitions the concerns of the application into stacked groups (layers). Message-Bus A software system that can receive and send messages that are based on a set of known formats, so that systems can communicate with each other without needing to know the actual recipient. N-tier / 3-tier Segregates functionality into separate segments in much the same way as the layered style, but with each segment being a tier located on a physically separate computer. Object-Oriented An architectural style based on division of tasks for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object. Separated Presentation Separates the logic for managing user interaction from the user interface (UI) view and from the data with which the user works. Service-Oriented Architecture (SOA) Refers to Applications that expose and consume functionality as a service using contracts and messages.
Each of those architectural styles are applied to specific areas of interest:
Category Architecture styles Communication Service-Oriented Architecture (SOA), Message Bus, Pipes and Filters Deployment Client/server, 3-Tier, N-Tier Domain Domain Model, Gateway Interaction Separated Presentation Structure Component-Based, Object-Oriented, Layered Architecture
J.D. Meier, summarizing a few key points from the book A Practical Guide to Enterprise Architecture by James McGovern, Scott W. Ambler, Michael E. Stevens, James Linn, Vikas Sharan, and Elias K. Jo, noted a subtle difference between architectural styles and patterns:
- An architectural style is a central, organizing concept for a system.
- An architectural pattern describes a coarse-grained solution at the level of subsystems or modules and their relationships.
- A system metaphor is more conceptual and it relates more to a real-world concept over a software engineering concept.
David Calvert made in 1996 a partial list of architectural styles/patterns:
- Dataflow Systems -- Batch sequential, Pipes and filters.
- Call-and-return systems -- Main program and subroutines, OO systems, Hierarchical layers.
- Independent components -- Communicating processes, Event Systems.
- Virtual Machines -- Interpreters, Rule-based systems.
- Data-centered systems (repositories) -- Databases, Hypertext system, Blackboards.
Other more modern styles/patterns are: Plugin, Peer-to-Peer, Shared Nothing Architecture, Representational State Transfer (REST), Front-end and back-end. There is a more complete list on Wikipedia.
Mobile and the New Two-Tiered Web Architecture
A Guide to Branching and Merging Patterns
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
maybe it would be better to talk about relevant styles in context of a partcular architectural view( like logical, physical, etc). some styles are really peers/choices in the physical view and some in the logical view
The table below "Each of those architectural styles are applied to specific areas of interest:" somehow tries to make such a distinction but it's not of course formally stated with respect to views.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
2 comments
Watch Thread Reply