[gme-users] Mirroring Transactions

Jae Young Bang jaeyounb at usc.edu
Tue Dec 6 17:41:08 CST 2011


What you described seems to be very helpful to what I work on, and I'd like
to check out your commits.

I tried to find how I can access to the GME trunk you mentioned, but I
didn't see it on the GME website nor on the ISIS repository website. Would
you please let me know how I can do that unless I'm not allowed to have an
access?

Thank you very much!

On Tue, Dec 6, 2011 at 4:56 AM, Howard, Larry P <larry.howard at vanderbilt.edu
> wrote:

> If you poke around on the GME trunk you may find a set of commits from lph
> that attempt to enable a plugin to produce an adequate operation stream.
>  These changes decorate events, such as OBJEVENT_ATTR, with state
> information to support characterizations like
>
> object Foo attribute Bar modified from x to y
>
> Such characterizations are useful for consistency checking when applying
> operations from a stream to another editing session.  For example, if
> Foo.Bar is not x, then the "modify attribute" operation is in conflict with
> the target session's state.
>
> Since GME releases cherry pick from the trunk, I'm fairly certain that
> these exploratory changes were never included in a subsequent release.  But
> their implementation may provide some insight in ferreting out state from
> the originating context of operations with which to construct adequate
> operation streams.
>
> Note that I was only interested in a plugin-based strategy for
> constructing journals of operations from GME editing sessions.
> Lower-level engagement with GME's transaction machinery was beyond the
> scope of the work, which was principally concerned with using such journals
> in scaffolding conflict resolution.
>
> Regards,
> lph
> --
> Larry Howard, Sr. Research Scientist
> Institute for Software Integrated Systems, Vanderbilt University
>
>
>
> On Dec 6, 2011, at 1:49 AM, Jae young Bang wrote:
>
> Thank you for your response.
>
> The bad news is not really bad for me. I am a PhD student, and the problem
> you described as the bad news is actually my research topic. I use GME to
> build a prototype to evaluate my idea.
>
> The good news would be bad news for me if I understood it correctly. Did
> you say that it would be hard to implement such an operation stream?
>
> Thank you again!
>
> ~Jae
> jaeyounb at USC.edu
>
> On Dec 5, 2011, at 9:08 PM, Howard, Larry P wrote:
>
> So there's good news and bad news.  The bad news is that, even with
> adequate operation streams, consistency among a set of independent editing
> sessions is impossible to achieve using only them.  The good news is that
> GME makes it sufficiently difficult to produce adequate operation streams
> that it's impractical to prove it's impossible by trying it out.
>
> Regards,
> lph
> --
> Larry Howard, Sr. Research Scientist
> Institute for Software Integrated Systems, Vanderbilt University
>
>
> On Dec 5, 2011, at 6:18 PM, Jae Young Bang wrote:
>
> Hello,
>
>
> I am building a system that has multiple instances of GME (I'm using
> 9.12.15) on different machines and mirrors the actions made by the users on
> each others' machines.
>
>
> For example, if there were two users A and B, B would see what A does on
> A's machine such as creating new objects, updating attributes and
> registries, and removing objects. A and B would eventually have the same
> model in their local GME instance.
>
>
> I first tried to listen to ObjectEvents, transfer them over, and replay
> the events by developing a plugin that captures ObjectEvents and modifies
> the MGA model according to the captured ObjectEvents. It works, but it
> ruins the undo/redo architecture because it does not consider the
> transaction architecture.
>
>
> I figured what I'd ultimately like to do is to grab a transaction when
> it's completed, transfer it over, and execute the transaction on the other
> side by putting it in the transactions list.
>
>
> What I wonder is how to implement it. It seems like a plugin cannot
> manipulate transactions as nested transactions are not allowed. When
> objectEventPerformed is invoked, the plugin is in the middle of a
> transaction, and the transaction ends after the objectEventPerformed
> returns.
>
>
> Would it be possible to do this with a plugin, or would it not be possible
> to do this with a plugin?
>
>
> Thank you very much for your help!
>
>
> --
>
> Jae young Bang
>
> _______________________________________________
>
> gme-users mailing list
>
> gme-users at list.isis.vanderbilt.edu
>
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
>
>
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
>
>
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
>
>
>
> _______________________________________________
> gme-users mailing list
> gme-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/mailman/listinfo/gme-users
>
>


-- 
Jae young Bang

Doctoral Student,
Department of Computer Science,
Viterbi School of Engineering,
University of Southern California,
Los Angeles, California, USA

jae at IEEE.org
jaeyounb at USC.edu
+1-310-849-6002
http://ronia.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.isis.vanderbilt.edu/pipermail/gme-users/attachments/20111206/643c99fe/attachment.html 


More information about the gme-users mailing list