Closed AlexanderPico closed 5 years ago
The test would go something like this...
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.
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.
... 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.
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!
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...