[thelist] Business logic - who's responsibility?

Atkins, Chris CAtkins at patriothomes.com
Mon May 8 04:18:36 2000


Rudy & Matt,

Thanks for your great responses, but I don't think we've 
adduced enough points to come to a consensus- or
have we?

Matt-
You've described, very well, the "traditional" view of the
three-tier application model.  I can say vehemently that
it is an effective basis for building highly-scalable, stable,
distributed applications.  It's major shortcoming, as Rudy
pointed out, is the database connection overhead; something
which Microsoft was quick to address with their implementation
of connection pooling.

My foremost concern, which you both addressed, was
the most advantageous place for coding business/application
logic.  As Rudy pointed out in his original message and
readdressed in another reply, a great deal of business logic
lives in the database schema.  Furthermore, most of the
major database vendors provide us with highly efficient and
robust SQL implementations in which to develop stored
procedures.  I doubt there could be much argument made
for the efficiency of a component over that of a stored procedure.

Having said the above, I must emphasize that the frustration
which was the progenitor of my message was due almost
entirely to the argument of maintainability.  Would it not,
in fact, be easier to maintain an application in which all
the application/business logic was held in one form or another
(sproc v. biz component).  I'm sure that all of us in this thread
have worked with an application that was developed where 
the line was blurred; some biz logic was encapsulated in
stored procedures and also in calling components.  Again,
the main thrust of the argument, in my eyes, is maintainability.
Components can be written in many languages, SQL is
essentially one standardized language whose variances 
between database vendor implementations can be conquered
by an experienced DBA.  Doesn't this provide an important
point?

To summarize, the speed and scalability argument is
largely platform dependent, but in either instance (sproc
or component logic) acceptable performance can be
attained and scalability achieved.  So then the argument
is directed toward maintenance, where the answers 
aren't so clear.

Thank you Rudy and Matt for your insights.  I anxiously 
await your thoughts.