Robert Hurlbut's Blog

Thoughts on .NET, Security, Architecture, Agility, and Databases.

Syndication

.Company / Other Sites / Other Blogs

.NET Links

.NET Local Boston Events

.NET User Groups in New England

Blogs - .NET

Blogs - Agile

Blogs - Architecture

Blogs - CLR

Blogs - Security

Blogs - SQL Server

Blogs - System.Transactions

Enterprise Services (COM+) Resources

Indigo Resources

Microsoft Security Resources

Presentation resources

Recommended Books

Rotor Resources

Security Resources

Clarification on distributed data security

Adrian Batemen wonders if I meant you would expose the data components at the point of physically separating tiers:

First of all, I'd be reluctant to make the distribution break purely at the data access level. For me, the data access tier is all about dealing with the storage of entities. Each component deals with only one entity and as such each method only reads or writes to one entity type at a time. (By entity I typically mean the nouns in your system and these tend to tie to the main tables in a database - things like a person, product, or order.) The next layer up uses business rules to combine these entity operations together into meaningful business transactions (e.g. creating an order might create an order entity and add line item entities to it, etc.). I am more inclined to provide a distributed service using a business facade over these business rules and for that to be the security barrier. This helps to ensure that data integrity is maintained by the business rules and promotes reuse of the service in more robust manner. As I said, I'm not sure if this is what Robert means or whether we differ here.

I apologize if this wasn't made clearer in my previous post.  I always advocate some kind of facade layer (could be a business rules layer, could be something else) over the data components.  In fact, the data components should be hosted in-process to the server machine only.  This makes sure, in our example, the web server components can never directly call the data components hosted on another machine. 

Comments

# Enterprise Architecturing II@ Thursday, February 19, 2004 7:15 AM

# Items of interest pt3@ Monday, February 23, 2004 8:07 AM

# Tiery Eyes: Should the middle tier be logical or physical? A lively discussion@ Friday, February 27, 2004 10:51 AM

Tiery Eyes: Should the middle tier be logical or physical? A lively discussion