Re: Transaction Oriented Architecture (TOA)



Matt McGill wrote:
Implementing our system with a TOA/TOP design has afforded us unusual
responsiveness to fixes and enhancements--many able to wind their way
through development, QA, and into production within hours of the
request--with minimal changes to applications. The fewer changes we
make the faster and more confidently we can move to production.

I see no reason why a flexible RDBMS cannot do the same. Switch to
PostGre, the most powerful open-source RDBMS, and add features that it
does not have that you need.

Further, whatever wrapping you suggest for SQL, procedures can do the
same. OOP is not required to wrap SQL. I do function-based wrapping all
the time for commonly-used SQL activities. Thus the "should wrap SQL"
and "OOP wraps better" issues/claims are generally different issues.
I'll believe OOP wraps better than procedural only when I see
side-by-side comparisions of typical, common, and representative
scenarios.

I'm a little confused about what aspect of the OP's posted article you
disagree with. The article mentions OO design principles,

Which are subject to debate and/or overlap with non-OO-specific design
principles also.

but does not
appear to advocate wrapping SQL in OO constructs, or even using any OO
constructs at all. What the article /does/ suggest is the use of a set
of stored procedures to act as an API for application programmers
writing code against the database.

This is still "wrapping". Whether that is an "OO design principle"
depends on who you ask. Perhaps this is a disagreement over semantics.
OOP/OOA/OOD is not defined very consistently. However, it appears to
be a general "OOP habit" to wrap anything that is not OOP behind
classes, or perhaps stored procedures as a consolation.

With a well-defined API in place,
you can change the applications and the database independently of one
another as long as the API stays the same.

Yes, but it is not a free lunch, as already described. I weigh the
maintenance trade-offs based on past experience, and often decide that
stored procedures (or wrapping SQL in general) is not warrented per
case or per app.

Experienced developers weigh the trade-offs, not stick to rigid dogma
that X must *always* have Y, etc. (Some call me dogmatic against OOP,
but it is just that OO being the best solution is too small a
percentage of most apps to bother introducing yet another paradigm into
an app, complicating staffing issues.)


That sounds like a solid approach to me by itself. The article does go
farther than that of course, leveraging the stored procedures to
implement detailed auditing within the database. But I don't understand
your objection to keeping an audit history in database tables either.

Where did I object to that?

If you need an audit trail, and all access to the DB is through the
stored procedure API, adding audit functionality would be rather easy
to do. Are you suggesting that it would be /less/ work to compile a
custom version of Postgres?

- Matt McGill

-T-

.



Relevant Pages

  • How do I do Paging through a large dataset via Stored Procedures
    ... Paging by dynamically altering the SQL Query ... Create stored procedures ... SELECT * FROM STUDENTS ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: Help with Stored Procedure
    ... I did mean stuff like system stored procedures (even ... build the query, compile it, and optimize it, then, then this is less ... very not easy using dynamic sql. ...
    (microsoft.public.sqlserver.programming)
  • Re: choices regarding where to place code - in the database or middle tier
    ... Sure, the DBMS is a good place for simple referential integrity constraints, ... to 4 separately-running-but-pipelined stored procedures, ... A typical user would enact a 100 or so business functions per day. ... own stored procedures' by storing the SQL for every business query in the DBMS ...
    (comp.lang.java.programmer)
  • Re: Serious errors with Create view command
    ... the database is opened? ... There's no database on earth that behaves that way! ... What on EARTH does the option of 'Edit Stored procedures' do? ... I can't paste it INTO the view designer sql view ...
    (microsoft.public.fox.helpwanted)
  • Re: Frage zu View-Tabellen
    ... eigenes Element in SQL. ... wenn man prepared statements statt adhoc statements ... Kompilierung entfällt und der Unterschied im Speicherverbrauch besteht darin, ... der Vorteil von Stored Procedures gegenüber prepared statements liegt ...
    (microsoft.public.de.sqlserver)