Difference between revisions of "Resource Management Installation"

From Gcube Wiki
Jump to: navigation, search
(Verify the Installation)
 
(95 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
[[Category:Administrator's Guide]]
 +
{|align=right
 +
||__TOC__
 +
|}
 +
=== Preliminary Note ===
 +
 +
All the software cited in this section be downloaded from the [https://www.gcube-system.org/index.php?option=com_content&view=article&id=290&Itemid=48 gCube Software Distribution Site], unless otherwise reported.
 +
 
=== gHNManager ===
 
=== gHNManager ===
  
 
==== Installation ====
 
==== Installation ====
The gHNManager is a Local Service shipped and installed within the  [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Installation gHN distribution].
+
The gHNManager is a Local Service shipped and installed within the  [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide gHN distribution].
  
 
==== gHN Configuration ====
 
==== gHN Configuration ====
No specific configuration is needed, but the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Configuration usual gHN's one]
+
No specific configuration is needed, but the the typical [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Configuration gHN configuration].
  
 
==== Instance Configuration ====
 
==== Instance Configuration ====
Line 11: Line 19:
  
 
==== Verify the Installation ====
 
==== Verify the Installation ====
Once the gHN is [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
+
Once the gHN is [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
  
 
<pre>
 
<pre>
Line 59: Line 67:
  
 
==== Installation ====
 
==== Installation ====
The Deployer is a Local Service shipped and installed within the  [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Installation gHN distribution].
+
The Deployer is a Local Service shipped and installed within the  [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide gHN distribution].
  
 
==== gHN Configuration ====
 
==== gHN Configuration ====
No specific configuration is needed, but the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Configuration usual gHN's one].
+
No specific configuration is needed, but the typical [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Configuration gHN configuration].
  
 
==== Instance Configuration ====
 
==== Instance Configuration ====
Line 68: Line 76:
  
 
==== Verify the Installation ====
 
==== Verify the Installation ====
Once the gHN is [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
+
Once the gHN is [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
  
 
<source lang="text">
 
<source lang="text">
Line 96: Line 104:
 
</source>
 
</source>
  
=== VREManager ===
+
=== Resource Manager ===
  
 
==== Installation ====
 
==== Installation ====
The VREManager is typically installed in two ways:
+
The Resource Manager can be installed in two ways:
  
 
* ''statically'', for infrastructure and VO scopes
 
* ''statically'', for infrastructure and VO scopes
 
: here the service is deployed on a gHN as any other gCube Service by typing:
 
: here the service is deployed on a gHN as any other gCube Service by typing:
 
<pre>
 
<pre>
gcore-deploy-service <path>/org.gcube.vremanagement.vremanager.gar
+
gcore-deploy-service <path>/resource-manager-service-x.x.x.gar ( where x.x.x is the version of the service to deploy)
 
</pre>
 
</pre>
  
 
:The command above assumes that the <em>$GLOBUS_LOCATION/bin</em> folder is in your PATH
 
:The command above assumes that the <em>$GLOBUS_LOCATION/bin</em> 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
 
* ''dynamically'', for VRE scopes
: in this case, it is the [[VRE_Management_Installation#VREModeler|VREModeler]] service that takes care of the installation and its settings. Typically, the VREManager is installed as first step of the VRE creation process.  
+
: in this case, it is the [[VRE_Management_Installation#VREModeler|VREModeler]] service that takes care of the installation and its settings.
  
 
==== gHN Configuration ====
 
==== gHN Configuration ====
  
No specific configuration is needed, but the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Configuration usual gHN's one].
+
No specific configuration is needed, but the typical [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide gHN distribution].
  
 
==== Instance Configuration ====
 
==== Instance Configuration ====
The VREManager 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 [[VRE_Management_Installation#Deployer|Deployer]] service.
+
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 [[VRE_Management_Installation#Deployer|Deployer]] service.
  
In the case of a statically deployed instance, its JNDI file (<em>$GLOBUS_LOCATION/etc/org.gcube.vremanagement.vremanager/jndi-config.xml</em>) must be configured to join only one scope. In the following example, the instance (<em>startScopes</em> environment variable) is configured to join the scope named <em>/testing/vo1</em>:
+
In the case of a statically deployed instance, its JNDI file (<em>$GLOBUS_LOCATION/etc/org.gcube.vremanagement.resourcemanager/jndi-config.xml</em>) must be configured to join only one scope. In the following example, the instance (<em>startScopes</em> environment variable) is configured to join the scope named <em>/testing/vo1</em>:
 
<source lang="xml">
 
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 
<jndiConfig xmlns="http://wsrf.globus.org/jndi/config">
 
<jndiConfig xmlns="http://wsrf.globus.org/jndi/config">
    <service name="gcube/vremanagement/VREManager/service">
 
        <environment
 
              name="configDir"
 
              value="etc/org.gcube.vremanagement.vremanager"
 
              type="java.lang.String"
 
              override="false" />
 
  
        <environment
+
<service name="gcube/vremanagement/ResourceManager/service">
              name="securityManagerClass"
+
<environment  
              value="org.gcube.common.core.security.GCUBESimpleServiceSecurityManager"
+
name="configDir"  
              type="java.lang.String"
+
value="@config.dir@"
              override="false" />
+
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>
 +
</source>
  
        <environment
+
Do note that:
              name="startScopes"
+
* ''resourceBrokerClass'' is about which broker to use for allocating gCube packages on gHN. There are two available:
              value="/testing/vo1"
+
** ''org.gcube.vremanagement.resourcemanager.impl.brokerage.ServiceBroker'' which uses the Broker Service
              type="java.lang.String"
+
** ''org.gcube.vremanagement.resourcemanager.impl.brokerage.InternalBroker'' which uses an internal broker and requires that the target gHNs are specified in any deployment request
              override="false" />
+
      </service>
+
  
      <service name="gcube/vremanagement/VREManager">
+
==== Verify the Installation ====
 +
Once the gHN is [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
  
          <environment
+
<source lang="text">
              name="name"
+
gHN started at: http://host:port/wsrf/services/ with the following services:
              value="VREManager"
+
              type="java.lang.String"
+
              override="false" />
+
  
          <environment
+
GCUBE SERVICES:
              name="RPDName"
+
...
              value="VREManagerResourceProperties"
+
[1]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/administration
              type="java.lang.String"
+
[2]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/binder
              override="false"/>
+
[3]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/reporting
 +
[4]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/scopecontroller
 +
...
 +
</source>
  
          <resource name="home" type="org.gcube.vremanagement.vremanager.impl.state.VREManagerHome">
+
=== Resource Broker ===
            <resourceParams>
+
                <parameter>
+
                    <name>factory</name>
+
                    <value>org.globus.wsrf.jndi.BeanFactory</value>
+
                </parameter>
+
                <parameter>
+
                    <name>resourceClass</name>
+
                    <value>org.gcube.vremanagement.vremanager.impl.state.VREResource</value>
+
                </parameter>
+
              </resourceParams>
+
  
          </resource>
+
==== Installation ====
    </service>
+
</jndiConfig>
+
  
 +
Under the assumption that the <em>$GLOBUS_LOCATION</em> is properly setup and the respective bin folder your PATH,
 +
the installation of ResourceBroker service is done by executing the following command:
 +
<pre>
 +
gcore-deploy-service <path>/org.gcube.vremanagement.resourcebroker.gar
 +
</pre>
 +
 +
===== Required software =====
 +
In order to properly work, the following libraries are required and must be present in the <em>$GLOBUS_LOCATION/lib</em> 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:
 +
 +
<pre>
 +
$GLOBUS_LOCATION</em>/etc/org.gcube.vremanagement.resourcebroker/jndi-config.xml
 +
</pre>
 +
 +
Here you'll find the following xml block (the scope is specified by the '''value''' attribute):
 +
<div style="border: 1px dashed #2F6FAB; background-color: #F9F9F9; color: black; padding:0.5em; margin-top:5px; margin-bottom:5px; font-family: monospace; font-style: normal; font-size-adjust: none;">
 +
<source lang="xml" enclose="none" title="PlanRequest.xml" highlight="4">
 +
<!-- SPECIFY YOUR scope HERE -->
 +
  <environment
 +
    name="startScopes"
 +
    value="/gcube"
 +
    type="java.lang.String"
 +
    override="false" />
 +
</pre>
 
</source>
 
</source>
[TBC]
+
</div>
 +
 
 +
==== Instance Configuration ====
 +
 
 +
The instance configuration parameters are specified in the file:
 +
<pre>
 +
$GLOBUS_LOCATION</em>/etc/org.gcube.vremanagement.resourcebroker/broker.properties
 +
</pre>
 +
 
 +
For a detailed explanation on configuring the ResourceBroker instance parameter read [https://gcube.wiki.gcube-system.org/gcube/index.php/Resource_Broker#Configuration here].
  
 
==== Verify the Installation ====
 
==== Verify the Installation ====
Once the gHN is [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
+
Once the gHN is [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
  
<source lang="text">
+
<pre>
 
gHN started at: http://host:port/wsrf/services/ with the following services:
 
gHN started at: http://host:port/wsrf/services/ with the following services:
  
 
GCUBE SERVICES:
 
GCUBE SERVICES:
 
...
 
...
[5]: http://host:port/wsrf/services/gcube/vremanagement/VREManager
+
[4]: http://host:port/wsrf/services/gcube/vremanagement/ResourceBroker
 
...
 
...
</source>
+
</pre>
  
Looking at the <em>$GLOBUS_LOCATION/logs/container.fullog</em>, the following messages related to the VREManager initialisation have to be observed:
 
<source lang="text">
 
2009-07-14 22:17:19,986 INFO  resultsetservice.ServiceContext [ResultSetService-Initialiser,info:78] [1.141s] ResultSetService: moved to status INITIALISED
 
2009-07-14 22:17:20,421 INFO  contexts.ServiceContext [VREManager-Initialiser,info:78] [0.0s] VREManager: Added scope(s) [/d4science.research-infrastructures.eu]
 
2009-07-14 22:17:20,422 INFO  contexts.ServiceContext [VREManager-Initialiser,info:78] [0.0010s] VREManager: INITIALISING RUNNING INSTANCE
 
2009-07-14 22:17:20,424 INFO  contexts.ServiceContext [VREManager-Initialiser,info:78] [0.0030s] VREManager: starting in scopes [/d4science.research-infrastructures.eu]
 
2009-07-14 22:17:20,424 INFO  contexts.ServiceContext [VREManager-Initialiser,info:78] [0.0030s] VREManager: Added scope(s) [/d4science.research-infrastructures.eu]
 
2009-07-14 22:17:20,425 INFO  contexts.ServiceContext [VREManager-Initialiser,info:78] [0.0040s] VREManager: managing security with a GCUBESimpleServiceSecurityManager
 
2009-07-14 22:17:20,425 INFO  contexts.ServiceContext [VREManager-Initialiser,info:78] [0.0040s] VREManager: managing remote persistence with a GCUBERINoPersistenceManager
 
2009-07-14 22:17:20,426 INFO  contexts.GHNContext [VREManager-Initialiser,info:78] [0.0s] GHNContext: REGISTERED RI OF (VREMANAGEMENT,VREMANAGER)
 
2009-07-14 22:17:21,309 TRACE impl.VREManager [PortTypeConsumer,trace:82] [0.0s] VREManager: INITIALISING PORTTYPE VREMANAGER
 
2009-07-14 22:17:21,322 TRACE state.VREManagerHome [HomeConsumer,trace:82] [0.0s] VREManager: INITIALISING VREMANAGERHOME
 
2009-07-14 22:17:21,322 TRACE persistence.GCUBENoPersistenceDelegate [HomeConsumer,trace:82] GCUBENoPersistenceDelegate: initialising GCUBENoPersistenceDelegate
 
2009-07-14 22:17:21,323 INFO  state.VREManagerHome [HomeConsumer,info:78] [0.0010s] VREManager: managing resources in TRANSIENT mode
 
2009-07-14 22:17:21,326 INFO  state.VREManagerHome [HomeConsumer,info:78] [0.0040s] VREManager: activated sweeper to run every 60 seconds
 
  
</source>
+
Look at the $GLOBUS_LOCATION/logs/container.fulllog, then follow messages related to the ResourceBroker with the prefix <em>[BMM]</em>.
  
=== Software Repository ===
+
=== Software Gateway ===
  
 
==== Installation ====
 
==== Installation ====
  
The Software Repository can be deployed on a gHN as any other gCube Service by typing:
+
The Software Gateway can be deployed on a gHN as any other gCube Service by typing:
 
<pre>
 
<pre>
gcore-deploy-service <path>/org.gcube.vremanagement.softwarerepository.gar
+
gcore-deploy-service <path>/softwaregateway-service-x.x.x.gar ( where x.x.x is the version of the service to deploy)
 
</pre>
 
</pre>
  
Line 218: Line 280:
 
In addition, it requires that the following software are available in the <em>$GLOBUS_LOCATION/lib</em> folder:
 
In addition, it requires that the following software are available in the <em>$GLOBUS_LOCATION/lib</em> folder:
  
* [http://hsqldb.org/ hsqldb 1.8.0] (or higher)
+
* [http://www.java2s.com/Code/Jar/a/Downloadaetherapi111jar.htm aether-api 1.11]
* [http://commons.apache.org/compress/ commons-compress 1.00]
+
* [http://www.java2s.com/Code/Jar/a/Downloadaetherimpl111jar.htm aether-impl 1.11]
* mavencustom 1.00.01
+
* [http://www.java2s.com/Code/Jar/a/Downloadaetherspi111jar.htm aether-spi 1.11]
* [http://www.mortbay.org/jetty/ jetty 7.0] (or higher)
+
* [http://www.java2s.com/Code/Jar/a/Downloadaetherutil111jar.htm aether-util 1.11]
* [http://maven.apache.org/ maven-2.0.8] (or higher)
+
* [http://www.java2s.com/Code/JarDownload/aether/aether-connector-wagon-1.7.jar.zip aether-connector-wagon-1.7.jar]
 +
* [http://commons.apache.org/codec/ commons-codec 1.2]
 +
* [http://www.java2s.com/Code/Jar/c/Downloadcommonscompress20050911jar.htm commons-compress 20050911]
 +
* [http://www.java2s.com/Code/Jar/c/Downloadcommonshttpclient301jar.htm commons-httpclient 3.0.1]
 +
* [http://en.sourceforge.jp/projects/sfnet_ehcache/releases/ ehcache-core 2.5.1]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenaetherprovider303jar.htm maven-aether-provider 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenartifact303jar.htm maven-artifact 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavencompat303jar.htm maven-compat 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavencore303jar.htm maven-core 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenembedder303jar.htm maven-embedder 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenmodel303jar.htm maven-model 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenmodelbuilder303jar.htm maven-model-builder 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenpluginapi303jar.htm maven-plugin-api 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavenrepositorymetadata303jar.htm maven-repository-metadata 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavensettingsbuilder303jar.htm maven-settings 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/m/Downloadmavensettingsbuilder303jar.htm maven-settings-builder 3.0.3]
 +
* [http://www.java2s.com/Code/Jar/p/Downloadplexuscipher14sourcesjar.htm plexus-cipher 1.4]
 +
* [http://www.java2s.com/Code/Jar/p/Downloadplexusclassworlds24jar.htm plexus-classworlds 2.4]
 +
* [http://www.java2s.com/Code/Jar/p/Downloadplexuscomponentannotations155jar.htm plexus-component-annotations 1.5.5]
 +
* [http://www.java2s.com/Code/Jar/p/Downloadplexusinterpolation114jar.htm plexus-interpolation 1.14]
 +
* [http://www.java2s.com/Code/Jar/p/Downloadplexussecdispatcher13sourcesjar.htm plexus-sec-dispatcher 1.3]
 +
* [http://www.java2s.com/Code/Jar/p/Downloadplexusutils206jar.htm plexus-utils-2.0.6]
 +
* [http://grepcode.com/snapshot/repo1.maven.org/maven2/org.sonatype.sisu/sisu-guice/2.9.4 sisu-guice 2.9.4-no_aop]
 +
* [http://www.findthatjar.com/search-26920028-hZIP/winrar-winzip-download-sisu-inject-bean-2.1.1.jar.htm sisu-inject-bean 2.1.1]
 +
* [http://www.findthatjar.com/search-26920029-hZIP/winrar-winzip-download-sisu-inject-plexus-2.1.1.jar.htm sisu-inject-plexus 2.1.1]
 +
* [http://grepcode.com/snapshot/repo1.maven.org/maven2/org.slf4j/slf4j-api/1.6.4 slf4j-api 1.6.4]
 +
* [http://www.java2s.com/Code/JarDownload/wagon/wagon-file-1.0-beta-7.jar.zip wagon-file-1.0-beta-7.jar]
 +
* [http://www.java2s.com/Code/JarDownload/wagon/wagon-provider-api-1.0-beta-7.jar.zip wagon-provider-api 1.0-beta-7]
 +
* [http://www.java2s.com/Code/JarDownload/wagon/wagon-http-lightweight-1.0-beta-7.jar.zip wagon-http-lightweight-1.0-beta-7.jar]
 +
* [http://www.java2s.com/Code/JarDownload/jsch/jsch-0.1.38.jar.zip jsch-0.1.38.jar]
 +
* [http://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util/7.0.0.pre5/jetty-util-7.0.0.pre5.jar jetty-util-7.0.0.pre5.jar]
 +
* [http://repo1.maven.org/maven2/org/mortbay/jetty/jetty/7.0.0.pre5/jetty-7.0.0.pre5.jar jetty-7.0.0.pre5.jar]
 +
* maven 3.0.X
 +
 
 +
 
 +
===== Maven 3 =====
 +
 
 +
The Software Gateway service relies on Maven 3. These are the installation instructions for Unix-based Operating Systems:
 +
 
 +
* Extract the distribution archive, i.e. apache-maven-3.0.4-bin.tar.gz to the directory you wish to install Maven 3.0.4. You can be found the archive at this link: http://www.apache.org/dyn/closer.cgi?path=/maven/binaries/apache-maven-3.0.4-bin.tar.gz
 +
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 M3_HOME environment variable, e.g. export M3_HOME=/usr/local/apache-maven/apache-maven-3.0.4.
 +
 
 +
* Add the M3 environment variable, e.g. export M3=$M3_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.
  
All of them can be downloaded from [http://software.d4science.research-infrastructures.eu/ Software Distribution Site], while the installation instructions are available in their websites.
+
* add the settings.xml in the .m2 folder on your home directory. The settings.xml file must be this: https://gcube.wiki.gcube-system.org/gcube/index.php/Talk:Creating_gCube_Maven_components:_How-To#Repositories
  
 
==== gHN Configuration ====
 
==== gHN Configuration ====
  
No specific configuration is needed, but the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Configuration usual gHN's one].
+
No specific configuration is needed, but the typical [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide gHN distribution].
  
 
==== Instance Configuration ====
 
==== Instance Configuration ====
Line 234: Line 348:
 
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 (<em>$GLOBUS_LOCATION/etc/org.gcube.vremanagement.softwarerepository/jndi-config.xml</em>). The configurable parameters are:
 
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 (<em>$GLOBUS_LOCATION/etc/org.gcube.vremanagement.softwarerepository/jndi-config.xml</em>). The configurable parameters are:
  
<pre>
+
<source lang="xml">
<!-- This permits less control allowing the submission from ETICS -->
+
              <?xml version="1.0" encoding="UTF-8"?>
 +
<jndiConfig xmlns="http://wsrf.globus.org/jndi/config">
 +
 +
<service name="gcube/vremanagement/softwaregateway">
 +
 +
<!-- This permits less control allowing the submission from ETICS -->
 
<environment
 
<environment
 
name="eticsSubmission"  
 
name="eticsSubmission"  
Line 241: Line 360:
 
type="java.lang.String"
 
type="java.lang.String"
 
override="false" />
 
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 -->
 
<!-- HTTP server information -->
Line 325: Line 389:
 
type="java.lang.String"
 
type="java.lang.String"
 
override="false" />
 
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 -->
 
 
 
 
 
Line 368: Line 405:
 
override="false" />
 
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
 
<environment
 
name="dependenciesSolverClass"  
 
name="dependenciesSolverClass"  
value="org.gcube.vremanagement.softwarerepository.repository.impl.maven.MavenDependenciesSolver"  
+
value="org.gcube.vremanagement.softwaregateway.impl.repositorymanager.util.MavenDependenciesSolver"  
 
type="java.lang.String"
 
type="java.lang.String"
 
override="false" />
 
override="false" />
Line 423: Line 413:
 
<environment
 
<environment
 
name="webServerClass"  
 
name="webServerClass"  
value="org.gcube.vremanagement.softwarerepository.webserver.impl.jetty.JettyWebServer"  
+
value="org.gcube.vremanagement.softwaregateway.webserver.impl.jetty.JettyWebServer"  
 
type="java.lang.String"
 
type="java.lang.String"
 
override="false" />
 
override="false" />
 
 
 
 
 
 
<!--  Maven local service parameter  -->
 
<!--  Maven local service parameter  -->
Line 500: Line 487:
 
override="false" />
 
override="false" />
 
<!-- END Documentation check -->
 
<!-- END Documentation check -->
 +
 +
 +
 +
<!-- Name of the file containing SVN source code -->
 +
<environment
 +
name="sourceCodeLinkPathfilename"
 +
value="svnpath.txt"
 +
type="java.lang.String"
 +
override="false" />
 +
 +
 +
</service>
  
</pre>
+
 
 +
<service name="gcube/vremanagement/softwaregateway/Access"> 
 +
   
 +
<environment
 +
name="name"
 +
value="Access"
 +
type="java.lang.String"
 +
override="false" />
 +
 +
<environment
 +
name="settingsDirectory"
 +
value="tmp"
 +
type="java.lang.String"
 +
override="false" />
 +
     
 +
    </service>
 +
 
 +
 
 +
    <service name="gcube/vremanagement/softwaregateway/Registration">
 +
 
 +
<environment name="name" value="Registration" type="java.lang.String"
 +
override="false" />
 +
    </service>
 +
 
 +
</jndiConfig>
 +
 
 +
<!-- END Documentation check -->
 +
 
 +
</source>
  
 
==== Verify the Installation ====
 
==== Verify the Installation ====
 +
Once the gHN is [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portType:
  
 +
<pre>
 +
gHN started at: http://host:port/wsrf/services/ with the following services:
 +
 +
GCUBE SERVICES:
 
...
 
...
 +
[3]: http://host:port/wsrf/services/gcube/vremanagement/softwaregateway/Access
 +
[4]: http://host:port/wsrf/services/gcube/vremanagement/softwaregateway/Registration
 +
...
 +
</pre>
 +
 +
 +
Looking at the <em>$GLOBUS_LOCATION/logs/sgateway.log</em>, the following messages related to the SoftwareRepository initialisation have to be observed:
  
 
<source lang="text">
 
<source lang="text">
2009-07-14 22:17:22,457 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0s] SoftwareRepository: Added scope(s) [/d4science.research-infrastructures.eu]
+
2012-09-06 17:14:19,950 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.0010s] SoftwareGateway: INITIALISING RUNNING INSTANCE
2009-07-14 22:17:22,458 INFO impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0010s] SoftwareRepository: INITIALISING RUNNING INSTANCE
+
2012-09-06 17:14:20,103 TRACE porttypes.ServiceContext [SoftwareGateway-Initialiser,trace:82] [0.153s] SoftwareGateway: loading RI profile
2009-07-14 22:17:22,460 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0030s] SoftwareRepository: starting in scopes [/d4science.research-infrastructures.eu]
+
2012-09-06 17:14:20,130 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.181s] SoftwareGateway: Added scope(s) [/gcube/devNext, /gcube/devsec, /gcube]
2009-07-14 22:17:22,460 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0030s] SoftwareRepository: Added scope(s) [/d4science.research-infrastructures.eu]
+
2012-09-06 17:14:20,159 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.209s] SoftwareGateway: Attempt to change class of gCube instance 80ec0bf0-f608-11e1-b150-8388f7d74ea3
2009-07-14 22:17:22,461 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0040s] SoftwareRepository: managing security with a GCUBEServiceSecurityManagerImpl
+
2012-09-06 17:14:20,159 WARN porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.21s] SoftwareGateway: Attempt to change name of gCube instance 80ec0bf0-f608-11e1-b150-8388f7d74ea3
2009-07-14 22:17:22,461 INFO  impl.ServiceContext [SoftwareRepository-Initialiser,info:78] [0.0040s] SoftwareRepository: managing remote persistence with a GCUBERINoPersistenceManager
+
2012-09-06 17:14:20,160 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.211s] SoftwareGateway: Attempt to change version of gCube instance 80ec0bf0-f608-11e1-b150-8388f7d74ea3
2009-07-14 22:17:22,462 INFO  contexts.GHNContext [SoftwareRepository-Initialiser,info:78] [0.0s] GHNContext: REGISTERED RI OF (VREMANAGEMENT,SOFTWAREREPOSITORY)
+
2012-09-06 17:14:20,161 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.212s] SoftwareGateway: Generating security manager...
2009-07-14 22:17:22,539 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.082s] SoftwareRepository: banned version: 0.00.00
+
2012-09-06 17:14:20,164 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] [0.215s] SoftwareGateway: Loading credentials propagation property from jndi service environment
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*
+
2012-09-06 17:14:20,164 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] [0.215s] SoftwareGateway: Credential propagation property = null
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
+
2012-09-06 17:14:20,165 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.216s] SoftwareGateway: No service propagation property set and no default configuration available
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
+
2012-09-06 17:14:20,165 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.216s] SoftwareGateway: managing security with a GCUBESimpleServiceSecurityManager
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
+
2012-09-06 17:14:20,169 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.22s] SoftwareGateway: Generating security control manager org.gcube.common.core.security.GCUBEServiceAuthenticationController
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
+
2012-09-06 17:14:20,172 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.223s] SoftwareGateway: managing security control with a GCUBESimpleServiceAuthController
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
+
2012-09-06 17:14:20,173 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.224s] SoftwareGateway: Generating security control manager org.gcube.common.core.security.GCUBEServiceAuthorizationController
2009-07-14 22:17:22,640 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.183s] SoftwareRepository: Maven settings file path = settings.xml
+
2012-09-06 17:14:20,179 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.23s] SoftwareGateway: managing security control with a GCUBEAuthzChainAuthorizationController
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
+
2012-09-06 17:14:20,186 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.237s] SoftwareGateway: managing remote persistence with a GCUBERINoPersistenceManager
2009-07-14 22:17:22,642 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.185s] SoftwareRepository: HTTP Server port = 6900
+
2012-09-06 17:14:20,194 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: in initialization
2009-07-14 22:17:22,642 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.185s] SoftwareRepository: HTTP relative Maven directory = maven
+
2012-09-06 17:14:20,195 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: banned version: null
2009-07-14 22:17:22,642 DEBUG impl.ServiceContext [SoftwareRepository-Initialiser,debug:66] [0.185s] SoftwareRepository: HTTP relative Report directory = report
+
2012-09-06 17:14:20,196 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Tmp directory = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/tmp
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
+
2012-09-06 17:14:20,196 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Pending directory = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/pending
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
+
2012-09-06 17:14:20,197 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Maven directory = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/maven
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
+
2012-09-06 17:14:20,197 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Maven settings file path = settings.xml
 +
2012-09-06 17:14:20,197 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP Server Base path = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/jetty/webapps
 +
2012-09-06 17:14:20,198 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP Server port = 6900
 +
2012-09-06 17:14:20,198 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: CHECK: httpServerBasePath=/home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/jetty/webapps httpServerPort6900
 +
2012-09-06 17:14:20,198 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: CHECK: httpServerBasePath=/home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/jetty/webapps httpServerPort6900
 +
2012-09-06 17:14:20,199 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP relative Maven directory = maven
 +
2012-09-06 17:14:20,200 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP relative Report directory = report
 +
2012-09-06 17:14:20,201 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: XSLT directory = /home/gcube1/gCore/etc/softwaregateway-service-1.1.0-SNAPSHOT/xslt
 +
2012-09-06 17:14:20,201 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: webServerClass: org.gcube.vremanagement.softwaregateway.webserver.impl.jetty.JettyWebServer
 +
2012-09-06 17:14:20,225 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.276s] SoftwareGateway: moved to status INITIALISED
 +
2012-09-06 17:14:20,231 INFO  porttypes.ServiceContext [SoftwareGateway-Subscriber,info:78] [0.0s] SoftwareGateway: registering for GHN shutdown events
 +
2012-09-06 17:14:20,231 TRACE porttypes.Registration [PortTypeConsumer,trace:82] [0.0s] SoftwareGateway: INITIALISING PORTTYPE REGISTRATION
 +
2012-09-06 17:14:20,232 TRACE porttypes.Access [PortTypeConsumer,trace:82] [0.0s] SoftwareGateway: INITIALISING PORTTYPE ACCESS
 +
2012-09-06 17:14:20,268 INFO  porttypes.ServiceContext [SoftwareGateway-Subscriber,info:78] [0.037s] SoftwareGateway: registering for GHN scope removal events
 +
2012-09-06 17:14:22,824 INFO  porttypes.ServiceContext [SoftwareGateway-Stager,info:78] [0.0s] SoftwareGateway: moved to status READY
 +
2012-09-06 17:14:22,824 TRACE porttypes.ServiceContext [SoftwareGateway-Stager,trace:82] [0.0s] SoftwareGateway: RI has been UPDATED
 +
2012-09-06 17:14:22,870 TRACE porttypes.ServiceContext [Updater,trace:82] [0.0s] SoftwareGateway: publishing RI profile in scope(s) [/gcube/devNext, /gcube, /gcube/devsec]
 
...
 
...
 
</source>
 
</source>
Line 537: Line 592:
 
==== Installation ====
 
==== Installation ====
  
The VREModeler is typically installed as any other gCube Service by typing:
+
The VREModeler is typically statically deployed by typing:
  
 
<pre>
 
<pre>
gcore-deploy-service <path>/org.gcube.vremanagement.vremodeler.gar
+
gcore-deploy-service <path>/vremodeler-service-x.x.x.gar
 
</pre>
 
</pre>
  
The command above assumes that the <em>$GLOBUS_LOCATION/bin</em> folder is in your PATH
+
The command above assumes that the <em>$GLOBUS_LOCATION/bin</em> folder is in your PATH. In addition, the service requires that the following software are available in the <em>$GLOBUS_LOCATION/lib</em> folder:
 
+
In addition, the service requires that the following software are available in the <em>$GLOBUS_LOCATION/lib</em> folder:
+
  
 
* [http://hsqldb.org/ hsqldb 1.8.0] (or higher)
 
* [http://hsqldb.org/ hsqldb 1.8.0] (or higher)
 +
* vremodeler-stubs-x.x.x.jar
 +
* [http://ormlite.com/  ormlite  4.4] (or higher)
 +
 +
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 ====
 
==== gHN Configuration ====
  
No specific configuration is needed, but the [https://wiki.gcore.research-infrastructures.eu/gCube/index.php/Administrator_Guide#Configuration usual gHN's one].
+
No specific configuration is needed, but the typical [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Configuration configuration].
  
 
==== Instance Configuration ====
 
==== Instance Configuration ====
Line 558: Line 615:
  
 
==== Verify the Installation ====
 
==== Verify the Installation ====
 +
Once the gHN is [https://gcore.wiki.gcube-system.org/gCube/index.php/Administrator_Guide#Verify_the_Installation started], the <em>$GLOBUS_LOCATION/nohup.out</em> file has to report (among the others) the following portTypes:
  
[TBP]
+
<pre>
 +
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
 +
 
 +
...
 +
</pre>
 +
 
 +
Looking at the $GLOBUS_LOCATION/logs/container.fulllog, the following messages related to the VREModeler initialisation have to be observed:
 +
 
 +
<source lang="text">
 +
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
 +
</source>
 +
 
 +
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 ====
 
==== Requirements ====
  
The VREDefinitionPortlet (the VREModeler's GUI) allows (in one of its steps) the VRECreator to select a set of functionalities. A functionality is a set of services and portlets that allow the VREUser to perform specifics operations. These set of functionalities should be defined in a Generic Resource published on the IS.  
+
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.  
The Generic Resource must be defined as follow:
+
  
<pre>
+
This Generic Resource must be defined as follow:
 +
 
 +
<source lang="xml">
 
<Resource>
 
<Resource>
 
   <ID>df899630-82ae-11de-a6cc-f15c9cf886be</ID>
 
   <ID>df899630-82ae-11de-a6cc-f15c9cf886be</ID>
Line 583: Line 671:
 
               <Name>Access Functions</Name>
 
               <Name>Access Functions</Name>
 
               <Description>
 
               <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.
+
                     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>
 
               </Description>
 
               <Functionalities>
 
               <Functionalities>
Line 589: Line 678:
 
                     <Name>Search (Browse, Simple, and Combined)</Name>
 
                     <Name>Search (Browse, Simple, and Combined)</Name>
 
                     <Description>
 
                     <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.
+
                         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>
 
                     </Description>
 
                     <Services>
 
                     <Services>
Line 596: Line 688:
 
                           <ServiceClass>Search</ServiceClass>
 
                           <ServiceClass>Search</ServiceClass>
 
                       </Service>
 
                       </Service>
                            ... more services
+
                      <!-- ...other services -->
 
                     </Services>
 
                     </Services>
 
                     <Portlets>
 
                     <Portlets>
 
                       <Portlet>userprofileeditingportlet#UserProfileEditingPortlet</Portlet>
 
                       <Portlet>userprofileeditingportlet#UserProfileEditingPortlet</Portlet>
 
                       <Portlet>layoutcreator#LayoutcreatorPortlet</Portlet>
 
                       <Portlet>layoutcreator#LayoutcreatorPortlet</Portlet>
                        ... more portlets
+
                      <!--  ...other portlets -->
 
                     </Portlets>
 
                     </Portlets>
 
                 </Functionality>   
 
                 </Functionality>   
                     ... more functionalities
+
                     <!-- ...other functionalities -->
 
               </Functionalities>
 
               </Functionalities>
 
           </MainFunctionality>
 
           </MainFunctionality>
               ... more main functionalities
+
               <!-- ...other main functionalities -->
 
         </MainFunctionalities>
 
         </MainFunctionalities>
 
       </Body>
 
       </Body>
 
   </Profile>
 
   </Profile>
 
</Resource>
 
</Resource>
</pre>
+
</source>

Latest revision as of 12:03, 10 December 2013

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>/resource-manager-service-x.x.x.gar ( where x.x.x is the version of the service to deploy) 
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.

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:
...
[1]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/administration
[2]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/binder
[3]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/reporting
[4]: http://host:port/wsrf/services/gcube/vremanagement/resourcemanager/scopecontroller
...

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>/softwaregateway-service-x.x.x.gar ( where x.x.x is the version of the service to deploy) 

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:


Maven 3

The Software Gateway service relies on Maven 3. These are the installation instructions 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 M3_HOME environment variable, e.g. export M3_HOME=/usr/local/apache-maven/apache-maven-3.0.4.
  • Add the M3 environment variable, e.g. export M3=$M3_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.

gHN Configuration

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

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:

               <?xml version="1.0" encoding="UTF-8"?>
<jndiConfig xmlns="http://wsrf.globus.org/jndi/config">
 
	<service name="gcube/vremanagement/softwaregateway">
 
		<!-- This permits less control allowing the submission from ETICS -->
		<environment
			name="eticsSubmission" 
			value="true" 
			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" />
 
 
		<!-- 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" />
 
		<environment
			name="dependenciesSolverClass" 
			value="org.gcube.vremanagement.softwaregateway.impl.repositorymanager.util.MavenDependenciesSolver" 
			type="java.lang.String"
			override="false" />
 
		<environment
			name="webServerClass" 
			value="org.gcube.vremanagement.softwaregateway.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 -->
 
 
 
		<!-- Name of the file containing SVN source code -->
		<environment
			name="sourceCodeLinkPathfilename" 
			value="svnpath.txt" 
			type="java.lang.String"
			override="false" />
 
 
	</service>
 
 
	<service name="gcube/vremanagement/softwaregateway/Access">  
 
		<environment 
			name="name" 
			value="Access" 
			type="java.lang.String"
			override="false" />
 
		<environment 
			name="settingsDirectory" 
			value="tmp" 
			type="java.lang.String"
			override="false" />	
 
    </service>
 
 
    <service name="gcube/vremanagement/softwaregateway/Registration">
 
		<environment name="name" value="Registration" type="java.lang.String"
			override="false" />
    </service>
 
</jndiConfig>
 
		<!-- 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/softwaregateway/Access
[4]: http://host:port/wsrf/services/gcube/vremanagement/softwaregateway/Registration
...


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

2012-09-06 17:14:19,950 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.0010s] SoftwareGateway: INITIALISING RUNNING INSTANCE
2012-09-06 17:14:20,103 TRACE porttypes.ServiceContext [SoftwareGateway-Initialiser,trace:82] [0.153s] SoftwareGateway: loading RI profile
2012-09-06 17:14:20,130 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.181s] SoftwareGateway: Added scope(s) [/gcube/devNext, /gcube/devsec, /gcube]
2012-09-06 17:14:20,159 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.209s] SoftwareGateway: Attempt to change class of gCube instance 80ec0bf0-f608-11e1-b150-8388f7d74ea3
2012-09-06 17:14:20,159 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.21s] SoftwareGateway: Attempt to change name of gCube instance 80ec0bf0-f608-11e1-b150-8388f7d74ea3
2012-09-06 17:14:20,160 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.211s] SoftwareGateway: Attempt to change version of gCube instance 80ec0bf0-f608-11e1-b150-8388f7d74ea3
2012-09-06 17:14:20,161 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.212s] SoftwareGateway: Generating security manager...
2012-09-06 17:14:20,164 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] [0.215s] SoftwareGateway: Loading credentials propagation property from jndi service environment
2012-09-06 17:14:20,164 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] [0.215s] SoftwareGateway: Credential propagation property = null
2012-09-06 17:14:20,165 WARN  porttypes.ServiceContext [SoftwareGateway-Initialiser,warn:86] [0.216s] SoftwareGateway: No service propagation property set and no default configuration available
2012-09-06 17:14:20,165 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.216s] SoftwareGateway: managing security with a GCUBESimpleServiceSecurityManager
2012-09-06 17:14:20,169 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.22s] SoftwareGateway: Generating security control manager org.gcube.common.core.security.GCUBEServiceAuthenticationController
2012-09-06 17:14:20,172 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.223s] SoftwareGateway: managing security control with a GCUBESimpleServiceAuthController
2012-09-06 17:14:20,173 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.224s] SoftwareGateway: Generating security control manager org.gcube.common.core.security.GCUBEServiceAuthorizationController
2012-09-06 17:14:20,179 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.23s] SoftwareGateway: managing security control with a GCUBEAuthzChainAuthorizationController
2012-09-06 17:14:20,186 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.237s] SoftwareGateway: managing remote persistence with a GCUBERINoPersistenceManager
2012-09-06 17:14:20,194 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: in initialization
2012-09-06 17:14:20,195 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: banned version: null
2012-09-06 17:14:20,196 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Tmp directory = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/tmp
2012-09-06 17:14:20,196 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Pending directory = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/pending
2012-09-06 17:14:20,197 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Maven directory = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/maven
2012-09-06 17:14:20,197 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: Maven settings file path = settings.xml
2012-09-06 17:14:20,197 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP Server Base path = /home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/jetty/webapps
2012-09-06 17:14:20,198 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP Server port = 6900
2012-09-06 17:14:20,198 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: CHECK: httpServerBasePath=/home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/jetty/webapps httpServerPort6900
2012-09-06 17:14:20,198 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: CHECK: httpServerBasePath=/home/gcube1/.gcore/persisted/node4.d.d4science.research-infrastructures.eu-8080/SoftwareGateway/jetty/webapps httpServerPort6900
2012-09-06 17:14:20,199 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP relative Maven directory = maven
2012-09-06 17:14:20,200 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: HTTP relative Report directory = report
2012-09-06 17:14:20,201 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: XSLT directory = /home/gcube1/gCore/etc/softwaregateway-service-1.1.0-SNAPSHOT/xslt
2012-09-06 17:14:20,201 DEBUG porttypes.ServiceContext [SoftwareGateway-Initialiser,debug:66] ServiceContext: webServerClass: org.gcube.vremanagement.softwaregateway.webserver.impl.jetty.JettyWebServer
2012-09-06 17:14:20,225 INFO  porttypes.ServiceContext [SoftwareGateway-Initialiser,info:78] [0.276s] SoftwareGateway: moved to status INITIALISED
2012-09-06 17:14:20,231 INFO  porttypes.ServiceContext [SoftwareGateway-Subscriber,info:78] [0.0s] SoftwareGateway: registering for GHN shutdown events
2012-09-06 17:14:20,231 TRACE porttypes.Registration [PortTypeConsumer,trace:82] [0.0s] SoftwareGateway: INITIALISING PORTTYPE REGISTRATION
2012-09-06 17:14:20,232 TRACE porttypes.Access [PortTypeConsumer,trace:82] [0.0s] SoftwareGateway: INITIALISING PORTTYPE ACCESS
2012-09-06 17:14:20,268 INFO  porttypes.ServiceContext [SoftwareGateway-Subscriber,info:78] [0.037s] SoftwareGateway: registering for GHN scope removal events
2012-09-06 17:14:22,824 INFO  porttypes.ServiceContext [SoftwareGateway-Stager,info:78] [0.0s] SoftwareGateway: moved to status READY
2012-09-06 17:14:22,824 TRACE porttypes.ServiceContext [SoftwareGateway-Stager,trace:82] [0.0s] SoftwareGateway: RI has been UPDATED
2012-09-06 17:14:22,870 TRACE porttypes.ServiceContext [Updater,trace:82] [0.0s] SoftwareGateway: publishing RI profile in scope(s) [/gcube/devNext, /gcube, /gcube/devsec]
...

VREModeler

Installation

The VREModeler is typically statically deployed by typing:

gcore-deploy-service <path>/vremodeler-service-x.x.x.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:

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>