[PEAK] need hints on PEAK twisted support

Stephen Waterbury golux at comcast.net
Sat Apr 10 15:49:38 EDT 2004

ueck at net-labs.de wrote:
> Hi Stephen,
>>Thanks!  I am looking at it now.  I notice a reference to one
>>of your nll libraries (nllworkflow).  What is the current
>>status of nll?
> the aim of nll* is to reduce the amount of coding as far as possible.
> most things are configured (e.g. data-managers, control-flow).

> Networked GUI/WebApps with RDBMS/LDAP Backends that interact with
> WorkflowProcesses (Activity/State-Based) should be easily developed.

> optimal case: 
>   UML-Tool design app/controlflow/views
>   -> create peak.model from exported XMI 
>   -> add problem-domain specific aspects and design GUI
>   -> weave model- and customized-aspects to create server/client apps.)

This is a worthy goal.  Creating the peak.model from XMI
is of great interest to me.  In my use-cases, models might come
from UML via XMI, but could also come from other sources via
RDFS, OWL, and other model representations.  There is some
work being done on converting between these, which will also
involve mappings in some cases.  For the mappings, XSLT is
one possibility, but there is at least one other: a (less
well-known) more semantically oriented semi-declarative
mapping language, EXPRESS-X.  Part of my agenda is to have
a robust representation of mappings in MOF.

Also:  a rigorous approach to explicit representation and
management of Rules, which are not necessarily fully
represented in the above modeling languages (see, for example,
the proposed OWL Rule Extensions ... :)

> nll is still in it's design phase and is split up into several packages:
> nll (most parts are not yet refactored for a4):
> ----
>   Base Library for DataAccess and Networking
>   - expression (TALES expressions without zope dependency)
>     used by nllworkflow
>   these packages are not yet refactored for peak-0.5a4
>   - database (custom datamanagers and tools)
>     sqldm (PYDO like configurable Datamanager)

I'll be interested in this.  My app has an O-R implementation
that I would like to PEAK-ize.

>     ldapdm (object relational binding for python-ldap->peak.storage)

Also interesting to me, although my LDAP use-case is
read-only for the time being.

>     csvdm (CSV Datamanager readonly)
>     mysql/sapdb (SQLConnections)
>     schema (abstract sql-schema with sapdb-driver (readonly))

I'm very interested in abstract sql-schema representation.

>     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.

>   - net ( little helpers for pyro, jabber .. unfinished stuff)
>     jabber (outdated jabber.py binding, i want to use twisted's jabber impl)
>     mail (fairly complete object binding for IMAP/Sieve Servers, i also want 
>          to refactor it to be async and use twisteds impl )

Yes, I suspect Twisted's IMAP implementation is quite good, as
JP Calderone has done a massive amount of work on it for divmod.

>     rpc (pyro connection and proxy)
> nllgui (not yet refactored for a4):
> ------
>   a GUI Component Model that completly integrates with peak
>   (mostly for wxWidget Apps).

This is also very interesting to me.  We have a wxPython
client, and I am investigating how to integrate Twisted into
it.  Itamar's new wxreactor looks promising -- I am experimenting
with it right now.

I've been discussing with Kevin Altis how best to integrate
Twisted into PythonCard, which provides a nice layer above

>   - lcdgui ( a first try to build a textbased LC-Display-Gui )
>   - 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 ... :)

>   - wxgui ( a wxWidget binding that has a custom XRC parser for loading
>            resources into a component tree. look at:
>            <CVS>/libs/nllsandbox/gui_components/modelexplorer/
>            for an example app how to use it. )

I'll check this out!

> 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.

>   - stateful ( UML StateMachine with XML-Parser that supports composite
>                states and uses peak.events for async-operation and 
>                communication. I'm currently working on completing the 
>                routing constructs. Future versions should support 
>                history/concurrent states)

Sounds very interesting!

> nllmessaging (outdated, not actively developed )
> ------------
>    peakplace/junction might be an alternative.
>    Async messaging with several low-level drivers (twisted.pb, 
>    jabber, <commercial mq's if needed>)
> nllsandbox (not refactored for a4 and current nll* libs)
> -----------
>   playground.
>   - database_components ( a script that created nll.database.sqldm's
>     from a schema - currently only sapdb, examples for 2 databases)

This could be quite useful.

>   - gui_components ( modelexplorer is a GuiApp that can create/manage
>            wxPanels (forms) from peak.model Schema's and has 2 backends
>            for XMI-Data and IMAP-Mailboxes to show the flexiblity of the
>            concept. the whole user-interaction is processed with
>            statemachines from nllworkflow. is not uptodate)

> i hope this gives a better overview for further code-browsing.

Yes, thanks!


More information about the PEAK mailing list