Friday, March 28, 2008

Making a clear distinction between a node object's name and "hostname" attribute

We've just posted ControlTier 3.1.1 to Sourceforge.

The release includes ControlTier installer, Antdepo client and Commander extension enhancements that allow a clear distinction to be drawn between the meaning and use of node object names and their "hostname" attribute value.

Until this release, it has been the convention for the "client.hostname" property used by the installer to be used to set:
  1. The "framework.node" property value for Antdepo
  2. The Node object name registered by depot-setup
  3. The Node object's "hostname" attribute also set by depot-setup in the project
With this release, the assignments are made as follows:
  1. "client.hostname" is used to set "framework.node" and the Node object's "hostname" attribute.
  2. A new installer property, "client.node.name", is used to set the Node object name.
(Note that both installer properties default to "${server.tomcat.hostname}" - which in turn is set to "localhost" - to maintain backward compatibility).

Drawing this distinction has a number of benefits.

From the project perspective, it is now possible to register Node objects with logically relevant names. i.e. Instead of a Node object being named using the (possibly user name qualified) network host name used to access it (e.g. "prd@w01d02.company.com"), it can use an application centric functional name (e.g. "web-server-01", or "build-box", etc).

A second benefit - and the one that really drove the timing of this change - is that it was difficult to exploit the "user@host" support introduced for "client.hostname" with 3.1 since the ProjectBuilder object XML ("projectxml") needs to translate all object names into XML element names as part of the "load-objects" command, and XML does not support element names that include the "@" character.

Thus, you can see that this enhancement tidies up a loose end in the 3.1 functionality. (Note that theses ideas are going to be further enhanced and extended under 3.2).

Here's a practical example of taking a single node (called "development") and installing the ControlTier server under one account ("anthony"), and establishing two client installations on the same system under separate accounts ("user1" and "user2").

The three "default.properties" files are setup as follows:
[anthony@development ControlTier-3.1]$ diff default.properties default.properties.orig
31c31
< server.tomcat.hostname = development
---
> server.tomcat.hostname = localhost
98c98
< client.hostname = anthony@development
---
> client.hostname = ${server.tomcat.hostname}
103c103
< client.node.name = server
---
> client.node.name = ${server.tomcat.hostname}

[user1@development ControlTier-3.1]$ diff default.properties default.properties.orig
31c31
< server.tomcat.hostname = development
---
> server.tomcat.hostname = localhost
98c98
< client.hostname = user1@development
---
> client.hostname = ${server.tomcat.hostname}
103c103
< client.node.name = client-1
---
> client.node.name = ${server.tomcat.hostname}

[user2@development ControlTier-3.1]$ diff default.properties default.properties.orig
31c31
< server.tomcat.hostname = development
---
> server.tomcat.hostname = localhost
98c98
< client.hostname = user2@development
---
> client.hostname = ${server.tomcat.hostname}
103c103
< client.node.name = client-2
---
> client.node.name = ${server.tomcat.hostname}

(Note that in all cases the "server.tomcat.hostname" is setup to the host name of the ControlTier server system - no user name qualification required of course).

With the installer configured this way, Node objects are registered in Workbench as follows:

Finally, note how node object attributes can be subsequently updated using object XML, in this example setting custom descriptions:
<?xml version="1.0"?>

<!DOCTYPE project PUBLIC "-//ControlTier Software Inc.//DTD Project Document 1.0//EN" "project.dtd">

<project>
<node type="Node" name="server" description="ControlTier server node" hostname="anthony@development"/>
<node type="Node" name="client-1" description="ControlTier client node" hostname="user1@development"/>
<node type="Node" name="client-2" description="ControlTier client node" hostname="user2@development"/>
</project>

Anthony Shortland.
anthony@controltier.com

1 comment:

Anonymous said...

Manual 440 2Buspar generic2 disrobing 363feet 62 4Discount Buspar581 Muscle on their own 8caused 9 473Snorting Buspar0 become 614Light Manual Muscle Relaxation as an allergy and oil free aid to lower leg circulation 2 411Order Ashwagandha Uk7 This means it just stays down there and goes cold and preventing warm fresh blood from reaching the 88itch, hot, form a raised area or otherwise make the area uncomfortable 61 4Buspar Posologia1 In the skin and muscle tissues underneath it are receptors for touch, pressure, pain, pleasure, heat and 9we 6 6Buspar For Free6 for 49
Chemical reactions 444 6Buspar Prezzo6 word 108Gillan 149 6Where To Buy Ashwagandha Online486 · It 1World 3 692Buy Ashwagandha Diet Pills2 not 478the legs because the blood is static or not moving 1 308Ashwagandha Buy Cod7 he 682· It 725 3Buy Cheap Purchase Uk Buspar9 someone with movement that is restricted and has cold feet through the calf muscle pump not working 5By mechanical or introduced means 0 3Ashwagandha Effects7 your 588