[TransWarp] usage of adviseModule('<module>') and other TW News
Ulrich Eck
ueck at net-labs.de
Mon Apr 29 15:09:18 EDT 2002
Hi Phillip,
i think my partner and myself a fairly fascinated of
what can be done (with so little code) with TW .. it's indeed amazing :)
I have played around a lot and read the book you suggested
(Building Business Objects) during the last weeks.
right now I'm trying to implement the basics for a BOF (Business Object
Facility)
like it is described in the book using Pyro.
they say in the book:
" .. one can add packages (most likely at runtime) that contains 1..n DC
Classes.
these DC Classes are then visible/usable within the BOF-Framework .."
this is the point where my question begins:
how do i use adviseModule()
untested code .. just what i think i've understood till yet:
I have one global Module, let's call it PackageConfig, that is imported
from the Application. Every package will be installed in a seperate
directory and is imported (via dir-list) at startup/reloadPackages.
i would like to avoid the need of a global config-module for packages.
they are in the right directory .. so they will be loaded.
could i use the following code to achieve this ??
::PackageConfig.py
from TW.API import *
class AllPackages(SEF.Service):
from BasePackage import BasePackage
setupModule()
::
::<pathToPackages>/FirstPackage/Config.py
from TW.API import *
class AllPackages:
from FirstPackage import FirstPackage
adviseModule('PackageConfig')
::
::<pathToPackages>/SecondPackage/Config.py
from TW.API import *
class AllPackages:
from SecondPackage import SecondPackage
adviseModule('PackageConfig')
::
the importer is easy to write: for each dir in packagedir import
<module>.Config
after all i should have a result like:
AllPackages:
BasePackage
FirstPackage
SecondPackage
Is this basically correct ??
the following questions i have:
- can this be done at runtime?
- if yes: how does this affect instances of package-classes, that already
exist ??
- when are meta-classes executed (e.g. if DCClasses of Packages are
ActiveDescriptors
that register their Type within the network .. actually doing this ..)
a. when i advise a module, is it somehow interpreted again? -> this
could end in multiple
registrations of a Type which is bad ..
b. best would be, if only new ActiveDescriptors are activated .. is this
possible ??
- what else should i take care of when trying this?
.. so as we really consider to use TransWarp for our project:
- Are any major changes scheduled for 0.2 (e.g. Database/SEF)
- Would you use TransWarp for a Project (mid-size UserManagement for
Win/Unix Networks)
that should reach first usable state end of summer ?? (without TransWarp
this would
probably not be doable ;-)
We have agreed, to open all sources of our basic services we implement in
Transwarp.
We are basically interested in sharing work with others that have similar
aims.
actually planned are:
- Distributed TransactionMonitor Prototyping
A TransactionMonitor using the COSTransactions
Specification
- TransWarpWorkflow Prototyping
An activity-based Workflow system with persitent
Backend (ZODB/LDAP/SQL) to store ProcessDefinitions etc.
It will be an implementation of the WfMC Model
i use openflow as sample-implementation
- TransWarpNet Prototyping
A BOF implementation using Pyro (evtl. CORBA in future)
that cares about threading/concurrency/lifetime/events/
messaging/net/transaction/workflow/data-access
- TransWarpGUI FirstPreview (where it all began :))
A Model for a wxWindows GUI-Application that will
go under heavy refactoring to make use
of the UDO/WDO concept
- TransWarp??Database?? Samples Exist
ADSI/ADODB-Connection + Model (read/write)
ZODB-Connection + Model (uses ZODB only for persistence
but is quite handy for testing)
improved LDAP/DataModel.
if would be fine to see them in TW.Database if they reach
stable state .. possible ??
RDO/EDO Objects are managed in DC Classes and use SEF and TW.Database.
BOF Shortkeys explained :-)
DC DistributableComponent
DO DistributableObject (instance of DC)
UDO->WDO->EDO->RDO
RDO ResourceDO (manages persistence)
EDO EnterpriseDO (has business logic)
WDO WorkspaceDO (provide data/events for UDO)
UDO UserinterfaceDO (a panel/window)
This is all work in progress ... nothing is ready yet, allthough the
examples
usually run. there are no unit-tests yet ... but we're making progress.
anyone interested, have a look at:
http://cvs.net-labs.de (ViewCVS)
again .. if you'ld like us to use module-names that do not contain
"TransWarp" please let
us know soon ;-)
thanks for your reply
Ulrich Eck
---------------------------------------------------------------------------
net-labs Systemhaus GmbH
Ebersberger Str. 46
85570 Markt Schwaben
fon: +49-8121-4747-11
fax: +49-8121-4747-77
email: ueck at net-labs.de
http://www.net-labs.de
More information about the PEAK
mailing list