Cougaar Template Support

The Cougaar template property controls the standard set of infrastructure components that are loaded into the nodes and agents.

For example, setting the template to embedded tells the infrastructure to load a local-only (trivial) message transport and naming service. If the template is set to lan then the distributed message transport and naming service are loaded.

The System Property is:

    -Dorg.cougaar.society.xsl.param.template=$value
The supported values are:

    embedded      = loopback mts/wp, no servlets,
                    designed for applets and other embedded environments.

    single_node   = loopback mts/wp, no metrics,
                    adds standard plugins and servlets (e.g. "/tasks" servlet)

    single_debug  = full mts, loopback wp, full metrics and aspects

    legacy        = default backwards-compatible with prior Cougaar releases.
                    distributed mts/wp, adds planning and communities.

    lan           = distributed mts/wp, added metrics aspects,
                    adds standard plugins and servlets (e.g. "/wp" servlet)

    wan           = currently same as lan.
                    eventually we'll add mts sequence checking here, etc.
It is defined in:
    configs/common/SimpleAgent.xsl
This parameter simply enables/disables other parameters, and can be overwritten in the society XML file. For example, an 'embedded' configuration can add servlets by setting:

    -Dorg.cougaar.society.xsl.param.servlets=true

Matrix of enabled/disabled features

PARAMETERtemplate value
embeddedsingle_nodesingle_debuglegacylanwan
threadServicetrivialfullfullfullfullfull
pluginThreadPool noteN/AN/A30303030
mtssinglenodesinglenodefullfullfullfull
wpserversinglenodesinglenodesinglenodetrue notefullfull
socketFactory required by full wp and mtsfalsefalsetruetruetruetrue
metricstrivialtrivialfullfullfullfull
standard_aspectsfalsefalsetruefalsetruetrue
sensors e.g. agent loadfalsefalsetruefalsetruetrue
mobilityfalsefalsefalsefalsetruetrue
servlets enginefalsetruetruetruetruetrue
standard_node_servlets e.g. "/wp"falsetruetruefalsetruetrue
standard_agent_servlets e.g. "/tasks"falsetruetruefalsetruetrue
communitiesfalsefalsefalsetrue notefalsetrue
assume planning domain should be loadedfalsefalsefalsetrue notefalsefalse
read domain_ini filefalsefalsefalsetrue notefalsefalse
link_protocol.loopbackdefaultdefaulttrue notedefaultdefaultdefault
link_protocol.rmidefaultdefaultdefaultdefaultdefaultdefault
link_protocol.jmsdefaultdefaultdefaultdefaultdefaultdefault

Notes

thread_pool:

The full threadService supports a plugin thread limit. The trivial thread service implementation has no limit.

wpserver:

The wpserver supports a default "true" value, which tells the node to load the WPServer component into every node. This is for backwards compatibility.

communities:

Communities are only enabled for backwards-compability and the wan configuration.

planning:

For backwards compatibility, the legacy configuration loads the planning domain. The preferred approach is to explictly list domains in each agent, just like plugins.

domain_ini:

Similar to the above planning issue, the legacy configuration reads a "LDMDomains.ini" domain configuration file.

link_protocol:

By default, the RMI and Loopback link protocols are loaded. In the 'single_debug' configuration we only want loopback.