[PEAK] need hints on PEAK twisted support

Stephen Waterbury golux at comcast.net
Sat Apr 10 17:57:18 EDT 2004

ueck at net-labs.de wrote:
> CWM would possibly the way to go .. but i didn't find any
> tool to Edit the Schema-Info freely available so i went on
> with a simpler approach. i haven't used it for ages right now.

Yes, CWM is interesting, and I notice there is mention of it in

>>>    bsddb (a try to make a bsddb-datamanager .. doesn't really work)
>>You might want to check out ATOP, Glyph's latest persistence
>>engine.  ;)  He gave a good talk at PyCon DC about it, and had
>>lots of lessons-learned about BSDDB as a back-end.  Non-trivial.
> does it come with twisted ?

No (although it might eventually be one of the components in
a "modularized" Twisted -- the re-configuration of Twisted into
a set of interoperable components was also discussed at PyCon DC).
It is part of Divmod's Quotient package:


>>>  - workspace (concept of a Workspace, is also used in my webdemo.
>>>               a workspace is the "controller" in MVC and is
>>>               implemented in my libraries as statemachine as
>>>               event-consumer, that interacts with the businessobjects
>>>               on behalf of the user's actions and controls the 
>>>               user-interface. this packages is not yet complete )
>>It would be interesting to give it a Twisted Perspective
>>Broker interface to make it a "sharable workspace" in a
>>potentially more flexible way than a web app could do ... :)
> The whole system is designed as 4-Tier app:
>  - UserInterface (Web/wxWidgets)
>  - Workspace
>  - BusinessModel (peak.model, business-rules)
>  - DataStorage (datamanagers)

This is identical to the architecture of my Twisted app.  :)
The Workspace layer is shared between client and server, but
eventually I'd like to "fuse" them so any node can be configured
to combine features of each (e.g., so a client could cache
enough info to work offline for a time, or when connected serve
as a sandbox / whiteboard server in a collaboration).

> the communication should happen as async messages between
> the components, that are either local or remote (configurable)
> e.g. a wxClient would have UserInterface and Workspace within
> one process and talk to the BusinessModel with remote-messages
> while a WebApp would only be the UserInterface that talks with
> http-requests to the workspace that lives on the server-side
> (session-based).

Right, so the Web app would just be an active user interface,
relying on a more robust distributed architecture beneath --
makes sense to me.

> this is the theory .. it's still a far way to go.

Sure.  :)

>>>nllworkflow (actively developed and ready for a4)
>>>  a Workflow Package that currently include an UML-1.3 like
>>>  StateMachine. Future versions should also contain a WFMC
>>>  Engine to be able to start ActivityBased and StateBased Processes.
>>I'd like to see if we can collaborate on this.  My partner
>>on our app has developed a WFMC-based workflow app, but I'm
>>not sure how the state machine under it works.
> about 2 years ago i also developed a WFMC-Engine-Prototype with Transwarp
> (PEAK is it's successor) that used a fairly similar aproach for scheduling
> the activities as peak.events does right now. 
> it's in our cvs in /oldlibs/NetLabsLibs/src/NLL/Services/Workflow/.
> peak uses similar concepts, so a "major refactoring" would get it 
> back from my codebase ;-)

We should probably talk about requirements and use-cases,
too, so we are at least approximately on the same page.  :)

BTW, I notice that WfMC has a couple of new standards, XPDL
and Wf-XML, that I would like to support.  Sheesh, so much to
do.  :/

> I'm interested in sharing efforts for this as my time allows.
> i have not yet started planning to work on wfmc for now.

We will be including ours in a released app someday soon
(or else! :), so we'll send more info as we get closer.


More information about the PEAK mailing list