[OPEN-ILS-DEV] Which OpenSRF gateway should I use?
Mike Rylander
mrylander at gmail.com
Wed Sep 21 13:01:19 EDT 2016
On Wed, Sep 21, 2016 at 11:51 AM, Bill Erickson <berickxx at gmail.com> wrote:
>
> On Wed, Sep 21, 2016 at 10:44 AM, Bill Erickson <berickxx at gmail.com> wrote:
>>
>>
>> /osrf-http-translator provides a lower level OpenSRF API and supports
>> streaming responses, but its use is no longer encouraged, because the
>> underlying mechanism (multipart/x-mixed-replace) is deprecated and only
>> works with our old version of XULRunner. This interface will likely be
>> deprecated along with the XUL client.
>>
>
> Couple of additional comments for those following along...
>
> 1. The multipart/x-mixed-replace part of the translator only affects its
> ability to stream results. Without this, it's less efficient / fast, but
> still works. You just can't use it for API calls that return large result
> sets or for real-time use of individual results. The OpenSRF API/session
> support works regardless.
>
> 2. Various HTML interfaces outside of the XUL client proper (primarily ACQ
> and admin UI's) use the translator. All of these would have to be ported to
> websockets before we could consider deprecation.
>
Meaning, in the end, it'll be a while before the translator goes away,
or is even deprecated except for streaming.
In addition to the core users, it's simpler (admin- and code-wise) on
both ends than WebSockets for little things and has the benefit of
being able to supply transactional semantics even in a clustered
environment, which I don't think our WebSockets implementation can do
today (though, if it can, please do correct me!).
Some background on the technology: even though some browsers don't
support multipart/x-mixed-replace (most, other than IE, do at least
for images -- it's used for simple webcam apps) we were far from the
first to use it, and it's fairly trivial to implement on the client
side. FWIW, curl supports it, so I wouldn't be too surprised to find
clients in the wild using it.
All that said, WebSockets is way better and if you write a new
(future) client that uses the translator and multipart/x-mixed-replace
for streaming then you are a bad person and you should feel bad. :)
--Miker
More information about the Open-ils-dev
mailing list