Protege Client-Server Tutorial

From Protege Wiki
Revision as of 09:15, August 4, 2009 by Tredmond (talk | contribs) (Resources)

Jump to: navigation, search

Protege Client-Server Tutorial

This tutorial explains how to configure and run Protege in client-server mode. The client-server mode allows multiple Protege clients to edit simultaneously a shared ontology stored on a Protege server. The client-server mode is also referred to as the multi-user mode of Protege and is suitable for projects in which multiple users need to access and edit the same ontology.



The Protege client-server mode

The client-server mode allows multiple Protege clients to edit simultaneously a shared ontology stored on a Protege server. The client-server mode is also referred to as the multi-user mode of Protege and is suitable for projects in which multiple users need to access and edit the same ontology.

The communication between the client and server is realized using the Java Remote Method Invocation (RMI), which works also if the clients and server are behind firewalls. See the Advanced Topic section for information on how to setup the server to run with a firewall.

The tutorial is structured in the following way: first, it describes how to configure and start the Protege server and some trouble shooting tips, then it will describe how to connect a Protege client to a server, and then it will describe some advance topics, such as working with firewalls, compression, debugging, etc.


Setting up the Server

The setup of the Protege server is described in details on the Server setup wiki page. The covered topics include:

  • Starting the server
  • Testing the server
  • Shutting down the server
  • Troubleshooting


Configuring the Server: Users and Policies

The configuration of the Protege server is described in details on the Protege server configuration wiki page. The covered topics include:

  • Description of the metaproject
  • Creating new users
  • Setting the policies


Administering the server: Starting and shutting down server projects

The administration of the Protege server is described in details on the Protege server administration wiki page. The covered topics include:

  • User guide for the Protege Server Administration user interface
  • Starting and shutting down server projects
  • Killing other users' sessions
  • Shutting down the Protege server


Advanced Topics

The advanced topics related to the Protege server are described in details on the Advanced wiki page. The covered topics include:

  • Running the Protege server as a Windows Service
  • Working with Firewalls
  • Configuration Settings in the start-up scripts of the server and client
  • Debug and Performance Monitoring
  • Accessing the Server Programmatically


Limitations

  • Forms configuration made on the client are not propagated to the server. All clients will see the same forms configuration of the project stored on the server side. We do not currently support different forms for different users. So, if you want to change the forms configuration of a project, you will need to edit the server project in the standalone version of Protege on the server side, and then restart the Protege server for the changes to take effect.
  • Policy mechanism. Currently we only enforce some of the operations in the GroupOperations that define the policies for accessing the server. The list of enforced policies is available on the server configuration wiki page. We also provide a policy mechanism that is accessible via an API. If a project defines its own custom operations and policies for its own UI, then the application can use the policy manager API and enforce their own policies in their custom application (it can also be a tab widget, or a separate application).


Troubleshooting

Occasionally things to wrong. It is especially hard sometimes to debug problems with the first connection from the client to the server and we have started a troubleshooting page to give some of ideas on how to troubleshoot a problem.

Resources

You may take a look at Collaborative Protege that provides support for collaboration (e.g., change tracking, annotations, discussion threads on ontology entities, chat, etc.). Collaborative Protege works in client-server mode with different ontology languages (OWL, RDF, Frames) and for different Protege backends (files or databases).