On Tuesday 07 October 2003 13:48, Andrew Piskorski wrote:
> On Mon, Oct 06, 2003 at 08:50:21PM -0400, John Sequeira wrote:
> > Would xotcl's xoStore help you out?  It's more ORM than OODBMS,  but
>
> I'd never heard of it, thanks, I'll take a look.

 xoStore is a persistence layer for xotcl objects which can be used with different
 storage backends. It supports two persistency strategies called eager and lazy,
 where the first one writes each modification of an instance variable
 into persistent storage (via variable traces), and the second one
 writes changes back to the database, when the object is destroyed
 (or the system exists).

 you can see a small example on:
    http://media.wu-wien.ac.at/doc/library/store/persistenceExample.xotcl
 more documentation is on
   http://media.wu-wien.ac.at/doc/index.html
 under library/store.

 xoStore has no support for concurrency built in, so it won't fit your
 application needs.

 However, we use xotcl as storage for sharing
 information between threads. In general, you can start a
 "database thread", to which connection threads can easily talk to
 (via Zorans wonderful tcl-thread api), where the "database thread"
 enforces serialization of the requests. This database thread
 can contain persistent and volatile data, the persistent data
 can be stored in arbitrary ways.

 Many applications need data sharing between threads
 more than the persistent storage; we use for example a
 thread for shared information like
  - the users currently acitve,
  - usage statistics (e.g. how many requests over the last
    seconds, minutes, hours), or
  - for blocking to eager users
 etc. This is achieved through a few xotcl objects that are maintained
 in a thread that starts during bootup and which is "alive" the
 livetime of the server. Connection threads can efficiently obtain
 information from this thread. This approach is more structured than nsvs
 and easier to extend: one can define a conveniant api to this
 thead, use it as a component and extend it quite independently.

 A limitation of threads is that only string data (no tcl_objs) can be
 exchanged (same as nsvs, ns_cache, etc). if the interface
 requires highly strucuted data to be passed from and to these threads,
 the data has to be linearized, or has to be represented as tcl-lists, etc.
 XOTcl has support for serializing objects, therefore objects
 from the "database thread" can be transfered (copied) into the
 connection threads without programming effort.

 hope, this can give you some ideas

 greetings
-gustaf neumann

PS: Let me know if you are interested in some thread based
 xotcl code for the purposes described above...
--
Univ.Prof. Dr.Gustaf Neumann
Abteilung für Wirtschaftsinformatik
WU-Wien, Augasse 2-6, 1090 Wien


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of 
your email blank.

Reply via email to