Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Collaborative work on UML models
[CDO] Collaborative work on UML models [message #883393] Fri, 08 June 2012 12:39 Go to next message
Tex Iano is currently offline Tex IanoFriend
Messages: 99
Registered: February 2012
Member
Hi,

I have a web application that programmatically creates and changes UML models (based on EMF of course).

Now I want to make this application collaborative, i.e. several users should be able to work on the same UML model at the same time.

I think CDO can help me for this purpose.

Till now I have stored the UML models as files. As I see when using CDO I have to change to a database right? Or is CDO also for file-based models?

After reading the documentation, when using CDO in a collaborative environment, I assume the process is as follows:

1. User 1 logs in
2. User 1 wants to open a model
3. User 1 opens a session
4. User 1 opens a new transaction
5. User 1 works on the model
6. User 1 commits his changes
...
N. User 1 closes the session.

Is it correct that the session is opened during all my web session? Or do I open a session every time the user wants to work on a model?

Well, what I am confused about is, that first the transaction is opened and then the resource is chosen.

I had assumed:

1. User logs in
2. User opens a session
3. User chooses a resource
4. Wants to change the model -> opens transcation -> changes -> commits transaction


Because in my collaborative application of course some data is cached. For example:

My model contains an entity "Person". Now the user wants to see all persons and edit some. He starts a session, opens a transaction, opens the model, gets all persons and closes the transaction and session.

The persons are now displayed within a table. Now, the user wants to change a person. He clicks on a certain person and now the details have to be determined. What is happening now? Again opening a session? Again choosing the resource and opening a transaction? Does CDO still now, which element I have selected? Or is the internal ID different now?

Maybe you can give me some hints about how to work with CDO in this example.

Regards,

Tex

Re: [CDO] Collaborative work on UML models [message #883410 is a reply to message #883393] Fri, 08 June 2012 13:20 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 5574
Registered: July 2009
Senior Member
Am 08.06.2012 14:39, schrieb Tex Iano:
> Hi,
>
> I have a web application that programmatically creates and changes UML models (based on EMF of course).
>
> Now I want to make this application collaborative, i.e. several users should be able to work on the same UML model at
> the same time.
>
> I think CDO can help me for this purpose.
> Till now I have stored the UML models as files. As I see when using CDO I have to change to a database right? Or is
> CDO also for file-based models?
Currently there is no file-based IStore available for CDO. So yes, you'll need some kind of database.

>
> After reading the documentation, when using CDO in a collaborative environment, I assume the process is as follows:
>
> 1. User 1 logs in
> 2. User 1 wants to open a model
> 3. User 1 opens a session
> 4. User 1 opens a new transaction
> 5. User 1 works on the model
> 6. User 1 commits his changes
> ..
> N. User 1 closes the session.
> Is it correct that the session is opened during all my web session? Or do I open a session every time the user wants
> to work on a model?
> Well, what I am confused about is, that first the transaction is opened and then the resource is chosen.
You should think of a CDOSession as a jdbc.DataSource and of a CDOTransaction as a jdbc.Connection. Now you see that the
CDOTransaction API is very similar to a JDBC Connection, including methods like commit() or rollback() and concepts like
CDOSavepoint.

You can open multiple CDOTransactions on a CDOSession.

> I had assumed:
>
> 1. User logs in
> 2. User opens a session
You need a CDOView or CDOTransaction to access the object graph (including resources or folders).

> 3. User chooses a resource
> 4. Wants to change the model -> opens transcation -> changes -> commits transaction
You can call commit() multiple times on a CDOTransaction until you've called close().

> Because in my collaborative application of course some data is cached. For example:
>
> My model contains an entity "Person". Now the user wants to see all persons and edit some. He starts a session, opens
> a transaction, opens the model, gets all persons and closes the transaction and session.
That's not possible. All objects craeted and managed by a view/transaction become INVALID if the view/transaction is closed.

> The persons are now displayed within a table.
For pure viewing a CDOView is usually best.

> Now, the user wants to change a person. He clicks on a certain person and now the details have to be determined.
What details?

> What is happening now? Again opening a session? Again choosing the resource and opening a transaction?
Usually you'd open a new transaction and load the selected object:

Person personInTX = tx.getObject(personFromView);

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper


> Does CDO still now, which element I have selected? Or is the internal ID different now?
>
> Maybe you can give me some hints about how to work with CDO in this example.
>
> Regards,
>
> Tex
>
>
Re: [CDO] Collaborative work on UML models [message #883418 is a reply to message #883410] Fri, 08 June 2012 13:44 Go to previous messageGo to next message
Tex Iano is currently offline Tex IanoFriend
Messages: 99
Registered: February 2012
Member
Hi,

thanks for your detailed answer. So, this means: Everytime I create a new transaction when the user acts on the model. What happens when I have an opened transaction and another user wants to work on the same model? Btw, is model == resource? Is the resource locked when a transaction is opened? Or do I get a conflict when another user changes the model while it is opened within a transaction? Then I could leave the transaction opened during the entire web session and reload the model when I get a transaction conflict. And after every operation within a session I do only a commit.

Regards,

Tex
Re: [CDO] Collaborative work on UML models [message #883429 is a reply to message #883418] Fri, 08 June 2012 14:02 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 4151
Registered: July 2009
Senior Member
Hi Eike

IIRC at some EclipseCon or ESE there was a DAWN demo that demonstrated
collaborative diagram editing. Isn't this all integrated with Papyrus
now so that it just works?

Regards

Ed Willink


On 08/06/2012 14:44, Tex Iano wrote:
> Hi,
>
> thanks for your detailed answer. So, this means: Everytime I create a
> new transaction when the user acts on the model. What happens when I
> have an opened transaction and another user wants to work on the same
> model? Btw, is model == resource? Is the resource locked when a
> transaction is opened? Or do I get a conflict when another user
> changes the model while it is opened within a transaction? Then I
> could leave the transaction opened during the entire web session and
> reload the model when I get a transaction conflict. And after every
> operation within a session I do only a commit.
>
> Regards,
>
> Tex
Re: [CDO] Collaborative work on UML models [message #883494 is a reply to message #883418] Fri, 08 June 2012 17:04 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 5574
Registered: July 2009
Senior Member
Am 08.06.2012 15:44, schrieb Tex Iano:
> Hi,
>
> thanks for your detailed answer. So, this means: Everytime I create a new transaction when the user acts on the model.
> What happens when I have an opened transaction and another user wants to work on the same model?
The other user probably wants to commit separately, so you'll need to open a transaction per user or per user action.
CDOTransactins are cheap, copared to CDOSessions.

> Btw, is model == resource?
Th term "Model" is not well-defined. Everything can be a model. In particular there exist two flavours:

1) EPackages and their contents (EModelElements) are sometimes referred to as "meta models". All other EObject
(including CDORecources and CDOResourceFolders) are then referred to as "models" or "the model".

2) Those that don't like the term "meta" often just use "models" and "(model) instances", respectively.


> Is the resource locked when a transaction is opened?
CDO uses optimistic locking by default, e.g., a resource is locked in the server *during* a commit operation, if and
only if the resource is directly modified.

Pessimistic locking is optional and available through, e.g., CDOObject.cdoWriteLock().lock(). This also only applies to
the specific object/resource (not their contents) unless you use CDOView.lockObjects(objects, LockType.WRITE, timeout,
recursive).

> Or do I get a conflict when another user changes the model while it is opened within a transaction? Then I could leave
> the transaction opened during the entire web session and reload the model when I get a transaction conflict. And after
> every operation within a session I do only a commit.
That would require to synchronize all operations on the transaction so that one user can not commit the changes of
another user. Transactions are comparingly cheap to open, so I would give each user an own transaction.

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Re: [CDO] Collaborative work on UML models [message #883495 is a reply to message #883429] Fri, 08 June 2012 17:06 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 5574
Registered: July 2009
Senior Member
Am 08.06.2012 16:02, schrieb Ed Willink:
> Hi Eike
>
> IIRC at some EclipseCon or ESE there was a DAWN demo that demonstrated collaborative diagram editing. Isn't this all
> integrated with Papyrus now so that it just works?
I'm not well informed about Papyrus. Maybe Martin (for CDO Dawn) or Kenn (for Papyrus) want to follow up on this?

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper


>
> Regards
>
> Ed Willink
>
>
> On 08/06/2012 14:44, Tex Iano wrote:
>> Hi,
>>
>> thanks for your detailed answer. So, this means: Everytime I create a new transaction when the user acts on the
>> model. What happens when I have an opened transaction and another user wants to work on the same model? Btw, is model
>> == resource? Is the resource locked when a transaction is opened? Or do I get a conflict when another user changes
>> the model while it is opened within a transaction? Then I could leave the transaction opened during the entire web
>> session and reload the model when I get a transaction conflict. And after every operation within a session I do only
>> a commit.
>>
>> Regards,
>>
>> Tex
>
Re: [CDO] Collaborative work on UML models [message #883505 is a reply to message #883495] Fri, 08 June 2012 17:16 Go to previous messageGo to next message
Martin Fluegge is currently offline Martin FlueggeFriend
Messages: 141
Registered: July 2009
Senior Member
Am 08.06.2012 19:06, schrieb Eike Stepper:
> Am 08.06.2012 16:02, schrieb Ed Willink:
>> Hi Eike
>>
>> IIRC at some EclipseCon or ESE there was a DAWN demo that demonstrated
>> collaborative diagram editing. Isn't this all integrated with Papyrus
>> now so that it just works?
> I'm not well informed about Papyrus. Maybe Martin (for CDO Dawn) or Kenn
> (for Papyrus) want to follow up on this?

As far as I know no one has tested an integration between CDO and
Papyrus (using Dawn) yet. Basically this could work using the generators
provided by Dawn. But I do not know how strong the Papyrus editors are
customized. This might lead to problems.

Cheers,

Martin


>
> Cheers
> /Eike
>
> ----
> http://www.esc-net.de
> http://thegordian.blogspot.com
> http://twitter.com/eikestepper
>
>
>>
>> Regards
>>
>> Ed Willink
>>
>>
>> On 08/06/2012 14:44, Tex Iano wrote:
>>> Hi,
>>>
>>> thanks for your detailed answer. So, this means: Everytime I create a
>>> new transaction when the user acts on the model. What happens when I
>>> have an opened transaction and another user wants to work on the same
>>> model? Btw, is model == resource? Is the resource locked when a
>>> transaction is opened? Or do I get a conflict when another user
>>> changes the model while it is opened within a transaction? Then I
>>> could leave the transaction opened during the entire web session and
>>> reload the model when I get a transaction conflict. And after every
>>> operation within a session I do only a commit.
>>>
>>> Regards,
>>>
>>> Tex
>>
Re: [CDO] Collaborative work on UML models [message #884506 is a reply to message #883393] Mon, 11 June 2012 08:02 Go to previous messageGo to next message
Peter  is currently offline Peter Friend
Messages: 85
Registered: July 2009
Member
Hi Tex,
as I know there is no CDO compatible UML till now.
I think this Bug is the biggest drawback.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102
Regards
Peter

Am 08.06.2012 14:39, schrieb Tex Iano:
> Hi,
>
> I have a web application that programmatically creates and changes UML
> models (based on EMF of course).
>
> Now I want to make this application collaborative, i.e. several users
> should be able to work on the same UML model at the same time.
>
> I think CDO can help me for this purpose.
> Till now I have stored the UML models as files. As I see when using CDO
> I have to change to a database right? Or is CDO also for file-based models?
>
> After reading the documentation, when using CDO in a collaborative
> environment, I assume the process is as follows:
>
> 1. User 1 logs in
> 2. User 1 wants to open a model
> 3. User 1 opens a session
> 4. User 1 opens a new transaction
> 5. User 1 works on the model
> 6. User 1 commits his changes
> ..
> N. User 1 closes the session.
> Is it correct that the session is opened during all my web session? Or
> do I open a session every time the user wants to work on a model?
> Well, what I am confused about is, that first the transaction is opened
> and then the resource is chosen.
> I had assumed:
>
> 1. User logs in
> 2. User opens a session
> 3. User chooses a resource
> 4. Wants to change the model -> opens transcation -> changes -> commits
> transaction
>
>
> Because in my collaborative application of course some data is cached.
> For example:
>
> My model contains an entity "Person". Now the user wants to see all
> persons and edit some. He starts a session, opens a transaction, opens
> the model, gets all persons and closes the transaction and session.
>
> The persons are now displayed within a table. Now, the user wants to
> change a person. He clicks on a certain person and now the details have
> to be determined. What is happening now? Again opening a session? Again
> choosing the resource and opening a transaction? Does CDO still now,
> which element I have selected? Or is the internal ID different now?
>
> Maybe you can give me some hints about how to work with CDO in this
> example.
>
> Regards,
>
> Tex
>
>
Re: [CDO] Collaborative work on UML models [message #884515 is a reply to message #884506] Mon, 11 June 2012 08:24 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 4151
Registered: July 2009
Senior Member
Hi

If https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102 was the biggest
drawback, there would almost 'no' problem. UML users have survived for
3.5 years since that problem was reported. It doesn't appear to have
anything to do with CDO integration. If there is such a problem, please
add a comment to the bug to motivate its resolution.

Regards

Ed Willink


On 11/06/2012 09:02, Peter wrote:
> Hi Tex,
> as I know there is no CDO compatible UML till now.
> I think this Bug is the biggest drawback.
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102
> Regards
> Peter
>
> Am 08.06.2012 14:39, schrieb Tex Iano:
>> Hi,
>>
>> I have a web application that programmatically creates and changes UML
>> models (based on EMF of course).
>>
>> Now I want to make this application collaborative, i.e. several users
>> should be able to work on the same UML model at the same time.
>>
>> I think CDO can help me for this purpose.
>> Till now I have stored the UML models as files. As I see when using CDO
>> I have to change to a database right? Or is CDO also for file-based
>> models?
>>
>> After reading the documentation, when using CDO in a collaborative
>> environment, I assume the process is as follows:
>>
>> 1. User 1 logs in
>> 2. User 1 wants to open a model
>> 3. User 1 opens a session
>> 4. User 1 opens a new transaction
>> 5. User 1 works on the model
>> 6. User 1 commits his changes
>> ..
>> N. User 1 closes the session.
>> Is it correct that the session is opened during all my web session? Or
>> do I open a session every time the user wants to work on a model?
>> Well, what I am confused about is, that first the transaction is opened
>> and then the resource is chosen.
>> I had assumed:
>>
>> 1. User logs in
>> 2. User opens a session
>> 3. User chooses a resource
>> 4. Wants to change the model -> opens transcation -> changes -> commits
>> transaction
>>
>>
>> Because in my collaborative application of course some data is cached.
>> For example:
>>
>> My model contains an entity "Person". Now the user wants to see all
>> persons and edit some. He starts a session, opens a transaction, opens
>> the model, gets all persons and closes the transaction and session.
>>
>> The persons are now displayed within a table. Now, the user wants to
>> change a person. He clicks on a certain person and now the details have
>> to be determined. What is happening now? Again opening a session? Again
>> choosing the resource and opening a transaction? Does CDO still now,
>> which element I have selected? Or is the internal ID different now?
>>
>> Maybe you can give me some hints about how to work with CDO in this
>> example.
>>
>> Regards,
>>
>> Tex
>>
>>
>
Re: [CDO] Collaborative work on UML models [message #884526 is a reply to message #884515] Mon, 11 June 2012 09:01 Go to previous messageGo to next message
Peter  is currently offline Peter Friend
Messages: 85
Registered: July 2009
Member
Hi Ed,
sure when you work with UML files that is no problem. But
as I know a CDO EMF model needs to be generated with reflective or
dynamic delegation. The UML custom code templates only support "None"
Feature Delegation.
Please correct me If I am wrong...
Regards
Peter

Am 11.06.2012 10:24, schrieb Ed Willink:
> Hi
>
> If https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102 was the biggest
> drawback, there would almost 'no' problem. UML users have survived for
> 3.5 years since that problem was reported. It doesn't appear to have
> anything to do with CDO integration. If there is such a problem, please
> add a comment to the bug to motivate its resolution.
>
> Regards
>
> Ed Willink
>
>
> On 11/06/2012 09:02, Peter wrote:
>> Hi Tex,
>> as I know there is no CDO compatible UML till now.
>> I think this Bug is the biggest drawback.
>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102
>> Regards
>> Peter
>>
>> Am 08.06.2012 14:39, schrieb Tex Iano:
>>> Hi,
>>>
>>> I have a web application that programmatically creates and changes UML
>>> models (based on EMF of course).
>>>
>>> Now I want to make this application collaborative, i.e. several users
>>> should be able to work on the same UML model at the same time.
>>>
>>> I think CDO can help me for this purpose.
>>> Till now I have stored the UML models as files. As I see when using CDO
>>> I have to change to a database right? Or is CDO also for file-based
>>> models?
>>>
>>> After reading the documentation, when using CDO in a collaborative
>>> environment, I assume the process is as follows:
>>>
>>> 1. User 1 logs in
>>> 2. User 1 wants to open a model
>>> 3. User 1 opens a session
>>> 4. User 1 opens a new transaction
>>> 5. User 1 works on the model
>>> 6. User 1 commits his changes
>>> ..
>>> N. User 1 closes the session.
>>> Is it correct that the session is opened during all my web session? Or
>>> do I open a session every time the user wants to work on a model?
>>> Well, what I am confused about is, that first the transaction is opened
>>> and then the resource is chosen.
>>> I had assumed:
>>>
>>> 1. User logs in
>>> 2. User opens a session
>>> 3. User chooses a resource
>>> 4. Wants to change the model -> opens transcation -> changes -> commits
>>> transaction
>>>
>>>
>>> Because in my collaborative application of course some data is cached.
>>> For example:
>>>
>>> My model contains an entity "Person". Now the user wants to see all
>>> persons and edit some. He starts a session, opens a transaction, opens
>>> the model, gets all persons and closes the transaction and session.
>>>
>>> The persons are now displayed within a table. Now, the user wants to
>>> change a person. He clicks on a certain person and now the details have
>>> to be determined. What is happening now? Again opening a session? Again
>>> choosing the resource and opening a transaction? Does CDO still now,
>>> which element I have selected? Or is the internal ID different now?
>>>
>>> Maybe you can give me some hints about how to work with CDO in this
>>> example.
>>>
>>> Regards,
>>>
>>> Tex
>>>
>>>
>>
>
Re: [CDO] Collaborative work on UML models [message #884533 is a reply to message #884526] Mon, 11 June 2012 09:25 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 4151
Registered: July 2009
Senior Member
Hi Peter

I don't really understand your point, but I think you're confusing two
issues.

For collaborative editing of a UML model, no EMF generation is needed.
It is merely necessary for CDO to keep track of who 'owns' which parts
of the model so that changes propagate around correctly.

I suspect that you are talking about generating an Ecore model from UML
so that you can have an instance of the UML model. This is no doubt
important but not a collaborative issue; I would assume that the Ecore
equivalent would be a batch conversion; though of course incremental
transformation is the next interesting step.

Regards

Ed Willink

On 11/06/2012 10:01, Peter wrote:
> Hi Ed,
> sure when you work with UML files that is no problem. But
> as I know a CDO EMF model needs to be generated with reflective or
> dynamic delegation. The UML custom code templates only support "None"
> Feature Delegation.
> Please correct me If I am wrong...
> Regards
> Peter
>
> Am 11.06.2012 10:24, schrieb Ed Willink:
>> Hi
>>
>> If https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102 was the biggest
>> drawback, there would almost 'no' problem. UML users have survived for
>> 3.5 years since that problem was reported. It doesn't appear to have
>> anything to do with CDO integration. If there is such a problem, please
>> add a comment to the bug to motivate its resolution.
>>
>> Regards
>>
>> Ed Willink
>>
>>
>> On 11/06/2012 09:02, Peter wrote:
>>> Hi Tex,
>>> as I know there is no CDO compatible UML till now.
>>> I think this Bug is the biggest drawback.
>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102
>>> Regards
>>> Peter
>>>
>>> Am 08.06.2012 14:39, schrieb Tex Iano:
>>>> Hi,
>>>>
>>>> I have a web application that programmatically creates and changes UML
>>>> models (based on EMF of course).
>>>>
>>>> Now I want to make this application collaborative, i.e. several users
>>>> should be able to work on the same UML model at the same time.
>>>>
>>>> I think CDO can help me for this purpose.
>>>> Till now I have stored the UML models as files. As I see when using
>>>> CDO
>>>> I have to change to a database right? Or is CDO also for file-based
>>>> models?
>>>>
>>>> After reading the documentation, when using CDO in a collaborative
>>>> environment, I assume the process is as follows:
>>>>
>>>> 1. User 1 logs in
>>>> 2. User 1 wants to open a model
>>>> 3. User 1 opens a session
>>>> 4. User 1 opens a new transaction
>>>> 5. User 1 works on the model
>>>> 6. User 1 commits his changes
>>>> ..
>>>> N. User 1 closes the session.
>>>> Is it correct that the session is opened during all my web session? Or
>>>> do I open a session every time the user wants to work on a model?
>>>> Well, what I am confused about is, that first the transaction is
>>>> opened
>>>> and then the resource is chosen.
>>>> I had assumed:
>>>>
>>>> 1. User logs in
>>>> 2. User opens a session
>>>> 3. User chooses a resource
>>>> 4. Wants to change the model -> opens transcation -> changes ->
>>>> commits
>>>> transaction
>>>>
>>>>
>>>> Because in my collaborative application of course some data is cached.
>>>> For example:
>>>>
>>>> My model contains an entity "Person". Now the user wants to see all
>>>> persons and edit some. He starts a session, opens a transaction, opens
>>>> the model, gets all persons and closes the transaction and session.
>>>>
>>>> The persons are now displayed within a table. Now, the user wants to
>>>> change a person. He clicks on a certain person and now the details
>>>> have
>>>> to be determined. What is happening now? Again opening a session?
>>>> Again
>>>> choosing the resource and opening a transaction? Does CDO still now,
>>>> which element I have selected? Or is the internal ID different now?
>>>>
>>>> Maybe you can give me some hints about how to work with CDO in this
>>>> example.
>>>>
>>>> Regards,
>>>>
>>>> Tex
>>>>
>>>>
>>>
>>
>
Re: [CDO] Collaborative work on UML models [message #884548 is a reply to message #884533] Mon, 11 June 2012 10:11 Go to previous messageGo to next message
Peter  is currently offline Peter Friend
Messages: 85
Registered: July 2009
Member
Hi Ed,
ok I´ll try to make my point more clear.
When you want a native cdo emf model you need to migrate the genmodel.
See
http://wiki.eclipse.org/CDO/Preparing_EMF_Models#Use_the_CDO_Model_Migrator
And when you do this you can´t generate the uml api because the custom
code templates of the uml2 project don´t support the required feature
delegation.
I think the second problem is that the EModelElement extends EObject but
Eike Stepper posted a workaround in a bug report a while ago.

Regards
Peter

Am 11.06.2012 11:25, schrieb Ed Willink:
> Hi Peter
>
> I don't really understand your point, but I think you're confusing two
> issues.
>
> For collaborative editing of a UML model, no EMF generation is needed.
> It is merely necessary for CDO to keep track of who 'owns' which parts
> of the model so that changes propagate around correctly.
>
> I suspect that you are talking about generating an Ecore model from UML
> so that you can have an instance of the UML model. This is no doubt
> important but not a collaborative issue; I would assume that the Ecore
> equivalent would be a batch conversion; though of course incremental
> transformation is the next interesting step.
>
> Regards
>
> Ed Willink
>
> On 11/06/2012 10:01, Peter wrote:
>> Hi Ed,
>> sure when you work with UML files that is no problem. But
>> as I know a CDO EMF model needs to be generated with reflective or
>> dynamic delegation. The UML custom code templates only support "None"
>> Feature Delegation.
>> Please correct me If I am wrong...
>> Regards
>> Peter
>>
>> Am 11.06.2012 10:24, schrieb Ed Willink:
>>> Hi
>>>
>>> If https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102 was the biggest
>>> drawback, there would almost 'no' problem. UML users have survived for
>>> 3.5 years since that problem was reported. It doesn't appear to have
>>> anything to do with CDO integration. If there is such a problem, please
>>> add a comment to the bug to motivate its resolution.
>>>
>>> Regards
>>>
>>> Ed Willink
>>>
>>>
>>> On 11/06/2012 09:02, Peter wrote:
>>>> Hi Tex,
>>>> as I know there is no CDO compatible UML till now.
>>>> I think this Bug is the biggest drawback.
>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102
>>>> Regards
>>>> Peter
>>>>
>>>> Am 08.06.2012 14:39, schrieb Tex Iano:
>>>>> Hi,
>>>>>
>>>>> I have a web application that programmatically creates and changes UML
>>>>> models (based on EMF of course).
>>>>>
>>>>> Now I want to make this application collaborative, i.e. several users
>>>>> should be able to work on the same UML model at the same time.
>>>>>
>>>>> I think CDO can help me for this purpose.
>>>>> Till now I have stored the UML models as files. As I see when using
>>>>> CDO
>>>>> I have to change to a database right? Or is CDO also for file-based
>>>>> models?
>>>>>
>>>>> After reading the documentation, when using CDO in a collaborative
>>>>> environment, I assume the process is as follows:
>>>>>
>>>>> 1. User 1 logs in
>>>>> 2. User 1 wants to open a model
>>>>> 3. User 1 opens a session
>>>>> 4. User 1 opens a new transaction
>>>>> 5. User 1 works on the model
>>>>> 6. User 1 commits his changes
>>>>> ..
>>>>> N. User 1 closes the session.
>>>>> Is it correct that the session is opened during all my web session? Or
>>>>> do I open a session every time the user wants to work on a model?
>>>>> Well, what I am confused about is, that first the transaction is
>>>>> opened
>>>>> and then the resource is chosen.
>>>>> I had assumed:
>>>>>
>>>>> 1. User logs in
>>>>> 2. User opens a session
>>>>> 3. User chooses a resource
>>>>> 4. Wants to change the model -> opens transcation -> changes ->
>>>>> commits
>>>>> transaction
>>>>>
>>>>>
>>>>> Because in my collaborative application of course some data is cached.
>>>>> For example:
>>>>>
>>>>> My model contains an entity "Person". Now the user wants to see all
>>>>> persons and edit some. He starts a session, opens a transaction, opens
>>>>> the model, gets all persons and closes the transaction and session.
>>>>>
>>>>> The persons are now displayed within a table. Now, the user wants to
>>>>> change a person. He clicks on a certain person and now the details
>>>>> have
>>>>> to be determined. What is happening now? Again opening a session?
>>>>> Again
>>>>> choosing the resource and opening a transaction? Does CDO still now,
>>>>> which element I have selected? Or is the internal ID different now?
>>>>>
>>>>> Maybe you can give me some hints about how to work with CDO in this
>>>>> example.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Tex
>>>>>
>>>>>
>>>>
>>>
>>
>
Re: [CDO] Collaborative work on UML models [message #884577 is a reply to message #884548] Mon, 11 June 2012 11:36 Go to previous messageGo to next message
Ed Willink is currently offline Ed WillinkFriend
Messages: 4151
Registered: July 2009
Senior Member
Hi

Thanks; my ignorance of CDO was showing through.

The OCL project is evolving a UML-aligned pivot meta-model that like
Basic UML and EMOF has no derived unions. This may be more practical for
UML implementation rather than specification tooling. Something else for
https://bugs.eclipse.org/bugs/show_bug.cgi?id=340719 to worry about.

Regards

Ed Willink

On 11/06/2012 11:11, Peter wrote:
> Hi Ed,
> ok I´ll try to make my point more clear.
> When you want a native cdo emf model you need to migrate the genmodel.
> See
> http://wiki.eclipse.org/CDO/Preparing_EMF_Models#Use_the_CDO_Model_Migrator
> And when you do this you can´t generate the uml api because the custom
> code templates of the uml2 project don´t support the required feature
> delegation.
> I think the second problem is that the EModelElement extends EObject
> but Eike Stepper posted a workaround in a bug report a while ago.
>
> Regards
> Peter
>
> Am 11.06.2012 11:25, schrieb Ed Willink:
>> Hi Peter
>>
>> I don't really understand your point, but I think you're confusing two
>> issues.
>>
>> For collaborative editing of a UML model, no EMF generation is needed.
>> It is merely necessary for CDO to keep track of who 'owns' which parts
>> of the model so that changes propagate around correctly.
>>
>> I suspect that you are talking about generating an Ecore model from UML
>> so that you can have an instance of the UML model. This is no doubt
>> important but not a collaborative issue; I would assume that the Ecore
>> equivalent would be a batch conversion; though of course incremental
>> transformation is the next interesting step.
>>
>> Regards
>>
>> Ed Willink
>>
>> On 11/06/2012 10:01, Peter wrote:
>>> Hi Ed,
>>> sure when you work with UML files that is no problem. But
>>> as I know a CDO EMF model needs to be generated with reflective or
>>> dynamic delegation. The UML custom code templates only support "None"
>>> Feature Delegation.
>>> Please correct me If I am wrong...
>>> Regards
>>> Peter
>>>
>>> Am 11.06.2012 10:24, schrieb Ed Willink:
>>>> Hi
>>>>
>>>> If https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102 was the
>>>> biggest
>>>> drawback, there would almost 'no' problem. UML users have survived for
>>>> 3.5 years since that problem was reported. It doesn't appear to have
>>>> anything to do with CDO integration. If there is such a problem,
>>>> please
>>>> add a comment to the bug to motivate its resolution.
>>>>
>>>> Regards
>>>>
>>>> Ed Willink
>>>>
>>>>
>>>> On 11/06/2012 09:02, Peter wrote:
>>>>> Hi Tex,
>>>>> as I know there is no CDO compatible UML till now.
>>>>> I think this Bug is the biggest drawback.
>>>>> https://bugs.eclipse.org/bugs/show_bug.cgi?id=257102
>>>>> Regards
>>>>> Peter
>>>>>
>>>>> Am 08.06.2012 14:39, schrieb Tex Iano:
>>>>>> Hi,
>>>>>>
>>>>>> I have a web application that programmatically creates and
>>>>>> changes UML
>>>>>> models (based on EMF of course).
>>>>>>
>>>>>> Now I want to make this application collaborative, i.e. several
>>>>>> users
>>>>>> should be able to work on the same UML model at the same time.
>>>>>>
>>>>>> I think CDO can help me for this purpose.
>>>>>> Till now I have stored the UML models as files. As I see when using
>>>>>> CDO
>>>>>> I have to change to a database right? Or is CDO also for file-based
>>>>>> models?
>>>>>>
>>>>>> After reading the documentation, when using CDO in a collaborative
>>>>>> environment, I assume the process is as follows:
>>>>>>
>>>>>> 1. User 1 logs in
>>>>>> 2. User 1 wants to open a model
>>>>>> 3. User 1 opens a session
>>>>>> 4. User 1 opens a new transaction
>>>>>> 5. User 1 works on the model
>>>>>> 6. User 1 commits his changes
>>>>>> ..
>>>>>> N. User 1 closes the session.
>>>>>> Is it correct that the session is opened during all my web
>>>>>> session? Or
>>>>>> do I open a session every time the user wants to work on a model?
>>>>>> Well, what I am confused about is, that first the transaction is
>>>>>> opened
>>>>>> and then the resource is chosen.
>>>>>> I had assumed:
>>>>>>
>>>>>> 1. User logs in
>>>>>> 2. User opens a session
>>>>>> 3. User chooses a resource
>>>>>> 4. Wants to change the model -> opens transcation -> changes ->
>>>>>> commits
>>>>>> transaction
>>>>>>
>>>>>>
>>>>>> Because in my collaborative application of course some data is
>>>>>> cached.
>>>>>> For example:
>>>>>>
>>>>>> My model contains an entity "Person". Now the user wants to see all
>>>>>> persons and edit some. He starts a session, opens a transaction,
>>>>>> opens
>>>>>> the model, gets all persons and closes the transaction and session.
>>>>>>
>>>>>> The persons are now displayed within a table. Now, the user wants to
>>>>>> change a person. He clicks on a certain person and now the details
>>>>>> have
>>>>>> to be determined. What is happening now? Again opening a session?
>>>>>> Again
>>>>>> choosing the resource and opening a transaction? Does CDO still now,
>>>>>> which element I have selected? Or is the internal ID different now?
>>>>>>
>>>>>> Maybe you can give me some hints about how to work with CDO in this
>>>>>> example.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Tex
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
Re: [CDO] Collaborative work on UML models [message #899177 is a reply to message #883393] Mon, 30 July 2012 21:03 Go to previous messageGo to next message
Tex Iano is currently offline Tex IanoFriend
Messages: 99
Registered: February 2012
Member
Hi,

thank you guys for your answers. Has this issue changed with UML 4.0.0?

Currently my application works on XMI files and I am thinking about migrating to CDO. However, I have read a lot of articles and posts now and obviously CDO is not an alternative when using UML models. Or is there any prototype working that shows how to store UML models with CDO/Teneo?

Regards,

Tex
Re: [CDO] Collaborative work on UML models [message #899211 is a reply to message #899177] Tue, 31 July 2012 06:05 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 5574
Registered: July 2009
Senior Member
Am 30.07.2012 23:03, schrieb Tex Iano:
> Hi,
>
> thank you guys for your answers. Has this issue changed with UML 4.0.0?
> Currently my application works on XMI files and I am thinking about migrating to CDO. However, I have read a lot of
> articles and posts now and obviously CDO is not an alternative when using UML models. Or is there any prototype
> working that shows how to store UML models with CDO/Teneo?
None that I'm aware of ;-(

I know some people who would like to implement UML and Ecore on CDO but it seems difficult to raise appropriate funds.

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Re: [CDO] Collaborative work on UML models [message #899220 is a reply to message #899211] Tue, 31 July 2012 07:05 Go to previous messageGo to next message
Tex Iano is currently offline Tex IanoFriend
Messages: 99
Registered: February 2012
Member
Hi,

ok thanks. So: Who are the people who would like to implement it? How many fund do we need and what could we do to raise it?

In my opinion this is a very important functionality that could help to make UML more useful. And when I imagine the integration with Papyrus... wow. Collaborative UML editing without mailing the UML files. No problems with inconsistency etc.

Regards,

Tex

[Updated on: Tue, 31 July 2012 07:22]

Report message to a moderator

Re: [CDO] Collaborative work on UML models [message #899227 is a reply to message #899220] Tue, 31 July 2012 07:33 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 5574
Registered: July 2009
Senior Member
Am 31.07.2012 09:05, schrieb Tex Iano:
> Hi,
>
> ok thanks. So: Who are the people who would like to implement it?
I already BCC'ed them and hope that they're able to comment here.

> How many fund do we need and what could we do to raise it?
>
> In my opinion this is a very important functionality that could help to make UML more useful.
I agree!

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Re: [CDO] Collaborative work on UML models [message #899762 is a reply to message #899220] Thu, 02 August 2012 09:07 Go to previous messageGo to next message
Eike Stepper is currently offline Eike StepperFriend
Messages: 5574
Registered: July 2009
Senior Member
Am 31.07.2012 09:05, schrieb Tex Iano:
> Hi,
>
> ok thanks. So: Who are the people who would like to implement it? How many fund do we need and what could we do to
> raise it?
Kenn Hussey (UML2) and Christian Damus (formerly OCL) are doing a detailed analysis to come up with a list of work items
and estimate the size of the effort. Nobody has committed to funding the actual implementation as of yet.

> In my opinion this is a very important functionality that could help to make UML more useful.
Definitely!

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Re: [CDO] Collaborative work on UML models [message #900207 is a reply to message #899762] Sun, 05 August 2012 15:18 Go to previous message
Tex Iano is currently offline Tex IanoFriend
Messages: 99
Registered: February 2012
Member
Ok great, thanks.

Tex
Previous Topic:EMF Command for parent child
Next Topic:Automatically validate all referenced models
Goto Forum:
  


Current Time: Mon Nov 24 08:38:53 GMT 2014

Powered by FUDForum. Page generated in 0.08852 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software