I joined to the "GSoC process" so late.. sorry. And if I'm doing something wrong - sorry

I want to start this topic for discussions about my proposal. In case I will not be accepted by GSoC (it will be sad for me ) this topic can be moved in appropriate thread, but it would be useful to know opinion of the Gephi community about my proposal.

The basic idea is development of the integration mechanism with other applications using tcp-connection. Or in other words, create a plugin for Gephi which must: 1) receive command from external applicaion and execute them 2) send some project events to the external application. List of commands will provide capability to import graphs into Gephi like a import from gexf-file (means the capability to import simple/hierarchical/dynamic graphs). Moreover, in future versions list of commands can be expanded to use other features of Gephi like a animation playback. List of events will provide an opportunity for external application to observe the state of some Gephi models and do some useful actions. For example, events - changing in TimelineModel; actions - plot additional data.

As a part of this work I want to realize client-side library for MATLAB. Because MATLAB can use Java classes the result will be just a Java-library which can be used in any Java-applications. There is idea to implement class (called GephiProxy) which provide references to objects implementing native Gephi API. For example, class RemoteTimelineModel can implement interface TimelineModel and handle incomig events from real TimelineModel in Gephi; class RemoteTimelineController can implement interface TimelineController and send commands to the real Timeline in Gephi. But transferring a graph to the Gephi is a specific feature and requires special and maximum simple interface without Container and Draft concepts which is defined in org.gephi.io.importer.api.

I think that for the first version would be enough to implement the "single server - single client" architecture. It allows to test the main concept without the need to solve problems of synchronization. For all transferred data I plan to use JSON format.