Chapter 2. JASMINe JADE Package

Table of Contents

2.1. Pre-requisites
2.2. JADE control through JMX
2.3. JADE Boot
2.4. JADE Node
2.4.1. User permissions & Apache

2.1. Pre-requisites

  • JDK 5.0

  • Ant 1.6.5

  • The jade bundle repository should be accessible from all the nodes (via NSF, http, ...). The repository location have to be specified in the jadeboot and jadenode folders in these files:

    • <jade-folder>/etc/osgi/system.properties should be modified in:

      oscar.auto.start.1= \
      file:///<repository-location>/shell.jar \
      file:///<repository-location>/bundlerepository.jar \
      file:///<repository-location>/logger.jar \
      file:///<repository-location>/log.jar \
      file:///<repository-location>/properties.jar \
      file:///<repository-location>/fractalbootstrap-2.1.0.1.jar   

    • <jade-folder>/etc/osgi/bundle.properties should me modified in:

      oscar.repository.url=file:///<repository-location>/repository.xml

2.2. JADE control through JMX

This package acts as a communication bridge between jadeboot and the JOnAS. Executing ant inside the folder where jade-jmx.zip was unzipped will start the package:

$ ant
Buildfile: build.xml

jade-jmx:
     [java] service:jmx:rmi:///jndi/rmi://127.0.1.1:9098/server
     [java] RMI registry ready.

The RMI registry is started on the port 9098 by default. To change this, use:

$ ant -DrmiPort=<port>

This package can be executed in any node of the cluster. Its location is a decision of the cluster administrator. It's not mandatory to run it on a specific node.

[Note]Note

The package's location have to be specified in the UI config files, otherwise the UI will ask for it.

2.3. JADE Boot

The next step is to run the jade boot.

To start the JADE boot from <jade-boot-home>/:

$ ant start -DregistryHost=<jasmine-controle-node-address> -DregistryPort=<jasmine-controle-node-port>
Buildfile: build.xml

compile:

start:
     [java] JadeBoot starting ...
     [java] Fractal registry is ready.
     [java] [NodeLauncher] Node "<jasmine-controle-node-address>_<node-id>" registered
     [java] [OSGI] starting oscar
     [java] INFO : 3 : Logger.start : 1.0.0
     [java] INFO : 5 : ServiceEvent.REGISTERED
     [java] INFO : 5 : ServiceEvent.REGISTERED
     [java] INFO : 6 : ServiceEvent.REGISTERED
     [java] INFO : 4 : BundleEvent.STARTED
     [java] INFO : 5 : BundleEvent.STARTED
     [java] INFO : 6 : BundleEvent.STARTED
     [java] INFO : 0 : BundleEvent.STARTED
     [java] INFO : 0 : FrameworkEvent.STARTED
     [java] [OSGI] oscar started
     [java] [JoramServerWrapper] server started
     [java] [UDPNodeDiscovery] listen on port 9998
     [java] [JNDI] connected to fr.dyade.aaa.jndi2.client.NamingContextFactory on <jasmine-controle-node-address>:1239
     [java] [Allocator] started
     [java] JadeBoot started
     [java] [Allocator] receive newNode jmsMessage : jadeboot 

<jasmine-controle-node-address> is the name of the machine and <jasmine-controle-node-port> is the port number where the Fractal registry will listen.

The next step is to run the jade nodes on every host part of the managed cluster.

2.4. JADE Node

All the nodes that will be monitored and managed need a JADE node package.

To start the JADE node from <jade-node-home>/:

$ ant start -DregistryHost=<jasmine-control-node-address> -DregistryPort=<jasmine-controle-node-port>
Buildfile: build.xml

compile:

start:
     [java] JadeNode starting ...
     [java] [NodeLauncher] Node "<jasmine-monitored-node-address>_<node-id>" registered
     [java] [OSGI] starting oscar
     [java] INFO : 3 : Logger.start : 1.0.0
     [java] INFO : 4 : BundleEvent.STARTED
     [java] INFO : 5 : ServiceEvent.REGISTERED
     [java] INFO : 5 : ServiceEvent.REGISTERED
     [java] INFO : 5 : BundleEvent.STARTED
     [java] INFO : 6 : ServiceEvent.REGISTERED
     [java] INFO : 6 : BundleEvent.STARTED
     [java] INFO : 0 : BundleEvent.STARTED
     [java] INFO : 0 : FrameworkEvent.STARTED
     [java] [OSGI] oscar started
     [java] JadeNode started 

It's important to write a completely qualified hostname (host.domain) or IP, as sometimes it fails to find the nodes. It's possible to have some problems trying to connect nodes at different networks, so it's recommended, if it's possible, to have them at the same network. If the connection is successful, this message will be displayed in the jadeboot node console:

[java] [Allocator] receive newNode jmsMessage : <jasmine-monitored-node-address>_<node-id>

2.4.1. User permissions & Apache

The administrator has to take care of the permissions of the user that is running the jadenode, because JADE may need to deploy Apache HTTPd and start it, the user will need some grants to launch it on a restricted port (<1024).

A simple solution is to give to the JADE user some admin rights. But a better solution is to use sudo for executing apachectl (the script that launches Apache HTTPd).

To do that it's necessary to edit /etc/sudoers file using the visudo command (we'll need root access) and add this line:

# User privilege specification
<user-for-jadenode> <jasmine-host-name> = (root) NOPASSWD:<path-to-the-deployed-apachectl>
[Note]Note

This solution is just necessary if we need an Apache HTTPd server to listen at port 80 (or <1024). Otherwise the user will not need administrator rights and this part can be skipped.

Copyright © 2006-2007 JASMINe / ObjectWeb consortium
Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.

http://jasmine.objectweb.org