[OpenAjaxInterop] Howard's changes to Hub 1.1 proposal page
Javier H Pedemonte
pedemont at us.ibm.com
Fri Dec 5 11:02:30 PST 2008
Howard Weingram <weingram at tibco.com> wrote on 12/04/2008 05:35:15 PM:
> 1. subscriberData
>
> There are several subscribe() functions.
> OpenAjax.hub.subscribe(): currently takes subscriberData, and I
think
> that we agreed to continue this.
> OpenAjax.hub.Hub.subscribe() in OpenAjax.hub.Hub interface:
> It turns out that this is kind of useful. It allows
> "static" functions to receive subscription data.
>
> I guess I can take it out, but I am very tempted to leave it in.
> Otherwise programmers tend to be forced to create lots of callback
> functions, even when the app does not need this.
Sounds fine to me. Let's keep it in.
> 3. getParameters()
>
> I added this to ManagedHub because I have information on the
> ManagedHub that containers are very likely to use.
>
> a. Containers should be able to use their Managedhub's
> onSecurityAlert callback to notify the Manager of
> security violations. There is no standard API to
> get this function, and rather than add a separate
> function to the MH API (getOnSecurityAlert) I
> think that being able to get the hub params and
> extract the onSecurityAlert callback via its well-
> known param name is a good thing. Note that Container
> is not allowed to access ManagedHub private interfaces,
> so in order to call MH's security alert callback, there
> must be a public way to get this callback.
>
> b. I have added a "scope" parameter to the params in the
> MH constructor. Containers should be able to use
> their ManagedHub's scope parameter for onConnect,
> onDisconnect, and the manager's onSecurityAlert
> callbacks. As above, there is no MH.getScope(), just
> getParams(), which returns the params object, from
> which you can get scope via "params.scope".
OK, this sounds fine, but we'll definitely have to explain this somewhere,
maybe in a "tips" or "best practices" page.
> 5. subscribe() disallowed in onSubscribe()
>
> First a tangent: there are several scenarios on the subscribe side.
>
> a. ManagedHub.subscribe() successful
>
> Returns SubscriptionHandle
>
> b. ManagedHub.subscribe() fails due to bad topic or ManagedHub is
> being cleaned up and permits no more subscribe operations.
>
> Throws an appropriate exception
Then we should add something like "NotAllowed" to OpenAjax.hub.Error.
> c. HubClient.subscribe() successful
>
> Returns SubscriptionHandle
>
> d. INLINE HubClient.subscribe() causes Manager to call onSubscribe,
> which returns false, causing request to be denied.
>
> Before subscribe returns, onDone is synchronously invoked
> to report the error. Then subscribe() automatically destroys
> the dead SubscriptionHandle and returns null.
>
> e. FIM/POSTMSG HubClient.subscribe() causes Manager to call
> onSubscribe, which returns false, causing request to be denied.
>
> Subscribe returns a SubscriptionHandle, because we cannot
> tell yet whether the operation succeeded or failed.
> Some time after subscribe returns, the subscription's
> onDone is invoked to report the error, after which the
> SubscriptionHandle is automatically destroyed.
Sounds good.
> 5a. Now the comment about Publish:
>
> I did not include this in my first revision, but in one
> implementation I have an optional parameter that can be included
> in the params for any ManagedHub or HubClient contructor. This
> parameter is a callback for handling asynchronous warnings.
>
> params = {
> onPublish: ...,
> onSubscribe: ...,
> onSecurityAlert: ...,
> onScope: ...,
> onWarning: ...
> }
>
> This callback is used when something that is not a serious
> security error occurs asynchronously.
>
> Or, we could simply turn onSecurityAlert into onError, and
> have it called in these cases too; the code would then need
> to check the error code to see if the problem were serious.
Yes, I am all for having a single onError function that handles errors and
security alerts. And I like sending an error if publish fails, but not
sure if we should do so if publish is denied. The way I see it, the
clients are blind as to what the manager is doing. If the manager chooses
to disallow a pub/sub, is there any reason to tell the client?
Javier H Pedemonte
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://openajax.org/pipermail/interop/attachments/20081205/60ce07b0/attachment.html
More information about the interop
mailing list