[OpenAjaxGadgets] [OpenAjaxIDE] Property onChange notification events
Howard Weingram
weingram at tibco.com
Tue Apr 7 02:56:25 PDT 2009
(I would leave it on Hub)
hw
On 4/6/09 10:42 AM, "Jon Ferraiolo" <jferrai at us.ibm.com> wrote:
>
> Regarding explicit mention of OpenAjax Hub in the spec, it seems like we
> should be able to find a way to describe the necessary behavior (i..e,
> message transmission and reception) without having to mention a particular
> technology (i.e., the Hub).
>
> Jon
>
>
>
>
>
> Rich
> Thompson/Watson/I
> BM at IBMUS To
> Sent by: "gadgets at openajax.org"
> gadgets-bounces at o <gadgets at openajax.org>,
> penajax.org "ide at openajax.org"
> <ide at openajax.org>
> cc
> 04/06/2009 06:12
> AM Subject
> Re: [OpenAjaxGadgets] [OpenAjaxIDE]
> Property onChange notification
> events
>
>
>
>
>
>
>
>
>
>
>
> I agree that a widget only has its subscribe handler invoked if someone
> outside the widget causes the property value to be updated (actual value
> change). Likewise, an event is only published if the widget causes the
> property value to change. It also is reasonable to have an overall
> namespace for topics with the default being the widget's namespace.
>
> Reading through the quoted portions of the spec was tough with my spec
> writer hat on. The reason is that I firmly believe specs should be loosely
> coupled unless the specified functionality can not be achieved with a loose
> coupling (rare). This section explicitly requires use of the Hub spec
> without any real need for that requirement (i.e. any event distribution
> mechanism would be fine, the Hub is an example). Is there a reason for such
> tight coupling other than both are being defined under the OAA umbrella??
>
> Rich
>
>
> From: Howard Weingram <weingram at tibco.com>
>
> To: "gadgets at openajax.org" <gadgets at openajax.org>, "ide at openajax.org"
> <ide at openajax.org>
>
> Date: 04/06/2009 06:55 AM
>
> Subjec [OpenAjaxIDE] Property onChange notification events
> t:
>
>
>
>
>
>
>
> I have some questions, comments and proposals.
>
> The IDE spec currently says the following:
>
> ==========
> The publish attribute. Boolean. Default value is 'false'. If true,
> indicates
> that the user agent should publish an event on the OpenAjax Hub whenever
> the
> value of the property changes. Attribute 'topic' indicates the name of the
> topic that is used when that event is published. 2009-02-23 Jon: I updated
> the description [MASHUP]
> The subscribe attribute. Boolean. Default value is 'false'. If true,
> indicates that the user agent should subscribe to property change events on
> the OpenAjax Hub for the topic indicated by the 'topic' attribute, and
> update this property to the new value that is received. 2009-02-23 Jon: I
> updated the description [MASHUP]
> The topic attribute. String. Defaults to NULL. Identifies the topic name
> that is published to (if 'publish' is true) and/or subscribed to (if
> 'subscribe' is true) on the OpenAjax Hub. If the attribute is not
> specified,
> or is NULL or the empty string, and if 'publish' is true or 'subscribe' is
> true, then the value of the 'name' attribute is used as the topic name.
> (Note that providing a value to 'topic' has no effect if 'publish' is false
> and 'subscribe' is false.) [MASHUP]
> ==========
>
> Problems:
>
> 1. This appears to state that the property name must be used as
> the default topic.
>
> Topics SHOULD be namespaced. Namespacing ensures that different
> organizations can specify their own sets of topics without
> causing endless collisions.
>
> Using a single-token topic like "accountNo," as the spec
> appears to require, is GUARANTEED to result in topic name
> collisions between different families of widgets, balkanizing
> the application space, causing a lot of trouble when widgets
> receive incompatible data on overly generic topics, and greatly
> reducing the usefulness of the standard.
>
> PROPOSAL:
>
> (If property names are used to implicitly define topics),
> widget.xml MUST specify a topic prefix that namespaces
> these implicitly defined topics.
>
> 2. Does a change notification get sent each time setPropertyValue
> is called, even if this does not change the property value?
> (i.e. can SetPropertyValue be used to affirm an existing value?)
> Or does a change notification only get sent if the value has
> actually changed?
>
> To determine whether the new value is different from the old
> value, setPropertyValue would need to traverse the value, which
> might be a complex object, and directly compare old and new
> values.
>
> PROPOSAL: setPropertyValue ALWAYS forces a change notification
> to be published, even if the data did not actually change.
>
> 3. If subscribe and publish are both true, we need to specify the
> behavior.
>
> a. Does the widget see its own updates?
>
> PROPOSAL: NO.
>
> b. If the answer to (a) is "yes", then does the widget
> distinguish its own updates from others' in some way?
> If not, then because of #2, there will be infinite loops.
>
> 4. If an update event arrives and updates the property value, this
> change MUST NOT cause another update notification to be
> published. Update notifications are published only when the
> setPropertyValue function is called explicitly.
>
> The expected behavior of properties & their update events needs to be
> clearly defined in the specification to avoid different vendors from
> implementing mutually incompatible behavior.
>
> Your thoughts welcome.
>
> Regards,
> Howard
>
>
> --
> Howard Weingram 650.846.1000
> Principal Architect TIBCO Software Inc.
>
> TIBCO PageBus(TM) delivers ultra-lightweight
> publish-subscribe messaging for mash-ups.
> Learn more at http://www.pagebus.org.
>
> _______________________________________________
> IDE mailing list
> IDE at openajax.org
> http://openajax.org/mailman/listinfo/ide
>
> _______________________________________________
> gadgets mailing list
> gadgets at openajax.org
> http://openajax.org/mailman/listinfo/gadgets
> _______________________________________________
> gadgets mailing list
> gadgets at openajax.org
> http://openajax.org/mailman/listinfo/gadgets
--
Howard Weingram 650.846.1000
Principal Architect TIBCO Software Inc.
TIBCO PageBus(TM) delivers ultra-lightweight
publish-subscribe messaging for mash-ups.
Learn more at http://www.pagebus.org
More information about the gadgets
mailing list