GCore Based Information System Installation
The Information System is composed by 4 Services (IS-IC, IS-Registry, IS-Notifier, IS-gLiteBridge) and a set of client libraries. The libraries are automatically shipped with the gHN-distribution and do not require any specific configuration than the gHN configuration.
Contents
Deployment Scenario
In their current release, the IS services are VO specific services, this means that there has to be one and only one instance of those services for each VO. Starting from the infrastructure scope, but at the time being also all the VOs need a manual installation.
The typical deployment scenario requires at least 2 gHNs:
- one to deploy the IS-IC
- one to deploy the IS-Registry, the IS-Notifier and the IS-gLiteBridge
IS-InformationCollector
IS-Registry
Installation
The IS-Registry can be deployed on a gHN as any other gCube Service by typing:
gcore-deploy-service <path>/org.gcube.informationsystem.registry.gar
gHN Configuration
The gHN where an IS-Registry instance is running has to be configured in a special way:
- it must be declared a STATIC node (GHNtype parameter), i.e. a node where no dynamic deployment activities can be performed
- it must run in a ROOT mode (mode parameter), meaning that it starts up in a special way
These two configuration settings have to be specified in the $GLOBUS_LOCATION/config/GHNConfig.xml file as reported in the following example:
<?xml version="1.0" encoding="UTF-8"?> <jndiConfig xmlns="http://wsrf.globus.org/jndi/config"> <global> <environment name="securityenabled" value="false" type="java.lang.Boolean" override="false" /> <!-- setting for ROOT mode --> <environment name="mode" value="ROOT" type="java.lang.String" override="false" /> <environment name="startScopes" value="devsec" type="java.lang.String" override="false" /> <environment name="infrastructure" value="gcube" type="java.lang.String" override="false" /> <environment name="labels" value="GHNLabels.xml" type="java.lang.String" override="false" /> <!-- setting for STATIC gHN --> <environment name="GHNtype" value="STATIC" type="java.lang.String" override="false" /> <environment name="localProxy" value="/home/globus/..." type="java.lang.String" override="false" /> <environment name="coordinates" value="43.719627,10.421626" type="java.lang.String" override="false" /> <environment name="country" value="it" type="java.lang.String" override="false" /> <environment name="location" value="Pisa" type="java.lang.String" override="false" /> <environment name="updateInterval" value="60" type="java.lang.Long" override="false" /> </global> </jndiConfig>
Instance Configuration
The configuration of an IS-Registry instance is a two-step process:
- since an IS-Registry can act in one and only one scope, its JNDI file ($GLOBUS_LOCATION/etc/org.gcube.informationsystem.registry/jndi-config.xml) must be configure to join only one scope. In the following example, the instance is configured to join the scope named /testing/vo1:
<?xml version="1.0" encoding="UTF-8"?> <jndiConfig xmlns="http://wsrf.globus.org/jndi/config"> <service name="gcube/informationsystem/registry"> <environment name="configDir" value="etc/org.gcube.informationsystem.registry" type="java.lang.String" override="false" /> <environment name="securityManagerClass" value="org.gcube.common.core.security.GCUBESimpleServiceSecurityManager" type="java.lang.String" override="false" /> <!-- Lifetime for temporary resources, after this period temporary resources are destroyed--> <environment name="temporaryResourceLifetimeInMs" value="480000" type="java.lang.Long" override="false" /> <environment name="startScopes" value=" /testing/vo1" type="java.lang.String" override="false" /> </service> ....
- due to its role, the IS-Registry requires a special Service Map for its scope. In that map, the EPR of the RegistryFactory itself must be reported. Let's suppose that an instance running on a node named grid5.4dsoft.hu joins the /testing/vo1 scope, the $GLOBUS_LOCATION/config/ServiceMap_vo1.xml file must be filled as follows (the reported EPRs are just for sample purposes):
<ServiceMap> <Service name ="ISICAllQueryPT" endpoint ="http://grid1.4dsoft.hu:8080/wsrf/services/diligentproject/informationservice/disic/DISICService"/> <Service name ="ISICAllRegistrationPT" endpoint ="http://grid1.4dsoft.hu:8080/wsrf/services/diligentproject/informationservice/disic/DISICRegistrationService"/> <Service name ="ISRegistry" endpoint="http://grid5.4dsoft.hu:8080/wsrf/services/gcube/informationsystem/registry/RegistryFactory" /> </ServiceMap>
IS Filters
Optionally, a set of filters can be configured in order to prevent the publication of some GCUBEResources matching the given criteria.
Verify the Installation
Once the IS-Registry has been configured, the gHN can be started.
The nohup.out file has to report (among the others) the following portTypes:
gHN started at: http://host:port/wsrf/services/ with the following services: GCUBE SERVICES: ... [4]: http://host:port/wsrf/services/gcube/informationsystem/registry/Registry [5]: http://host:port/wsrf/services/gcube/informationsystem/registry/RegistryFactory
Then, a set of messages stating that the local profiles are registered or updated with the local event mechanism has to appear in the $GLOBUS_LOCATION/logs/container.fulllog file.
This is an example of such messages:
2009-06-20 00:31:41,409 DEBUG contexts.ServiceContext [GHNConsumer$<anon>,debug:66] [0.165s] GHNManager: Publishing GHN profile in scope /testing/vo1 2009-06-20 00:31:41,410 TRACE impl.GCUBEProfileManager [GHNConsumer$<anon>,trace:82] GCUBEProfileManager: Configured ISRegistry instance detected 2009-06-20 00:31:41,410 TRACE impl.GCUBEProfileManager [GHNConsumer$<anon>,trace:82] GCUBEProfileManager: Checking local configuration for http://host:port/wsrf/services/gcube/informationsystem/registry/RegistryFactory 2009-06-20 00:31:41,410 TRACE impl.GCUBEProfileManager [GHNConsumer$<anon>,trace:82] GCUBEProfileManager: Local ISRegistry instance detected 2009-06-20 00:31:41,411 TRACE impl.GCUBELocalPublisher [GHNConsumer$<anon>,trace:82] GCUBELocalPublisher: Updating resource ea5bd570-4ad5-11de-a511-84b4178b18ed via local event