Resource Management Installation

From Gcube Wiki
Revision as of 12:54, 6 September 2012 by Manuele.simi (Talk | contribs) (Installation)

Jump to: navigation, search

Preliminary Note

All the software cited in this section be downloaded from the gCube Software Distribution Site, unless otherwise reported.

gHNManager

Installation

The gHNManager is a Local Service shipped and installed within the gHN distribution.

gHN Configuration

No specific configuration is needed, but the the typical gHN configuration.

Instance Configuration

The service instance does not require any specific configuration. As Local Service, it automatically joins all the gHN scopes.

Verify the Installation

Once the gHN is started, the $GLOBUS_LOCATION/nohup.out file has to report (among the others) the following portType:

gHN started at: http://host:port/wsrf/services/ with the following services:

GCUBE SERVICES:
...
[3]: http://host:port/wsrf/services/gcube/common/vremanagement/GHNManager
...


Looking at the $GLOBUS_LOCATION/logs/container.fullog, the following messages related to the gHNManager initialisation have to be observed:

2009-07-06 16:08:04,329 INFO  contexts.ServiceContext [GHNManager-Initialiser,info:78] [0.0s] GHNManager: Added scope(s) [/testing]
2009-07-06 16:08:04,329 INFO  contexts.ServiceContext [GHNManager-Initialiser,info:78] [0.0010s] GHNManager: INITIALISING RUNNING INSTANCE
2009-07-06 16:08:04,479 TRACE contexts.ServiceContext [GHNManager-Initialiser,trace:82] [0.151s] GHNManager: loading RI profile
2009-07-06 16:08:04,490 INFO  contexts.ServiceContext [GHNManager-Initialiser,info:78] [0.162s] GHNManager: Added scope(s) [/testing, /testing/vo1]
2009-07-06 16:08:04,495 INFO  contexts.ServiceContext [GHNManager-Initialiser,info:78] [0.167s] GHNManager: managing security with a GCUBESimpleServiceSecurityManager
2009-07-06 16:08:04,497 INFO  contexts.ServiceContext [GHNManager-Initialiser,info:78] [0.169s] GHNManager: managing remote persistence with a GCUBERINoPersistenceManager
2009-07-06 16:08:04,500 INFO  contexts.GHNContext [GHNManager-Initialiser,info:78] [0.997s] GHNContext: REGISTERED RI OF (VREMANAGEMENT,GHNMANAGER)
2009-07-06 16:08:04,538 INFO  contexts.ServiceContext [GHNManager-Initialiser,info:78] [0.21s] GHNManager: moved to status INITIALISED
2009-07-06 16:08:04,542 DEBUG contexts.ServiceContext [GHNConsumer$<anon>,debug:66] [0.0s] GHNManager: UPDATE event received
2009-07-06 16:08:04,744 INFO  contexts.ServiceContext [GHNManager-Subscriber,info:78] [0.0s] GHNManager: registering for GHN shutdown events
2009-07-06 16:08:04,745 INFO  contexts.ServiceContext [GHNManager-Subscriber,info:78] [0.0010s] GHNManager: registering for GHN scope events as a local service
2009-07-06 16:08:04,790 TRACE impl.GHNManager [PortTypeConsumer,trace:82] [0.0s] GHNManager: INITIALISING PORTTYPE GHNMANAGER

Afterward, per each gHN scope, the following messages related to the gHN profile publication have to be reported in the same log file:

2009-07-06 16:08:04,542 DEBUG contexts.ServiceContext [GHNConsumer$<anon>,debug:66] [0.0s] GHNManager: UPDATE event received
2009-07-06 16:08:04,544 DEBUG contexts.ServiceContext [GHNConsumer$<anon>,debug:66] [0.0020s] GHNManager: Publishing GHN profile in scope /testing
2009-07-06 16:08:04,551 TRACE impl.GCUBEProfileManager [GHNConsumer$<anon>,trace:82] GCUBEProfileManager: Trying to update resource with ID=0722bbe0-50f5-11de-aea3-d209846ff30b in 
scope /testing
2009-07-06 16:08:04,586 TRACE scope.GCUBEScopeManagerImpl [GHNConsumer$<anon>,trace:82] GCUBEScopeManagerImpl: Setting scope /testing in Thread[GHNConsumer$<anon>,5,main]
2009-07-06 16:08:04,586 INFO  tasks.ISRegistryServiceUpdaterHandler [GHNConsumer$<anon>,info:78] ISRegistryServiceUpdaterHandler: looking for instances of ISRegistry ServiceHandler
2009-07-06 16:08:04,587 TRACE tasks.ISRegistryServiceUpdaterHandler [GHNConsumer$<anon>,trace:82] ISRegistryServiceUpdaterHandler: Refreshing Registry instances
2009-07-06 16:08:04,588 TRACE tasks.ISRegistryLookup [GHNConsumer$<anon>,trace:82] ISRegistryLookup: Querying the IS for Registry instances
2009-07-06 16:08:05,102 TRACE tasks.ISRegistryServiceUpdaterHandler [GHNConsumer$<anon>,trace:82] ISRegistryServiceUpdaterHandler: Connecting to the IS-Registry instance 
located at http://grid10.4dsoft.hu:8080/wsrf/services/gcube/informationsystem/registry/RegistryFactory...
2009-07-06 16:08:05,244 INFO  contexts.GCUBERemotePortTypeContext$1 [GHNConsumer$<anon>,info:78] : Preparing call to service InformationSystem,IS-Registry in scope /testing 
2009-07-06 16:08:05,592 TRACE impl.GCUBEProfileManager [GHNConsumer$<anon>,trace:82] GCUBEProfileManager: Resource with ID=0722bbe0-50f5-11de-aea3-d209846ff30b successfully updated

Deployer

Installation

The Deployer is a Local Service shipped and installed within the gHN distribution.

gHN Configuration

No specific configuration is needed, but the typical gHN configuration.

Instance Configuration

The service instance does not require any specific configuration. As Local Service, it automatically joins all the gHN scopes.

Verify the Installation

Once the gHN is started, the $GLOBUS_LOCATION/nohup.out file has to report (among the others) the following portType:

gHN started at: http://host:port/wsrf/services/ with the following services:
 
GCUBE SERVICES:
...
[3]: http://host:port/wsrf/services/gcube/common/vremanagement/Deployer
...

Looking at the $GLOBUS_LOCATION/logs/container.fullog, the following messages related to the Deployer initialisation have to be observed:

2009-07-06 16:08:05,538 INFO  contexts.ServiceContext [Deployer-Initialiser,info:78] [0.0s] Deployer: Added scope(s) [/testing]
2009-07-06 16:08:05,538 INFO  contexts.ServiceContext [Deployer-Initialiser,info:78] [0.0s] Deployer: INITIALISING RUNNING INSTANCE
2009-07-06 16:08:05,539 TRACE contexts.ServiceContext [Deployer-Initialiser,trace:82] [0.0010s] Deployer: loading RI profile
2009-07-06 16:08:05,542 INFO  contexts.ServiceContext [Deployer-Initialiser,info:78] [0.0040s] Deployer: Added scope(s) [/testing, /testing/vo1]
2009-07-06 16:08:05,543 INFO  contexts.ServiceContext [Deployer-Initialiser,info:78] [0.0050s] Deployer: managing security with a GCUBESimpleServiceSecurityManager
2009-07-06 16:08:05,543 INFO  contexts.ServiceContext [Deployer-Initialiser,info:78] [0.0050s] Deployer: managing remote persistence with a GCUBERINoPersistenceManager
2009-07-06 16:08:05,544 INFO  contexts.GHNContext [Deployer-Initialiser,info:78] [0.0s] GHNContext: REGISTERED RI OF (VREMANAGEMENT,DEPLOYER)
2009-07-06 16:08:05,544 INFO  impl.ServiceContext [VREModeler-Subscriber,info:78] [0.0s] VREModeler: registering for GHN shutdown events
2009-07-06 16:08:05,545 INFO  impl.ServiceContext [VREModeler-Subscriber,info:78] [0.0s] VREModeler: registering for GHN scope removal events
2009-07-06 16:08:05,545 INFO  contexts.ServiceContext [Deployer-Initialiser,info:78] [0.0070s] Deployer: moved to status INITIALISED
2009-07-06 16:08:05,550 INFO  contexts.ServiceContext [Deployer-Subscriber,info:78] [0.0s] Deployer: registering for GHN shutdown events
2009-07-06 16:08:05,550 INFO  contexts.ServiceContext [Deployer-Subscriber,info:78] [0.0010s] Deployer: registering for GHN scope events as a local service
2009-07-06 16:08:05,551 TRACE impl.Deployer [PortTypeConsumer,trace:82] [0.0s] Deployer: INITIALISING PORTTYPE DEPLOYER

Resource Manager

Installation

The Resource Manager can be installed in two ways:

  • statically, for infrastructure and VO scopes
here the service is deployed on a gHN as any other gCube Service by typing:
gcore-deploy-service <path>/org.gcube.vremanagement.resourcemanager.gar
The command above assumes that the $GLOBUS_LOCATION/bin folder is in your PATH
Then, if the service is configured to use the BrokerService as resourceBrokerClass, two additional libraries have to be installed:
  • org.gcube.vre-management.resourcebroker-serialization.jar
  • org.gcube.vre-management.resourcebroker-stubs.jar
  • dynamically, for VRE scopes
in this case, it is the VREModeler service that takes care of the installation and its settings. Typically, a Resource Manager instance is deployed as first step of the VRE creation process.

gHN Configuration

No specific configuration is needed, but the typical gHN distribution.

Instance Configuration

The Resource Manager is a scope-specific service, meaning that it must join one and only one scope. Therefore, it must be configured properly to behave in the assigned scope. In the case of a dynamically deployed instance, the appropriate configuration is automatically done by the Deployer service.

In the case of a statically deployed instance, its JNDI file ($GLOBUS_LOCATION/etc/org.gcube.vremanagement.resourcemanager/jndi-config.xml) must be configured to join only one scope. In the following example, the instance (startScopes environment variable) 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/vremanagement/ResourceManager/service">
		<environment 
			name="configDir" 
		 	value="@config.dir@" 
		 	type="java.lang.String"
		 	override="false" />
 
		 <environment 
			name="resourceBrokerClass" 
		 	value="org.gcube.vremanagement.resourcemanager.impl.brokerage.ServiceBroker" 
		 	type="java.lang.String"
		 	override="false" />
		 <environment 
                        name="startScopes" 
                        value="/gcube/devsec/CNR-VRE" 
                        type="java.lang.String"
                        override="false" />
 
	 </service>
 
	<service name="gcube/vremanagement/ResourceManager">
 
		<environment 
			name="name" 
		 	value="VREManager" 
		 	type="java.lang.String"
		 	override="false" />
 
		<environment 
				name="RPDName"
				value="VREManagerResourceProperties"
				type="java.lang.String"
				override="false"/>
 
		<resource name="home" type="org.gcube.vremanagement.resourcemanager.impl.state.ResourceManagerHome">				
			<resourceParams>
				<parameter>
					<name>factory</name>
					<value>org.globus.wsrf.jndi.BeanFactory</value>
				</parameter>
				<parameter>
					<name>resourceClass</name>
					<value>org.gcube.vremanagement.resourcemanager.impl.state.InstanceState</value>
				</parameter>																		
			</resourceParams>
 
		</resource>	
 
	</service>	
 
</jndiConfig>

Do note that:

  • resourceBrokerClass is about which broker to use for allocating gCube packages on gHN. There are two available:
    • org.gcube.vremanagement.resourcemanager.impl.brokerage.ServiceBroker which uses the Broker Service
    • org.gcube.vremanagement.resourcemanager.impl.brokerage.InternalBroker which uses an internal broker and requires that the target gHNs are specified in any deployment request

Verify the Installation

Once the gHN is started, the $GLOBUS_LOCATION/nohup.out file has to report (among the others) the following portType:

gHN started at: http://host:port/wsrf/services/ with the following services:
 
GCUBE SERVICES:
...
[5]: http://host:port/wsrf/services/gcube/vremanagement/ResourceManager
...

Resource Broker

Installation

Under the assumption that the $GLOBUS_LOCATION is properly setup and the respective bin folder your PATH, the installation of ResourceBroker service is done by executing the following command:

gcore-deploy-service <path>/org.gcube.vremanagement.resourcebroker.gar
Required software

In order to properly work, the following libraries are required and must be present in the $GLOBUS_LOCATION/lib location:

  • org.gcube.vre-management.resourcebroker-serialization.jar
  • org.gcube.vre-management.resourcebroker-stubs.jar

gHN Configuration

The scope in which the service should be bound must be specified in the:

$GLOBUS_LOCATION</em>/etc/org.gcube.vremanagement.resourcebroker/jndi-config.xml

Here you'll find the following xml block (the scope is specified by the value attribute):

<!-- SPECIFY YOUR scope HERE -->
  <environment
   name="startScopes"
   value="/gcube"
   type="java.lang.String"
   override="false" />
</pre>

Instance Configuration

The instance configuration parameters are specified in the file:

$GLOBUS_LOCATION</em>/etc/org.gcube.vremanagement.resourcebroker/broker.properties

For a detailed explanation on configuring the ResourceBroker instance parameter read here.

Verify the Installation

Once the gHN is started, the $GLOBUS_LOCATION/nohup.out file has to report (among the others) the following portType:

gHN started at: http://host:port/wsrf/services/ with the following services:

GCUBE SERVICES:
...
[4]: http://host:port/wsrf/services/gcube/vremanagement/ResourceBroker
...


Look at the $GLOBUS_LOCATION/logs/container.fulllog, then follow messages related to the ResourceBroker with the prefix [BMM].

Software Gateway

Installation

The Software Gateway can be deployed on a gHN as any other gCube Service by typing:

gcore-deploy-service <path>/org.gcube.vremanagement.softwarerepository.gar

The command above assumes that the $GLOBUS_LOCATION/bin folder is in your PATH.

In addition, it requires that the following software are available in the $GLOBUS_LOCATION/lib folder:

All of them can be downloaded from Software Distribution Site, while the installation instructions are available in their websites.

Maven 3

The Software Gateway service is maven based, so you have maven installed on the gCube node. More precisely you need a Maven 3.0.4

Maven installation instruction for Unix-based Operating Systems

These instructions assume you chose /usr/local/apache-maven. The subdirectory apache-maven-3.0.4 will be created from the archive.

  • In a command terminal, add the M2_HOME environment variable, e.g. export M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4.
  • Add the M2 environment variable, e.g. export M2=$M2_HOME/bin.
  • Optional: Add the MAVEN_OPTS environment variable to specify JVM properties, e.g. export MAVEN_OPTS="-Xms256m -Xmx512m". This environment variable can be used to supply extra options to Maven.
  • Add M2 environment variable to your path, e.g. export PATH=$M2:$PATH.
  • Make sure that JAVA_HOME is set to the location of your JDK, e.g. export JAVA_HOME=/usr/java/jdk1.5.0_02 and that $JAVA_HOME/bin is in your PATH environment variable.
  • Run mvn --version to verify that it is correctly installed.


Migrating from version 1.0.0 to version 1.1.0 (or higher)

The underlying DB Schema has been changed from version 1.0.0 to version 1.1.0 of the Software Repository. In order to migrate between the two, it is needed to log on in the local DB instance and run the following queries:

ALTER TABLE Services ADD name VARCHAR(128);

ALTER TABLE Services ADD class VARCHAR(128);

ALTER TABLE Services ADD version VARCHAR(30);

CREATE TABLE Plugins (
	pluginServiceID		VARCHAR(128) NOT NULL,
	groupPluginServiceID 	VARCHAR(512) NOT NULL,
	groupTargetServiceID	VARCHAR(512) NOT NULL,			
	PRIMARY KEY (pluginServiceID,groupPluginServiceID),
	FOREIGN KEY (pluginServiceID) REFERENCES Services(serviceID)			
);


SR Cleaning

In order to clean the Software Repository ( the operation is needed in case of major upgrades ) the following actions need to be performed:

  • stop the gCore container;
  • remove $HOME/.gcore/persisted/<ghn_name>/SoftwareRepository/jetty/webapps/maven folder content;
  • remove $HOME/.gcore/persisted/<ghn_name>/SoftwareRepository/dbFolder folder content;
  • remove $HOME/.gcore/persisted/<ghn_name>/SoftwareRepository/maven folder content except for setting.xml file;
  • remove $HOME/.gcore/persisted/<ghn_name>/SoftwareRepository/pending folder content;
  • restart the gCore container.

gHN Configuration

Besides the normal gHN configuration, an additional TCP port has to be open for the internal HTTP service used by the Software Repository instance. This port must be then reported as value of the httpServerPort configuration parameters (see next paragraph).

Instance Configuration

The Software Repository can join in multiple scope, so no specific configuration are needed. However it has a lot start-up configuration that the administrator can change as he likes in the in the JNDI file ($GLOBUS_LOCATION/etc/org.gcube.vremanagement.softwarerepository/jndi-config.xml). The configurable parameters are:

               <!-- Allow the submission from ETICS -->
		<environment
			name="eticsSubmission" 
			value="true" 
			type="java.lang.String"
			override="false" />
 
		<!-- Javadoc check -->
		<!-- Approve all pending packages before change this -->
		<environment
			name="javadocCheck" 
			value="true" 
			type="java.lang.String"
			override="false" />
 
		<!-- Publish service profile on IS -->
		<environment
			name="publishServiceProfile" 
			value="false" 
			type="java.lang.String"
			override="false" />
 
		<!-- Check for TXT file with the information of source code link -->
		<environment
			name="checkSourceLink" 
			value="true" 
			type="java.lang.String"
			override="false" />
 
 
		<!-- Check extra documentation -->
		<environment
			name="extraDocumentation" 
			value="false" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="checkTestSuite" 
			value="false" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="bannedVersion" 
			value="0.00.00" 
			type="java.lang.String"
			override="false" />
 
		<environment	
			name="acceptedDependencyVersion" 
			value="\s*(((\(|\[)\s*\d{1,2}.\d{1,2}.\d{1,2}\s*,\s*\d{1,2}.\d{1,2}.\d{1,2}\s*(\)|\]))|(\d{1,2}.\d{1,2}.\d{1,2})|(\[\s*\d{1,2}.\d{1,2}.\d{1,2}\s*\]))\s*"
			type="java.lang.String"
			override="false" />
 
 
		<environment
			name="xpathsVersionCheck" 
			value="/Resource/Profile/Packages/Main/Version,/Resource/Profile/Packages/Main/Dependencies/Dependency/Version,/Resource/Profile/Packages/Software/Version" 
			type="java.lang.String"
			override="false" />	
 
 
		<!-- HTTP server information -->
		<environment
			name="httpServerBasePath" 
			value="jetty/webapps" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="httpServerPort" 
			value="6900" 
			type="java.lang.String"
			override="false" />
 
 
		<!-- All parameter below are read at service startup time. You need to restart the container to apply changes -->
 
		<environment 
			name="configDir" 
	 		value="@config.dir@" 
	 		type="java.lang.String"
	 		override="false" />
 
		<environment 
			name="profile" 
			value="profile.xml" 
			type="java.lang.String"
			override="false" />
 
 
		<!--    HSQL DB parameters and queries  -->
		<environment 
			name="username" 
			value="sa" 
			type="java.lang.String"
			override="false" />
 
		<environment 
			name="password" 
			value="" 
			type="java.lang.String"
			override="false" />
 
		<environment 
			name="dbFilename" 
			value="db" 
			type="java.lang.String"
			override="false" />
 
		<environment 
			name="queriesFile" 
			value="dbQuery.xml" 
			type="java.lang.String"
			override="false" />
		<!-- END HSQL DB parameters and queries -->
 
 
		<!-- Temporary directory for store operation -->
		<environment
			name="tmpDir" 
			value="tmp" 
			type="java.lang.String"
			override="false" />
 
		<!-- Directory where the pending packages are stored -->
		<environment
			name="pendingDir" 
			value="pending" 
			type="java.lang.String"
			override="false" />
 
		<!--   Parameter to publish service profile on IS  -->
		<environment
			name="publisherClass" 
			value="org.gcube.vremanagement.softwarerepository.publisher.GCUBEPublisher" 
			type="java.lang.String"
			override="false" />
		<!-- END Parameter to publish service profile on IS -->
 
 
		<environment
			name="reportGeneratorClass" 
			value="org.gcube.vremanagement.softwarerepository.report.impl.kxml.generator.GCUBEKXMLReportGenerator"
			type="java.lang.String"
			override="false" />
 
		<!--
		<environment
			name="reportGeneratorClass" 
			value="org.gcube.vremanagement.softwarerepository.report.impl.jaxb.generator.GCUBEJAXBReportGenerator"
			type="java.lang.String"
			override="false" />
		-->
 
		<environment
			name="groupIDManagerClass" 
			value="org.gcube.vremanagement.softwarerepository.softwarearchive.operations.impl.GCUBEGroupIDManager"
			type="java.lang.String"
			override="false" />
 
		<environment
			name="validatorClass" 
			value="org.gcube.vremanagement.softwarerepository.softwarearchive.operations.impl.GCUBEValidator" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="approverClass" 
			value="org.gcube.vremanagement.softwarerepository.softwarearchive.operations.impl.GCUBEApprover" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="artifactClass" 
			value="org.gcube.vremanagement.softwarerepository.repository.impl.maven.MavenArtifact" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="dependenciesSolverClass" 
			value="org.gcube.vremanagement.softwarerepository.repository.impl.maven.MavenDependenciesSolver" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="webServerClass" 
			value="org.gcube.vremanagement.softwarerepository.webserver.impl.jetty.JettyWebServer" 
			type="java.lang.String"
			override="false" />	
 
 
 
 
		<!--   Maven local service parameter   -->
		<environment
			name="mavenDir" 
			value="maven" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="mavenSettingsFileName" 
			value="settings.xml" 
			type="java.lang.String"
			override="false" />
		<!-- END Maven local service parameter -->
 
 
		<!-- This directory, if not exist, must be created before service start -->
		<!-- Maven HTTP relative directory. If you want to change this directory
			 when the SR has installed some artifact you have to create a 
			 symbolic link or copy the whole content  the new one-->
		<environment
			name="mavenRelativeDir" 
			value="maven" 
			type="java.lang.String"
			override="false" />
 
		<!-- This directory, if not exist, must be created before service start -->
		<!-- Report HTTP relative directory. If you want to change this directory
			 when the SR has already worked you have to create a 
			 symbolic link or copy the whole content to the new one -->
		<environment
			name="reportRelativeDir" 
			value="report" 
			type="java.lang.String"
			override="false" />
 
		<!--   XSLT to be applied to report XML files  -->
		<!-- XSLT service directory -->
		<environment
			name="xsltDir" 
			value="xslt" 
			type="java.lang.String"
			override="false" />
		<!-- XSLT for index.xml -->
		<environment
			name="indexXSLTfilename" 
			value="index.xslt" 
			type="java.lang.String"
			override="false" />
		<!-- CSS for index.xml -->
		<environment
			name="indexCSSfilename" 
			value="styles.css" 
			type="java.lang.String"
			override="false" />
		<!-- XSLT for single service archive report-->
		<environment
			name="reportXSLTfilename" 
			value="report.xslt" 
			type="java.lang.String"
			override="false" />
		<!-- END XSLT to be applied to report XML files -->
 
 
		<!-- Javadoc check -->
		<environment
			name="relativeJavadocPath" 
			value="doc/api" 
			type="java.lang.String"
			override="false" />
		<!-- END Documentation check -->

Verify the Installation

Once the gHN is started, the $GLOBUS_LOCATION/nohup.out file has to report (among the others) the following portType:

gHN started at: http://host:port/wsrf/services/ with the following services:

GCUBE SERVICES:
...
[3]: http://host:port/wsrf/services/gcube/vremanagement/SoftwareRepository
...


Looking at the $GLOBUS_LOCATION/logs/container.fulllog, the following messages related to the SoftwareRepository initialisation have to be observed:

2009-07-14 22:17:22,457 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0s] SoftwareRepository: Added scope(s) [/d4science.research-infrastructures.eu]
2009-07-14 22:17:22,458 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0010s] SoftwareRepository: INITIALISING RUNNING INSTANCE
2009-07-14 22:17:22,460 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0030s] SoftwareRepository: starting in scopes [/d4science.research-infrastructures.eu]
2009-07-14 22:17:22,460 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0030s] SoftwareRepository: Added scope(s) [/d4science.research-infrastructures.eu]
2009-07-14 22:17:22,461 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0040s] SoftwareRepository: managing security with a GCUBEServiceSecurityManagerImpl
2009-07-14 22:17:22,461 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0040s] SoftwareRepository: managing remote persistence with a GCUBERINoPersistenceManager
2009-07-14 22:17:22,462 INFO  contexts.GHNContext [SoftwareRepository-Initialiser,info:78] [0.0s] GHNContext: REGISTERED RI OF (VREMANAGEMENT,SOFTWAREREPOSITORY)
2009-07-14 22:17:22,539 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.082s] SoftwareRepository: banned version: 0.00.00
2009-07-14 22:17:22,540 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.083s] SoftwareRepository: regular expression for dependency version is: \s*(((\(|\[)\s*\d{1,2}.\d{1,2}.\d{1,2}\s*,\s*\d{1,2}.\d{1,2}.\d{1,2}\s*(\)|\]))|(\d{1,2}.\d{1,2}.\d{1,2}))\s*
2009-07-14 22:17:22,637 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.18s] SoftwareRepository: DB filename = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/db
2009-07-14 22:17:22,639 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.182s] SoftwareRepository: Queries file = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/dbQuery.xml
2009-07-14 22:17:22,639 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.182s] SoftwareRepository: Tmp directory = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/tmp
2009-07-14 22:17:22,640 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.183s] SoftwareRepository: Pending directory = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/pending
2009-07-14 22:17:22,640 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.183s] SoftwareRepository: Maven directory = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/maven
2009-07-14 22:17:22,640 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.183s] SoftwareRepository: Maven settings file path = settings.xml
2009-07-14 22:17:22,641 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.184s] SoftwareRepository: HTTP Server Base path = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/jetty/webapps
2009-07-14 22:17:22,642 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.185s] SoftwareRepository: HTTP Server port = 6900
2009-07-14 22:17:22,642 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.185s] SoftwareRepository: HTTP relative Maven directory = maven
2009-07-14 22:17:22,642 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.185s] SoftwareRepository: HTTP relative Report directory = report
2009-07-14 22:17:22,643 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.186s] SoftwareRepository: XSLT directory = /home/gcube1/gCore/etc/org.gcube.vremanagement.softwarerepository/xslt
2009-07-14 22:17:22,646 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.189s] SoftwareRepository: Documentation will be controlled in doc/api on each package
2009-07-14 22:17:22,646 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.189s] SoftwareRepository: On each package the file containing link with the source code should be svnpath.txt
...

VREModeler

Installation

The VREModeler is typically statically deployed by typing:

gcore-deploy-service <path>/org.gcube.vremanagement.vremodeler.gar

The command above assumes that the $GLOBUS_LOCATION/bin folder is in your PATH. In addition, the service requires that the following software are available in the $GLOBUS_LOCATION/lib folder:

  • hsqldb 1.8.0 (or higher)
  • org.gcube.vremanagement.vremodeler.stubs.jar

Moreover, the service can be also dynamically deployed by using the Resource Manager instance in the target scope. In this case, all its dependencies are also automatically deployed too.

gHN Configuration

No specific configuration is needed, but the typical configuration.

Instance Configuration

The service instance does not require any specific configuration.

Verify the Installation

Once the gHN is started, the $GLOBUS_LOCATION/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:
...
[5]: http://host:port/wsrf/services/gcube/vremanagement/vremodeler/ModelerFactoryService
[6]: http://host:port/wsrf/services/gcube/vremanagement/vremodeler/ModelerService

...

Looking at the $GLOBUS_LOCATION/logs/container.fulllog, the following messages related to the VREModeler initialisation have to be observed:

2009-10-02 14:37:54,604 INFO  impl.ServiceContext [VREModeler-Initialiser,info:78] [0.0030s] VREModeler: INITIALISING RUNNING INSTANCE
2009-10-02 14:37:54,617 INFO  impl.ServiceContext [VREModeler-Initialiser,info:78] [0.016s] VREModeler: Added scope(s) [/gcube, /gcube/devsec]
2009-10-02 14:37:54,621 INFO  impl.ServiceContext [VREModeler-Initialiser,info:78] [0.02s] VREModeler: managing security with a GCUBEServiceSecurityManagerImpl
2009-10-02 14:37:54,622 INFO  impl.ServiceContext [VREModeler-Initialiser,info:78] [0.021s] VREModeler: managing remote persistence with a GCUBERINoPersistenceManager
2009-10-02 14:37:54,687 INFO  impl.ServiceContext [VREModeler-Initialiser,info:78] [0.086s] VREModeler: moved to status INITIALISED
2009-10-02 14:37:54,736 INFO  impl.ServiceContext [VREModeler-Subscriber,info:78] [0.0s] VREModeler: registering for GHN shutdown events
2009-10-02 14:37:54,737 INFO  impl.ServiceContext [VREModeler-Subscriber,info:78] [0.0010s] VREModeler: registering for GHN scope removal events
2009-10-02 14:37:54,919 INFO  impl.ModelerHome [HomeConsumer,info:78] [0.0030s] VREModeler: managing resources in SOFTPERSISTENT mode
2009-10-02 14:37:55,020 INFO  impl.ModelerHome [HomeConsumer,info:78] [0.104s] VREModeler: activated sweeper to run every 60 seconds
2009-10-02 14:37:57,922 INFO  impl.ServiceContext [VREModeler-Stager,info:78] [0.0s] VREModeler: ready event invoked on VREModeler
2009-10-02 14:37:57,929 INFO  db.IStoDBUtil [VREModeler-Stager,info:78] IStoDBUtil: Starting initialization!!
...
2009-10-02 14:43:42,472 INFO  impl.ServiceContext [VREModeler-Stager,info:78] [30.529s] VREModeler: moved to status READY

During the initialization phase, the instance looks for some resources that are not yet available (and it warns about these) and that are therefore created.

Requirements

The VREDefinitionPortlet (the VREModeler's GUI) allows the VRE Designer to select a set of functionalities to be included in the new VRE. At VREModeler level, a functionality is mapped on a set of services and portlets that globally deliver the specific operations. These mappings are defined in a Generic Resource (named FuctionalitiesResource) published on the IS.

This Generic Resource must be defined as follow:

<Resource>
  <ID>df899630-82ae-11de-a6cc-f15c9cf886be</ID>
  <Type>GenericResource</Type>
  <Scopes>
  </Scopes>
  <Profile>
     <SecondaryType>VREModelerResource</SecondaryType>
     <Name>FuctionalitiesResource</Name>
     <Description>
        A Generic resource containing the functionalities requested to a VRE at design time
     </Description>
     <Body>
         <MainFunctionalities>
             <MainFunctionality>
               <Name>Access Functions</Name>
               <Description>
                    This class of functions characterises the facilities that can be activated in the Virtual Research Environment 
                    to support users in requesting, locating, and accessing the Virtual Research Environment content.
               </Description>
               <Functionalities>
                  <Functionality>
                     <Name>Search (Browse, Simple, and Combined)</Name>
                     <Description>
                         By selecting this function VRE users will be provided with facilities supporting the discovery of Information Objects by issuing keyword based 
                         queries. This is the simplest modality for discovering Information Objects constituting the VRE Information Space. In addition to the specification 
                    of the keywords characterising the Information Objects the user is interested in, this function permits to restrict the Information Space in which to search 
                    by  specifying the set of Collections against which the query will be evaluated.
                     </Description>
                     <Services>
                       <Service>
                          <ServiceName>FilterXPathOperator</ServiceName>
                          <ServiceClass>Search</ServiceClass>
                       </Service>
                       <!-- ...other services -->
                     </Services>
                     <Portlets>
                       <Portlet>userprofileeditingportlet#UserProfileEditingPortlet</Portlet>
                       <Portlet>layoutcreator#LayoutcreatorPortlet</Portlet>
                       <!--  ...other portlets -->
                     </Portlets>
                 </Functionality>  
                     <!-- ...other functionalities -->
              </Functionalities>
           </MainFunctionality>
               <!-- ...other main functionalities -->
        </MainFunctionalities>
      </Body>
   </Profile>
</Resource>