cytoscape / cytoscape-automation

Collection of scripts that include programmatic io and control of Cytoscape
Creative Commons Zero v1.0 Universal
81 stars 58 forks source link

Enough SUIDs to support mulitple users accessing single instance via CyREST? #21

Closed AlexanderPico closed 5 years ago

AlexanderPico commented 7 years ago

Originally suggests by jorge on api repo.... moved here for relevance: https://github.com/cytoscape/cytoscape-api/issues/8

Basically, do we have SUIDs in enough places to support independent users accessing a single hosted instance of Cytoscape and not clobbering each other's work? At the network level, I think we might. But we would need SUIDs for styles and few other things as well.

Worthwhile mocking up a trial and seeing what breaks...

AlexanderPico commented 7 years ago

The test would go something like this...

  1. Get Cytoscape running on a server with x-windows handling the mandatory GUI.
  2. Connect to instance via CyREST from 2 or more machines.
  3. Attempt various workflows and see what breaks.

The thought experiment alone reveals some initial results...

Alternately, we should weight the complexity of supporting this against the multi-instance strategy where we launch a unique Cytoscape session per user. How do these two scale when dealing with dozens, hundreds or thousands of users?

This would be a "quick'n'dirty" prototype of what we could do with a headless version of Cytoscape as well. And eventually package and doc these solutions so others could host their own Cytoscape services.

dotasek commented 7 years ago

I could try this in the lab; I've already been able to communicate with my Cytoscape from other computers.

A few things I think would break:

And of course, Styles and Mappings would be shared between users, and would require some renaming and hiding, etc.

bdemchak commented 7 years ago

... and to pile on ...

Users would be free to view/manipulate each others' networks.

... also to reload/clear the entire session.

... we would need to be very sure the CyREST commands are serialized ... Cytoscape's threading model would be pushed hard if not.

Probably a bad idea unless use cases were well constrained. We'd have to know more about the intended use case. We could not endorse this for unrestricted use.

AlexanderPico commented 7 years ago

1) We could make it so users would NOT be free to view/manipulate each others' networks. That's the point of using SUIDs as a sort of filter for what's visible/accessible by each user. They should be totally unaware that other networks are in the session.

2) That would be blocked.

3) Yes, 100% agreed. If this will work at all, it might work for well-constrained use cases. Like you, I was also thinking layouts. Might be a quick and cheap way to get service-based layouts!