Portico v1.0.1

Release Date June 3rd, 2009
Status Deprecated
Download Archive
Git Tag N/A
Baseline /portico-1.0.x

This release has been deprecated. Users are strongly encouraged to update to a support release.

JSAF Stability Improvements

A lot of work has been done on getting Portico and JSAF working happily together. Most of the problems stem from JSAFs use of custom signal handlers, and this conflicting with internal requirements of Portico.

Fortunately there is a reasonably simple remedy to this situation (although one that was difficult to find!), although the process of getting Portico and JSAF running together is still a little cumbersome. A guide on what is needed has been developed and is available here: Portico and JSAF.

Unique Federate Names

An often requested feature is to allow multiple federates in a single federation with the same name. By default, Portico will reject any federate that attempts to join with a name that another federate is already using. By setting the RID property portico.uniqueFederateNames to true, you can disable this check, thus easily allowing multiple instances of applications like JSAF or VBS2 to be run in a single federation without additional configuration.

For those interested, what happens internally is that when this setting is true and Portico sees that a second federate is attempting to join with a used federate name, it changes the requested name from "federateName" to "federateName (federateHandle)" in an attempt to make it unique.

Object Name Negotiation

When registering an object with a specific name (as many applications do), Portico has to do some additional work to make sure the name is unique within the federation. The work of negotiating with the other federates in the federation to make sure the name is unique imposes a significant performance penalty.

In the vast majority of circumstances, application themselves ensure that the names they use are unique (perhaps prefixing some local id or something or that nature to it). In these situations, the performance hit is for a process that has become redundant. In Portico v1.0.1 the default setting to always negotiate has been changed.

Unless explicitly enabled through the RID, a federate will not perform the lengthy negotiation process. This does not mean that no checks are made. If an object is already known to a federate, that name can't be reused. What is does mean is that if two federates attempt to register an object with the same name at the same time, duplicate names could exist in the federation. If problems occur, it is recommended to enable full negotiation through the RID file option portico.object.negotiateNames=true setting.

If Kevin is to be believed, anything is possible. Where "anything" includes you signing up to the Portico announcement mailing list, he may well be right. Is he? Don't let Kevin down. He's a big guy.