Thank you very much.<br>I think simple POJOs will answer our needs.<br><br>-- <br>Guillaume<br><br><div><span class="gmail_quote">2007/9/12, Todd Wright &lt;<a href="mailto:twright@bbn.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
twright@bbn.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Guillaume Liegard wrote:<br>&gt; Hello,<br>&gt;<br>&gt; I am making a tool to monitor process activities of a host. So I want to<br>&gt; publish a representation of each process on the blackboard and update<br>&gt; them on a regular basis.
<br>&gt;<br>&gt; My problem is to choose the best kind of objet to represent each process<br>&gt; on the blackboard.<br>&gt;<br>&gt; 1. Can I use assets as they don&#39;t seem to be modifiable and I don&#39;t want<br>&gt; to create new objects everytime (garbage collector)?
<br><br>The PropertyGroups attached to an asset are modifiable; you don&#39;t have to<br>create a new object every time you modify an asset.<br><br>Assets are likely more complicated than what you require.<br><br>&gt;<br>

&gt; 2. What exactly are Change Reports? Can I use them in this case?<br><br>When a plugin calls &quot;publishChange&quot;, it can optionally specify a set of<br>ChangeReports to note what has changed (e.g. &quot;changed field X&quot;).&nbsp;&nbsp;Other plugins
<br>will see these ChangeReports in their subscription change lists.&nbsp;&nbsp;These<br>ChangeReports are transient -- they are discarded once all plugin subscriptions<br>have been notified.&nbsp;&nbsp;For details, see Cougaar Developers&#39; Guide section 
<a href="http://3.2.4.4" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">3.2.4.4</a>.<br><br>You can&#39;t use ChangeReports by themselves to implement your blackboard objects.<br>&nbsp;&nbsp;However, you might want to use ChangeReports with your blackboard objects to
<br>indicate what has changed, assuming that a subscriber plugin is interested in
<br>these details.&nbsp;&nbsp;You can use ChangeReports with any type of blackboard object.<br><br>&gt;<br>&gt; I have seen the method blackboard.publishChange(Object, Collection); but<br>&gt; I don&#39;t know how to get back the change reports (when other plugins have
<br>&gt; suscribed to this object).<br><br>Use &quot;subscription.getChangeReports(Object)&quot;, e.g.:<br>&nbsp;&nbsp; for (Object o : sub.getChangedCollection()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set s = sub.getChangeReports(o);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp; }<br>

<br>&gt;<br>&gt; 3. Are FrameSets a good way to deal with simple problems like that?<br>&gt; Following a previous mail, I had a look at FrameSets. The mechanism<br>&gt; seems very complex for such a simple problem.<br><br>

FrameSets are intended for this type of &quot;system&quot; data representation.&nbsp;&nbsp;However,<br>I agree that they are difficult to use.&nbsp;&nbsp;We need a simple FrameSet tutorial.<br><br>For your simple example, you don&#39;t need to use FrameSets.&nbsp;&nbsp;It might be nice
<br>someday.<br><br>&gt;<br>&gt; 4. Aren&#39;t POJOs a good solution for this simple problem?<br><br>Yes.<br><br>Make sure that the &quot;equals&quot; and &quot;hashCode&quot; methods are correctly defined and<br>not based on modifiable fields.&nbsp;&nbsp;The Java default Object-based &quot;equals&quot; and
<br>&quot;hashCode&quot; methods are fine.<br><br>Or, consider implementing UniqueObject by subclassing:<br><a href="http://cougaar.org/cgi-bin/viewcvs.cgi/core/src/org/cougaar/core/util/UniqueObjectBase.java?rev=1.2&amp;cvsroot=core&amp;content-type=text/vnd.viewcvs-markup" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://cougaar.org/cgi-bin/viewcvs.cgi/core/src/org/cougaar/core/util/UniqueObjectBase.java?rev=1.2&amp;cvsroot=core&amp;content-type=text/vnd.viewcvs-markup</a><br>Get the UID from the UIDService &quot;nextUID()&quot; method.&nbsp;&nbsp;The benefit of
<br>implementing UniqueObject is that this will make your objects visible in the<br>&quot;/tasks&quot; servlet.<br><br>&gt; What are the<br>&gt; drawbacks?<br><br>You&#39;ll miss out on some of the more complex features supported by Assets and
<br>FrameSets.<br><br>Todd<br><br>&gt;<br>&gt; Thanks you very much for your advises.<br>&gt;<br>&gt; Best regards.<br>&gt;<br>&gt; --<br>&gt; Guillaume Liégard<br>&gt;<br>&gt;<br>&gt; ------------------------------------------------------------------------
<br>&gt;<br>&gt; _______________________________________________<br>&gt; Cougaar-developers mailing list<br>&gt; <a href="mailto:Cougaar-developers@cougaar.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Cougaar-developers@cougaar.org</a><br>&gt; <a href="http://cougaar.org/mailman/listinfo/cougaar-developers" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://cougaar.org/mailman/listinfo/cougaar-developers</a><br></blockquote></div><br>