Book a Demo

Author Topic: EA Repository - Multi User Dev  (Read 6186 times)

rneelakantan

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
EA Repository - Multi User Dev
« on: August 07, 2006, 02:18:29 pm »
If I am not wrong, EA Repository (saving EA project in the database) is to help architect, analyst work on a single EA Diagram.  That is each of these people can update the EA Project.  If that is the case then how can we assure that each one of these are not messing with others work.  Here is an example for EA "SAMPLE" project.

DB Architect has 1 package
1. DB Model - Contains Enterprise wide data model, db design.

Business Analyst has multiple package:
1. System Architecture
2. Class Diagram

I have set up user security in such a way that DB Architect cannot mess around with Business Analyst work and vice versa.

SAMPLE projects repository is in Oracle Database and both DB architect and Analyst have access to the Oracle User Account where the SAMPLE repository is created.

Now lets assume that Data Architect wants to make changes to DB Model, so he / she'll get the latest SAMPLE project from EA Respository and updates the Data Model.  After making changes, he writes the SAMPLE Project back to Oracle repository.  

Now Business analyst wants to make some change and he/she gets the latest SAMPLE project from repository, makes changes and forgets to update the repository.

Next day, Data Architect get the latest SAMPLE project from respository.  This version still doesn't contain the changes made by the BA (as he forgot to update the repository), make changes and save the changes to the EA Oracle Repository.

Now BA realises that he made changes earlier and did not save the changes to repository.  He saves the SAMPLE project changes to the oracle EA repository.  Oops..what did he do?  The changes made by the Data Architect are lost because BA did not get the latest version from repository which included changes from the Data Architect.  

Now my questions is "Is this scenario possible?" Is there a way to avoid this?  

Your answer is very much appreciated.

Ramanan



rneelakantan

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #1 on: August 07, 2006, 03:03:36 pm »
In other words, can I do a "partial data transfer" from EA Project to EA Repository instead of Tools ->Data Management -> Data Transfer (this does full data model transfer).

Ramanan

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #2 on: August 07, 2006, 03:14:09 pm »
Look at XMI export/import (http://sparxsystems.com.au/EAUserGuide/index.html?importexport.htm) and controlled packages (http://sparxsystems.com.au/EAUserGuide/index.html?controlledpackages2.htm)

Version control in EA uses controlled packages and may be worth you looking into.

rneelakantan

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #3 on: August 07, 2006, 03:21:49 pm »
I have used XML/XMI approach and in that case some one (lead developer, system architect) needs to integrate / import the XML/XMI generate by the individual team members.  That means leader dev/system architect need to spend some extra time to integrate the stuff.  hmmm..

So that means the approach which I am using "having a central repository in Oracle DB" will not work with multi-user :(

Ramanan

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #4 on: August 07, 2006, 03:26:56 pm »
A central repository can work.  People could make their changes directly in the repository or each person could re-import their XMI changes made remotely back into the shared repository.

rneelakantan

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #5 on: August 07, 2006, 03:30:57 pm »
But taking into account the scenario which I have given, there is always possibility of losing one's change in case other person forget to update the EA Repository Stored in the Database on time.  Is that correct?

Ramanan

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #6 on: August 07, 2006, 03:41:16 pm »
XMI import/export and controlled packages will only reduce that problem to a package level rather than a model level.  If you want to eliminate the possibility of it happening completely you'll need to use version controlled packages.  This will mean that no-one will be able to edit a package that someone else is currently editing.

bjsarma

  • EA Novice
  • *
  • Posts: 11
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #7 on: August 09, 2006, 07:10:12 am »
You can use the central repository concept along with controlled packages.

Follow the scenario

Swimline Actor : Project Architect

a) creates a new model
b) Creates control packages
c) Upsizes the model into DBMS repository


Swimline Actor : Business Analyst

d) Connects to the repository directly (no downloading of model using data trasfer)
e) Check out the control package
f) Works on the package and check-in the package

Hope this flow workd for you
e)



rneelakantan

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #8 on: August 09, 2006, 10:13:47 am »
When you said Central Repository, do you mean a version control system such as CVS, Subversion or SCC?  

It means I will have to create a Control Package and then use Version Control Configuration Window to set it to the one of CVS/Subversion / SCC.  Is that correct?

You referred to DBMS Repository, how can I connect to this DBMS repository (this is not my version control repository) and not do data transfer, but just upload the changes?  Can you please give me the steps needed to achieve my goal?

Thx.
Ramanan

JV

  • EA Novice
  • *
  • Posts: 12
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #9 on: August 11, 2006, 06:35:24 am »
hmm, by my mind you don't have to make any special upload activities when you work with model (project file) what is located in DB repository. all changes are uploaded automatically, some (when you work with some diagram) of changes after pressing save button.

When you transfer something to repository, then you delete previous data from it.

What I have currently:
1. version controlled packages with CVS (in order to have history and availability to use some older version of package -> version handling)
2. oracle repository for teamwork

we tried to change different packages at the same time (2 analysts). I had always second analysts changes at place.

When we tried to make changes to same diagram or object, then second analyst (person who pressed save button later than first person) got message, that somebody has already changed it.

if you have opened some diagram and left it open for some hours, then it is reasonable to refresh it (right mous click on diagram gives that opportunity).

So, when you use DB repository, you have always up to date model. at least this is what i have with oracle repository

JV

  • EA Novice
  • *
  • Posts: 12
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #10 on: August 11, 2006, 06:38:04 am »
one more option... you can always lock object for editing (enable it from scurities option). this prevents same time changes, if model is used thru DB repository:)

rneelakantan

  • EA User
  • **
  • Posts: 21
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: EA Repository - Multi User Dev
« Reply #11 on: August 11, 2006, 09:51:33 am »
Well I figured out after doing Data Transfer to Oracle DBMS Repository, we can directly open the project from the repository.  And also I have set up the security for individual packages and have asked the owners of the package to set the appropriate security.  So for time being this works for our team where team members can work on individual projects without affecting others work.  

Probably Later I will move to a version control system.

Thx. guys
Ramanan