The BioMOBY registry scripts are a required install for all you wishing to host your very own BioMOBY registry. These scripts contain the code that is used to retrieve information regarding the ontologies in RDF format, code for generating RDF that is served to the service providers upon successful service registration, an LSID resolution authority, and much more.
The following is a list of items contained in this release:
Installing the scripts are extremely straight-forward and quite easy.
Installation Procedure
authority.plCopy the following file somewhere other than a web accessible directory (this script will be placed on a cron)
ValidateService
AgentRDFValidator
ServicePingerValidator
RESOURCES
GenerateRDF.cgi
Moby
service_tester.pl
Please make sure that the first line of all the scripts corresponds to the correct location of your perl executable.
For instance if you perl is located in /bin/my/perl, then make sure to modify the first line of each of the scripts so that they read #!/bin/my/perl -w
To Configure the servlets, you must know the following details regarding your local registry:
How to Configure
You will have to make sure that the following variables are set in the environment for the profile that your webserver will dispatch requests to. Most likely, they were set upon installation of the BIoMOBY registry.
Optionaly, it wouldnt hurt to add one more:
On *NIX machines, an example of how to set MOBY_SERVER is shown below:
set MOBY_SERVER=http://your.domain.here/cgi-bin/MOBY/MOBY-Central.pl
A better place for these variables would be in the profile of the user that starts the web server so that the variables can persist.
You will have to make sure that the following variables are set in your conf (httpd.conf) file. In most cases, you will have done this already when the registry was installed.
In any case, the variables are listed below:
Optionaly, it wouldnt hurt to add one more:
Next, you will have to open the file mobycentral.config and add or modify a couple of configuration parameters:
lsid_authority | Your domain name, as you would like it in urn:lsid:lsid_authority:namespace:object |
lsid_namespace | The namespace that you would like service instances to use when resolving LSIDs, e.g. urn:lsid:lsid_authority:namespace:object |
resourceURL | The URL that would return the RDF describing the service instances registered in your registry. This value is most likely: http://yourDomain:yourPort/authority/RESOURCES/MOBY-S/ServiceInstances |
allResources | The URL that would return the RDF describing all ontologies in your registry. This value is most likely: http://yourDomain:yourPort/authority/RESOURCES/MOBY-S/FULL |
service_tester_path | The full readable/writeable path that the service tester can place persistent data between invocations . This can be any directory, including a temporary one. Make sure that the scripts invoked through apache and from the command line can read/write to it. |
rdf_cache | The full readable/writable path that the RESOURCES script can place cached RDF related files. This can be any directory, including a temporary one. Make sure that the scripts invoked through apache and from the command line can read/write to it. |
lsid_authority | Your domain name, as you would like it in urn:lsid:lsid_authority:namespace:object |
lsid_namespace | The namespace that you would like Objects to use when resolving LSIDs, e.g. urn:lsid:lsid_authority:namespace:object |
resourceURL | The URL that would return the RDF describing the datatypes registered in your registry. This value is most likely: http://yourDomain:yourPort/authority/RESOURCES/MOBY-S/Objects |
lsid_authority | Your domain name, as you would like it in urn:lsid:lsid_authority:namespace:object |
lsid_namespace | The namespace that you would like namespaces to use when resolving LSIDs, e.g. urn:lsid:lsid_authority:namespace:object |
resourceURL | The URL that would return the RDF describing the namespaces registered in your registry. This value is most likely: http://yourDomain:yourPort/authority/RESOURCES/MOBY-S/Namespaces |
lsid_authority | Your domain name, as you would like it in urn:lsid:lsid_authority:namespace:object |
lsid_namespace | The namespace that you would like service instances to use when resolving LSIDs, e.g. urn:lsid:lsid_authority:namespace:object |
resourceURL | The URL that would return the RDF describing the service types registered in your registry. This value is most likely: http://yourDomain:yourPort/authority/RESOURCES/MOBY-S/ServiceTypes |
To enable the LSID authority script, you will have to perform up to 2 more tasks:
Setting up DNS (excerpt)
All that you - or your system administrator - must do, is to add a service record for the machine that will run the authority.
Suppose the machine is authority.company.net and that it will serve as the authority named company.net. Further suppose that the service will be on port 8080. The record that must be added should go into the master zone file for company.net's DNS server (perhaps a file named /var/named/company.net.zone on company.net):
_lsid._tcp IN SRV 1 0 8080 authority.company.net.If the authority name is supposed to be authority.company.net rather than company.net, the record in company.net's zone file should look like:
_lsid._tcp.authority IN SRV 1 0 8080 authority.company.net.
Adding a ScriptAlias Directive
All that you - or your system administrator - must do, is add the following directive to your web server configuration file:
ScriptAlias /authority "/path/to/apache/cgi-bin/authority.pl"
Once these values have been added or modified, make sure to save the configuration files and restart the server. Your changes should be reflected in your registry.
Configuring the Service Tester
To set up the service tester (service_tester.pl), you will have to do 2 things.
Note: When setting up the cron job, make sure that MOBY_CENTRAL_CONFIG is visible in the cron's environment. One way of doing this is to do something like the following:
* * * * * /bin/su - root -c /path/to/your/service_tester.plOf course, you will need to modify the timing of the job, i.e. the * * * * * bit!
The user configurable variables for the service tester are listed below with their descriptions. To modify them, open up the file service_tester.pl and change the values to those values you wish to have.
Configuring the RESOURCES script
To set up the RESOURCES script, you may have to do 2 things.
The user configurable variables for the service tester are listed below with their descriptions. To modify them, open up the file service_tester.pl and change the values to those values you wish to have.
To speed up downloads of the RDF fles that the RESOURCE script serves, you will need to enable mod_deflate on your Apache webserver.
Of course, the details on how to do this on your system may differ, but in general, the steps involved are:
LoadModule deflate_module path/to/modules/mod_deflate.soOf course, you will have to update the path/to/modules to reflect where it is that you have mod_deflate.so installed.
<Location /> # compress only the following mime types AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/rdf+xml # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location>Feel free to add more mime types.
Once you have installed and configured the scripts, you can determine if the install was successful by attempting to resolve the following URL:
http://your.domain.com:your_port/cgi-bin/Moby
where your.domain.com is the domain name of the server that the servlets were installed on and your_port is the server port.
The resulting page will outline those scripts that are included in this distribution and will provide you with links to test them.