Considerations on porting Tab Plugins to Client-Server mode

From Protege Wiki
Revision as of 21:39, October 6, 2007 by Tredmond (talk | contribs)

Jump to: navigation, search

In some cases a tab plugin will require some modification in order to function properly in client-server mode. For example, consider the change tab plugin. This plugin monitors changes made to an ontology and displays a summary of the changes in a nice way to the user. When we first tried to run this plugin in client-server mode we found that it did not function correclty. The listeners that monitored the ontology for changes ran on each of the clients. When one client made a change to the ontology, events representing that change were generated on each of the clients. The listeners monitoring these changes fired on each of the clients and therefore more than one copy of each change would find its way into the changes tab.

The solution is to refactor the plugin so that the listeners run on the server rather than on the client. Since there is only one listener on the servver the changes only get copied into the changes tab once. In order to do this the tab plugin needs to be refactored into a combination of the tab plugin and the

PortingTabPluginsToMultiUser01.png