[PEAK] PEAK design pointers

Paul Moore pf_moore at yahoo.co.uk
Fri Mar 5 15:45:42 EST 2004


I've just discovered PEAK, by a fairly convoluted route. So far, I've
read the tutorial on the Wiki (which is excellent, BTW!) and the
manual. I've not started delving into the code to understand how to
use the various bits, but I expect to.

However, the area I'm having trouble getting to grips with is how to
design an application based around PEAK. I come from a procedural/OOP
background, and there's nothing difficult per se with the concepts in
PEAK, but I'm just having difficulty getting my concept of what I'm
trying to achieve to "break up" into components in a way that seems to
work...

Any pointers on things to read would be much appreciated!

I do have a specific application in mind - I'll describe it here as a
concrete example, but I'm definitely *not* expecting someone else to
do my design for me...

What I'm trying to write is an application (more precisely, a
framework) for database monitoring. I have a central repository
database, and a large number (100+) of target databases. My
application needs to connect to each target, run a query, collect the
results and save them in a table in the repository. I'll ultimately
have a number of different instances of this application, each
collecting the results of a different query, and possibly handling the
results in slightly different ways.

Objects (components?) I see a need for include:

    * A "target database"
    * A "repository"
    * A "thread pool" (too many targets to query in sequence - I need
      to do the queries in the background).
    * A "report" (to pack up the results of a run for publishing)
    * A "mailer" (reports are typically sent by mail)

But I can't work out how to connect them all together (well, I can,
but that's when all the nice modularity and flexibility breaks
down...)

But as I say, my question is less about the specifics of my
application, and more about how to *think* about this sort of design.

Thanks in advance for any help.

Paul
-- 
This signature intentionally left blank




More information about the PEAK mailing list