first_page

Rocky Lhotka’s Fallacy of the Data Layer

Rocky Lhotka does not come off as a “geek.” Rocky reads like a professional writer with human qualities who happens to discuss technical subjects. I categorize the RSS feed for his Blog under ‘News for Humans’—right along with Miguel de Icaza. You can guess who is listed under my other category, ‘News for Geeks by Geeks’—hey, why not download the OPML file from my company web site and see the whole thang.

His TheServerSide.net article, “The Fallacy of the Data Layer,” reveals the presence of imperfect humanity in solutions we might be tempted to view as purely technical:

In short, I am suggesting that the data layer is an external entity.

Microsoft’s Pat Helland talks about services being autonomous entities that contain business behavior or logic. He also makes a point of noting that a service owns its data source. Were it true that a given service (application) had exclusive control and access to its data source I’d buy into what he says, but that is rarely the case in real organizations.

In the rasx() context, Pat is a geek and Rocky is the human being talking about “real” organizations—only one of these two are capable of biting the head off of a chicken. Rocky is reminding us that we developers, providing enterprise data solutions, need to retreat from the idea that we will have control over the data entering our applications. We always knew this from a user interface perspective (as we wrote those data validation events) but we may not know this from a data interface perspective.

We probably did not care to know because of a variety of technical limitations but we can start caring because of the presence of Web services in our lives:

Service-orientated design leads us to the idea that any software component used by more than one other software component (used by more than one “client”) should be a service. A service is a powerful unit of reuse, providing a contractual interface by which clients can interact with the service…My contention is that the traditional “data layer” is the ideal candidate to be a service.

Take it away Rocky!

Comments

Javier Luna, 2005-05-17 23:31:22

I believe that any DataLayer must be a simple code block, that they allow operations against DB.

That code block would not have to know on the Business Entities. Single to specialize it is to execute the operations (Store Procedures and SQL Sentences) against the engine DB (SQL, Oracle, DB2, etc.), with which this setting.

Finally, I invite to you to download the DataLayer.Primitives Public Version.

This is very cool Data Layer :)

DataLayer.Primitives - Readme!

http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=1389

Cheers,

Javier Luna

http://guydotnetxmlwebservices.blogspot.com/

rasx()