Interoperability Minutes 2007-05-16

From MemberWiki

Jump to: navigation, search

Full minutes: /member/wiki/Interoperability_Minutes_2007-05-16

Contents

OpenAjax Alliance Interoperability Committee meeting minutes 2007-05-16

Attendees

  • Kin Blas <jblas(at)adobe.com>
  • Gideon Lee <glee(at)openspot.com>
  • Jon Ferraiolo <jferrai(at)us.ibm.com>
  • Kevin Hakman <khakman(at)tibco.com>
  • Ted Thibodeau <tthibodeau(at)openlinksw.com>
  • Bertrand Le Roy <Bertrand.Le.Roy(at)microsoft.com>
  • Bruce Johnson <bruce(at)google.com>
  • Rama Gurram <rama.gurram(at)sap.com>
  • Greg Murray <greg.murray(at)sun.com>
  • Adam Peller <apeller(at)us.ibm.com>
  • David Boloker <boloker(at)us.ibm.com>
  • Howard Weingram <weingram(at)tibco.com>
  • Eddie O’Neill <ekoneil(at)bea.com>

Original Agenda

Minutes

Jon will run through each issue, summarize discussion to date, and call for decision....

Concurring commentary may be ellided in following

Starting with Issue #6 on /member/wiki/OpenAjax_Hub_Specification_Issues

Issue 6: Are events specified by a pair {prefix,EventName} or just by an EventName

  • Resolved: prefix is obsolete; EventName is sufficient (pending ratification from Alex)

Issue 7: Should the Hub's own events be "org.openajax.foo" or "org.openajax.hub.foo"?

  • Resolved:
    1. The Hub's own events will include the string ".hub", such as "org.openajax.hub.registerLibrary".
    2. All of the Hub's APIs on OpenAjax.hub will follow form "OpenAjax.hub.subscribe()" (rather than "OpenAjax.subscribe()")

Issue 8: Should event listener callbacks be allowed to change event information?

  • Discussion:
    • Bertrand: discourage people from modifying event information. Publisher can set a piece of payload to be boolean for cancellation of action.
    • Howard(??): concern regarding asynchronous returns, once modification is allowed.
    • Bruce: should be explicit about synchronous vs asynchronous activity. Slow script warnings are high potential with synchronous.
    • Howard(??): why wouldn't we state that all observers be notified synchronously; if they want to do something asynchronously, it's their lookout (they can post a timer)
  • Resolving:
    1. synchronous blocking;
    2. mutable events allowed but dis-recommended -- consider payloads immutable unless documented otherwise.
  • Resolved: Payload is mutable but OAA will issue guidelines, including dis-recommendation of payload modification by callbacks. Guidelines to be drafted.

Issue 9: OK to remove the bootstrapping and modularization features from Hub 1.0?

  • Resolved: Remove bootstrapping and modularization in Hub 1.0.

Issue 10: How unsubscribe works

  • Discussion:
    • Kin(??): if you have an observer who subscribes to an event multiple times, observer gets n different IDs back. Observer needs to do bookkeeping to track all existing subscriptions for unsubscribing -- cannot wildcard unsubscribe.
    • Jon (and others): putting this bookkeeping into the hub would complicate that substantially -- would require addition of observer ID tracking, among other things
    • Kin(??): it would be nice to be able to say "I want to unsubscribe from everything"
  • Resolved:
    1. OpenAjax.subscribe() will return an opaque handle that contains a unique identifier for that subscription. This handle is what is then passed to OpenAjax.unsubscribe to cancel a particular subscription.
    2. An implementation of the Hub may choose among many approaches in terms of the underlying JavaScript object (string, integer, associative array, etc.) used to hold the opaque handle.
    3. Our reference implementation will follow Howard's suggestion and pass back a string that consists of the topic name followed by a "." followed by a unique integer for the given subscription. By including the topic name, we can leverage random access lookup performance. By including the unique integer, we can distinguish between multiple subscriptions to the same topic name. By using a string, we avoid the risk of live data being modified accidentally by the host JavaScript due to the immutability of strings.

Issue 11: Do we really need/want a scope parameter to OpenAjax.subscribe()?

  • Discussion:
    • Bertrand: dropping scope puts the burden on the subscriber, rather than on the hub... but could go either way
    • Kin (Adobe): concurrence... either way
    • Jon: straw poll with group comments
  • Resolved: keep scope, but make it optional changing call to --
OpenAjax.subscribe(name, callback, [scope,] [subscriberData,] [filter])

Issue 12: Should the Hub publish subscribe/unsubscribe announcement events?

  • Resolved: Do not publish an event with each subscribe/unsubscribe, but put a note in the spec that says a future version of the Hub might publish such events. (This takes a minor step towards addressing our inconsistency around publishing an org.openajax.hub.registerLibrary event but not an org.openajax.hub.subscribe event.)

Issue 13: mooted by Issue 12 resolution....

Issue 14: (New on 05/16/07) Should pub/sub callbacks be passed the list of tokens?

  • Discussion
    • Howard: interfaces should be consistent. Topicname passed to subscribe and publish functions; callbacks and filters should do the same (not use arrays)...
    • various: comparisons by associative strings? flat string compares? switch statements? repeats of split() parsing of string...
    • Howard(??): subscriber is rarely going to split the string
    • Jon: tabled for now, running out of call time....

Next meeting

June 6.

Personal tools