Arnon Rotem-Gal-Oz's Cirrus Minor
"Making IT work" - Musings of a Holistict Architect
Navigation for Arnon Rotem-Gal-Oz's Cirrus Minor - Describing Anti-Patterns
Content
Sidebar
Footer
December 8, 2008
@ 10:56 PM
Comments [6]
Describing Anti-Patterns
I am (finally) writing some new stuff for my
SOA book
- working on a few Anti-patterns
The Knot - The distributed version of "
big ball of mud
" basically point to point integration
NanoServices - designing/building fine grained services (methods != services)
3-tiered SOA - dressing up 3-tier architecture in SOA clothing (e.g.
database as a service
)
Whitebox Services - exposing internal structure - comes in two flavors exposing technology and allowing access not through contracts
Transactional Integration -
inter-service transactions
(use
Sagas
instead)
RESToid- combing SOA and
REST
without understanding the full implication of either
I am going to publish one of them (probably the "knot") in a few days but I thought I might be able to get a little feedback before that. I chose to describe anti-patterns in the following format:
Context - Presenting the problem (probably through an example)
Consequences - Explaining what the problem is. i.e. what happens when the anti-pattern is prevalent
Causes - discussion on the forces that lead to the anti-pattern
Refactoring - The patterns (and/or other tips) that can be used to fix the design
Known Exceptions - Are there any contexts where using the anti-pattern is acceptable
I'd be happy to hear any comment you have on the anti-patterns listed above as well as comments on the structure for describing them
Thanks
Arnon
Tags:
REST
|
SOA
|
SOA Patterns
|
Software Architecture
Related posts:
SPAMMED Architecture Framework (SAF)
SOA Anti-pattern: Nanoservices
SOA Patterns book – your opinion needed
Yes to NoSQL
Architectural requirements Q&A
Evolving Architectures – Part II but Design is emergent
« SCRUM conference in Israel
|
Home
|
Joined Twitter »
Tuesday, December 09, 2008 12:00:00 AM (GMT Standard Time, UTC+00:00)
If you have not seen this yet, there is a good recent read from Michael Nygard (of "Release It!" fame), on pattern languages in general and context / relationship between patterns:
part 1
and
part 2
.
I don't mean this as a commentary on your patterns (have not had a chance to read what's available yet), just thought you might be interested since this is about the general approach of thinking in patterns ...
Alex
Tuesday, December 09, 2008 8:55:45 AM (GMT Standard Time, UTC+00:00)
Looks like a good list of patterns, will any of these patterns cover issues with the "Entity Services" approach (even just the tradeoffs).
Colin Jack
Tuesday, December 09, 2008 7:41:15 PM (GMT Standard Time, UTC+00:00)
Another question about the book, I'm loving the content/format but I'm wondering if you are going to have a chapter with an example of a best-practice service.
For example I'm sold on the large scale business services encapsulating domain models, exposing resources and communicating with each other through messages (inversion of communication). Anyway I realize this is just one approach and there are lots of tradeoffs involved so an example/case study explaining a few approaches could be quite useful.
Colin Jack
Tuesday, December 09, 2008 8:17:46 PM (GMT Standard Time, UTC+00:00)
@Colin
On entity Services I'll see - I am not sure I can explain that clearly enough
On "best practices" - well, I don't like the term best practices, since different things are best in different contexts. There's a "putting it all together" appendix planned (Udi once said he'd be willing to do it - I need to see if he is still up for that) where the idea is to present a few patterns working in a larger context
Arnon
Arnon Rotem-Gal-Oz
Wednesday, December 10, 2008 11:11:27 AM (GMT Standard Time, UTC+00:00)
You are probably right on "best practices", it sounds like the "putting it all together" chapter will do the job.
Colin Jack
Thursday, December 11, 2008 10:10:24 PM (GMT Standard Time, UTC+00:00)
Here's another question.
Just to put more detail than above, our plan is to have big autonomous business focussed services (CRM/Finance/Delivery). These wouldn't be specific web services, they're more along the lines of business services that Steve Jones/Udi and others discuss. Anyhow each will jealously control one or more databases and domain models, all good. However the plan is to expose (REST) resources from each of these services for clients to use but use normal messaging (NServiceBus/Mass Transit) between them (though Atom feeds would be an option).
Long winded explanation but I've used many of these technologies/approaches before other than REST and I wondered whether what I'm suggesting sound to you like I'm thinking in RESToid terms? Would you instead recommend using REST for read-only (caching as much as possible) but using a messaging metaphor for everything else? How about going the whole hog and using REST for all communication with and between services (so no messages but Atom feeds for communication between services)?
I'm especially interested in your view as not enough people who really understand REST and SOA seem to be discussing the trade offs you get when combining them. Oh and feel free to say "overly long question, wait for the chapter to appear" because it is too long and I really should just wait :)
Colin Jack
Comments are closed.
Navigation
Home
Papers, Articles & Presentations
SPAMMED Architecture Framework
SOA Patterns
About Me
Featured Presentations & Papers
REST introduction (ppt)
SOA Pattern Presentation (pdf)
Fallacies of Distributed Computing (pdf)
Getting SPAMMED for architecture (pdf)
OO Primer (ppt)
Use Case Methodology for large systems (pdf)
Software Architecture (ppt)
Service Oriented Architecture - Intro (ppt)
What is SOA anyway? (pdf)
(New) SOA Patterns Presentation (pdf)
More...
SOA Patterns Book
Published Patterns
Edge Component (pdf)
Gridable Service (pdf)
Service Firewall (html @ InfoQ)
Saga (pdf)
The Knot Antipattern (pdf)
Blogjecting Watchdog (pdf)
Reservation (pdf)
What I am reading
Subscribe to RSS headline updates from:
Tag Cloud
.NET (80)
A&D2007 (6)
Agile (27)
BI (2)
Cloud Computing (3)
dasBlog (1)
data (6)
Design (26)
ESB (2)
Everything (200)
Functional Languages (1)
General (67)
Google (1)
iPhone (1)
Java (9)
Mobile (3)
Mono (1)
new (4)
OO (15)
PaperLnx (6)
Papers (4)
Programming (1)
Project Management (11)
Q&A (3)
refactoring (1)
Requirements (3)
REST (21)
RIA (4)
ruby (8)
scalability (6)
SCRUM (2)
SOA (105)
SOA Patterns (51)
Software Architecture (203)
SPAMMED Process (35)
TDD (8)
Trends (5)
Trends (9)
WCF (8)
xsights (7)
Archives
May, 2010 (2)
April, 2010 (3)
March, 2010 (2)
January, 2010 (2)
December, 2009 (1)
November, 2009 (3)
October, 2009 (3)
September, 2009 (5)
August, 2009 (3)
July, 2009 (1)
June, 2009 (3)
May, 2009 (4)
April, 2009 (2)
March, 2009 (3)
February, 2009 (3)
January, 2009 (5)
December, 2008 (8)
November, 2008 (6)
October, 2008 (4)
September, 2008 (4)
August, 2008 (8)
July, 2008 (6)
June, 2008 (5)
May, 2008 (4)
April, 2008 (4)
March, 2008 (6)
February, 2008 (3)
January, 2008 (5)
December, 2007 (9)
November, 2007 (6)
October, 2007 (11)
September, 2007 (11)
August, 2007 (10)
July, 2007 (9)
June, 2007 (9)
May, 2007 (9)
April, 2007 (6)
March, 2007 (4)
February, 2007 (2)
January, 2007 (5)
December, 2006 (4)
November, 2006 (3)
October, 2006 (4)
September, 2006 (2)
August, 2006 (4)
July, 2006 (3)
June, 2006 (4)
May, 2006 (10)
April, 2006 (8)
March, 2006 (8)
February, 2006 (6)
January, 2006 (6)
December, 2005 (3)
November, 2005 (5)
October, 2005 (6)
September, 2005 (10)
August, 2005 (5)
July, 2005 (15)
June, 2005 (16)
All dates
All Posts
Contact the Author
Contact Arnon
Affiliations
Admin
Sign In