Sharing Archi models in a Graph database

Started by fpolimen, May 13, 2016, 05:21:07 AM

Previous topic - Next topic

fpolimen

Hi,

Is there any initiative to develop a plugin for a Graph database as a repository for sharing models ?

Francesco

Jean-Baptiste Sarrodie

Hi,

No, there's no plugin currently being developed for that.

IMHO using a Graph Database as a repository for sharing models is not the best solution because there are lots of constraints to actually share models in a repository (branches, merges, commits, history, conccurent access, locks...).

But exporting the model itself (not the diagrams) to a Graph DB is something really interresting because it would allow someone to explore it and do some computation (impact analysis...). With such "simple" usecase, one could easily develop an export plugin.

Regards,

JB
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

Phil Beauvoir

I agree. Personally I'm very interested in graph databases simply because I don't know that much about them but I have read about Neo4J. But as JB says the problem with any DB is the connection and synchronisation between Archi and the DB itself, whether it's a graph DB, SQL or something else.
If you value and use Archi, please consider making a donation!
Ask your ArchiMate related questions to the ArchiMate Community's Discussion Board.

fpolimen


I am thinking to the possibility to represent models as Graphs in a Graph DB to have such advanced analysis, as mentioned by JB, and more dynamic functionalities for example in the management of Transitions.

I'm not an expert of Graph DB and I am not aware of such limitations as repository vs traditional RDBMS,
maybe one could start thinking on how to map models on a graph (eventually inside the kernel of the product) and then think how to scale the solution to a shared repository

peterson.br

#4
Hi,
I played around with this idea with good results.

What I used:
- Archi (with OpenExchangeFile plugin)
- OrientDB (Graph and Document Database - http://orientdb.com)
- Java language

What I did:
1 - Generated java classes from OpenExchangeFile XSD (using jaxb)
2 - Exported .archimate file to OpenExchangeFile format (xml)
3 - Created a program in Java that imports the generated XML file and exports it to OrientDB

Then I used OrientDB Studio (Studio is a web interface for the administration of OrientDB that comes in bundle with the OrientDB distribution - run queries and draw simple graphs).

Sample Process (Portuguese):


Result in OrientDB (query what systems and proccess are related to an infrastructure service):


All the process was pretty straighforward (something like 4-6 hours). If anyone is interested in more details, just ask :)

michem

I did a similar exercise in Neo4j.

I agree that it is not the way to go for sharing/repository, but very good for model exploration and querying..

Blogpost on my experience here:

https://twitter.com/michemt/status/753192748799369220
http://www.loqutus.com/content/exploring-archimate-models-graph-database

Hervé

#6
Hi,

I'm currently adding Neo4J support to my export/import database plugin.

At the moment, I'm not 100% happy because I just translated my relational datamodel to a graph one so I obviously need to qualify relationships rather than using properties. Also, I need to optimise my requests to increase performance. But at least it works  ;D

- Would you have any advice ?
- Would you share your graph structure (what do you store as properties, what did you convert into Neo4J relationships, ... ) ?
- Did you find that a graph database is as useful as you expected ?
- Did you really get added value using such a database ?

Thanks and regards
Hervé

mwherman2000

Check out this new blog article from yesterday...

Crossing the EA Chasm: Marrying Open EA Data with Graph Databases
https://hyperonomy.com/2016/10/19/crossing-the-ea-chasm-marrying-open-ea-data-with-graph-databases/

Best regards,
Michael Herman (Toronto)
Parallelspace Corporation

Hervé

Hi Michael,

thanks a lot. I will definitively read it.

Best regards
Hervé

islamsayed

Hi All,
great effort and that's just simply my first post! thanks for contribution for this great tool
just wanted to say that I think models in archi is a great fit for export to graphdb for analysis, as it is the a way perfect fit for a cmdb

cheers

brain_work

IMHO Gephi is an easier solution than graph databases. Currently I use the same dataset to create a GEFX file for Gephi and .csv files to import into Archi (>75000 elements & relations in total).
There is a Gephi Toolkit which can be used in other Java apps so perhaps in a future release of Archi it can be used to replace the current Visualiser in which I miss the option to create advanced filters myself.

See: https://gephi.org/ and https://github.com/gephi/gephi/wiki/How-to-use-filters

Regards,
Peter


Hervé

Hi Peter,

That looks nice ... I'll have a closer look to check if I can use it with my cmdb data ...

Thanks a lot
Hervé

brain_work

Hi Hervé,

I've some issues with Gephi crashes on my work laptop, I'm not sure if that has to do or with Gephi itself in combination. If I look on the internet Gephi itself should be stable.  But I don't have another laptop/computer powerful enough to work with Gephi so I'm curious how it works for you...

Regards,
Peter

Hervé

Hi Peter,

I installed it on my laptop and so far, so good (I mean I did not experienced any crash ... yet  ;D). But I just had time to play around with the demo files ...

Best regards
Hervé

brain_work

Hi Hervé,

I experience crashes with the demo files as well. It happens when I'm in the Data Laboroty or Preview and want to go back to the Overview (Gephi closes when I click on the Overview tab)

Regards,
Peter