Arnon Rotem-Gal-Oz's Cirrus Minor
"Making IT work" - Musings of a Holistict Architect
Navigation for Arnon Rotem-Gal-Oz's Cirrus Minor - Why the Database as a Service is a bad idea
Content
Sidebar
Footer
August 17, 2008
@ 10:35 PM
Comments [2]
Why the Database as a Service is a bad idea
Microsoft recently released SP1 for .NET. While the SP brings
some nice stuff
it seems it also
has some bugs
and a few
less than inspiring components
Another example for a less than stellar idea is the "ADO.NET data services" component. Before I go on to explain why I think that. I should probably mention that this isn't just a Microsoft thing as
IBM also mentions similar ideas
as part of their (broader and sometimes even worse) view of "Information as a Service"
So why is exposing the database through a web-service (RESTful or otherwise) is wrong? let me count the ways
It circumvents the whole idea about "Services" - there's no business logic
It makes for CRUD resources/services
It is exposing internal database structure or data rather than a thought-out contract
It encourages bypassing real services and going straight to their data
It creates a blob service (the data source)
It encourages minuscule demi-serices (the multiple "interfaces" of said blob) that disregard few of the fallacies of distributed computing
It is just client-server in sheep's clothing
When it comes for ADO.NET data services you can add a few other problems like
it isn't really RESTful - you can also "enhance" the services with operations like example 18 in "
Using ADO.NET data services
" : http://host/vdir/northwind.svc/CustomersByCity?city=London (though it does support caching and hypermedia )
Also it doesn't really externalize a state machine it externalizes a relational model
It is built on
Entity Services.
Tags:
.NET
|
data
|
REST
|
SOA
Related posts:
MS Bizspark for startups
Messaging subscriptions - per Message vs. Topics
Config Reader Utility
Eventing in WCF
RTP implementation for .NET
Another WCF gotcha - calling another service/resource within a call
« Evolving Architectures - Architecture Re...
|
Home
|
Visual Studio 2008 Tip : Multiple startu... »
Monday, August 18, 2008 6:42:57 PM (GMT Standard Time, UTC+00:00)
Someone left here a comment which I deleted by mistake. Here is what the guy said:
"I agree with it not being the best way to expose business logic - but for querying data from, say, an ad-hoc reporting tool using Silverlight application hitting ADO.NET Data Services in read-only mode, it's pretty slick (there are other questions to be answered there, such as security and DoS attacks, but hey, ADO.NET DS is a CTP, right?).
So my vote is if you need queryability + services, then ADO.NET Data Services in read-only mode + a custom WCF service with operations might be the way to go."
My answer to this is that I didn't say there is no scenario in the world that Data as a Service can't fit. I do think that it is a very bad idea as a recommended practice or a tool from a vendor.
I should also say that in my opinion the scenario in the comment above is not a good fit for ADO.NET data service.I would hesitate to allow "ad-hoc reporting tool" hitting a database directly in almost any circumstances
Arnon
Arnon Rotem-Gal-Oz
Wednesday, August 27, 2008 2:58:20 PM (GMT Standard Time, UTC+00:00)
When asked about data as a service, I usually respond by asking if they care about their data. And if they do, I start asking how they will manage transactions. And then I ask if they are comfortable letting some external entity control a database transaction and database locks inside their database. The conversation usually doesn't get much farther.
Evan
Comments are closed.
RSS/Subscribe
Navigation
Home
Papers, Articles & Presentations
SPAMMED Architecture Framework
SOA Patterns
About Me
Search
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)
Use Cases Methodology for large systems (ppt)
Software Architecture (ppt)
Service Oriented Architecture - Intro (ppt)
What is SOA anyway? (pdf)
O/R Mapping: Why/When (pdf)
Order my SOA Patterns Book
Published Patterns
Edge Component (pdf)
Gridable Service (pdf)
Service Firewall (html @ InfoQ)
Saga (pdf)
What I am reading
Subscribe to RSS headline updates from:
Tag Cloud
.NET (66)
A&D2007 (6)
Agile (21)
BI (2)
Cloud Computing (1)
dasBlog (1)
data (5)
Design (21)
ESB (2)
Everything (200)
Functional Languages (1)
General (62)
Google (1)
Java (7)
Mobile (2)
new (4)
OO (11)
PaperLnx (6)
Papers (3)
Project Management (8)
Q&A (1)
refactoring (1)
Requirements (2)
REST (15)
RIA (3)
ruby (8)
scalability (6)
SCRUM (2)
SOA (79)
SOA Patterns (33)
Software Architecture (175)
SPAMMED Process (33)
TDD (5)
Trends (1)
Trends (8)
WCF (2)
xsights (2)
Archives
December, 2008 (2)
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