[exprla-devel] RE: [XPL] Issue: XPL will stream XML data ... (was Re: a domain name for XPL)
Status: Pre-Alpha
Brought to you by:
xpl2
|
From: reid_spencer <ras...@re...> - 2002-01-31 09:42:22
|
--- In xpl-dev@y..., "Richard Anthony Hein" <935551@i...> wrote:
Thanks Kurt, for clearing this up; I appreciate it! I clearly was
making
an error in terms of what sync and async really mean. So now that
that
issue is clearer in my mind, the next question is: what is the
terminology
and process of accessing data non-sequentially called, and would this
be
handled by the transfer protocol itself, or be handled by XPL
processes? Or
can it even work the way I was thinking in the first place?
In any case, the revised requirement/design goal should read:
a.. XPL will stream 0 or more streams of heterogeneous data,
including XML
and/or non-XML media types.
(Please feel free to rephrase this to sound better and be more
concise - I
don't like using "stream ... streams" in the same sentence fragment.)
We will keep this open for discussion and vote using the Poll feature
of
egroups, if and when necessary. Once consensus is reached concerning
this
and other requirement/design goal issues, focus on implementation
will fall
into the hands of the most knowledgeable in this area.
Richard Anthony Hein
-----Original Message-----
From: Kurt Cagle [mailto:cagle@o...]
Sent: July 5, 2000 1:26 PM
To: xpl@e...
Subject: Re: [XPL] Issue: XPL will stream XML data ... (was Re: a
domain
name for XPL)
Richard,
Typically, asynchronous is not the same as non-sequential. A
synchronous
stream is one in which the processing thread effectively locks any
other
threads until the stream has completely loaded, while an asynchronous
stream
is one in which the processing thread relinquishes control to other
threads
and works in the background. The upshot of this is that a synchronous
stream
can be loaded through a single call, but it means that NOTHING else
happens
until the stream completely loads:
myDoc.async=false
myDoc.load "mySource.xml"
write myDoc.xml
The code in the above case will work automatically, but there will
be a
(potentially lengthy) delay until the file loads before the write
statement
executes. On the other hand:
myDoc.async=true
myDoc.load "mySource.xml"
write myDoc.xml
will likely generate an error (or at the very least display
nothing) since
the document may not have finished loading before the write call is
made. An
asynchronous stream usually relies on some kind of even binding
mechanism.
For example:
function outputDoc()
if readyState="complete" then
write myDoc.xml
end if
end function
myDoc.async=true
myDoc.load "mySource.xml"
myDoc.onreadyStateChange=outputDoc
(this is pseudo code here, but the idea holds) will call the
function
outputDoc any time the ready state of the XML document changes, and
will
output the contents when the document has completely loaded.
Asynchronous
programming is more complicated to write, but it makes for more
responsive
code.
-- Kurt
----- Original Message -----
From: Richard Anthony Hein
To: xpl@e...
Sent: Wednesday, July 05, 2000 10:12 AM
Subject: [XPL] Issue: XPL will stream XML data ... (was Re: a
domain
name for XPL)
I made a new thread for this topic, and encourage people to make
new
threads for specific issues so we can have some order when discussing
them,
as they respond to individual points. Here I will discuss and open
for Q&A
the issue of XPL streaming data.
-----Original Message-----
From: me@m... [mailto:me@m...]On
Behalf Of Jonathan Burns
Sent: July 5, 2000 9:15 AM
To: xpl@e...
Subject: Re: [XPL] Re: a domain name for XPL
Richard Anthony Hein wrote:
a.. XPL will stream XML data, in an asynchronous and/or
synchronous format, and support multiple streams of heterogeneous
data,
including non-XML media types.
I support this as a requirement, except that I'm not sure what
"synchronous" and "asynchronous"
mean in context here.
From my simple hardware background, "synchronous" means:
multiple
processes are going on;
their outputs must be combined, and delivered in a correct
order; to
ensure this, processes are
constrained to open for input or output only on logical
conditions,
which are dependent on a
global counter or timestamping system.
[RAH]
I will try to explain what I had in mind. As I understand it,
data can
be input synchronously or asynchronously. Synchronous would be
according to
your definition, and async means that streams of data can arrive
out-of-order and processed independently where possible. So for
example, if
you have streaming video the frames themselves may not arrive in
order, and
they may even be decoded out of order. The only point in which they
are
assembled occurs after processing of the data, then it's sent to the
player
for output. In a peer-to-peer network, this should mean it's
possible to
get frame 1 from one location and frame 2 from another, out of
sequence,
choosing where to download from based on transfer speed, decode each
one of
them when they arrive, independently, and then assemble them.
Perhaps this
isn't an XPL issue per se, but a transfer protocol issue.
In a synchronous method, the frames must be downloaded in order
(correct
me if I am wrong). So I would have to wait for frame 1 to be finished
downloading before I can retrieve frame 2, decode frame 1 first, then
2, and
finally assemble them. Each step could really be either async or
sync,
depending on the application and data. XPL should have the ability to
stream data in either fashion, I think. For example, I can set async
download and decoding for the first 30 frames that make up 1 second of
video, but get the sets of 30 frames in order (sync.). So each
second is
downloaded, decoded and sent to the player in order, but the frames
that
make up the second are downloaded in arbitrary order.
I don't really know if this is simply a protocol issue, but I am
pretty
sure that we have to make XPL to be able to recognize the difference,
to be
able to tell processes what to do with the data, and a way to "mark"
parts
of a data stream in a way that makes it easy to know where each piece
belongs. However, I don't know much about it, so I differ to the
better
judgement of my peers, especially Lucas on this one, since he has been
working on protocol issues at a low level. I think this is his
place, not
mine, to say and correct.
Is this the sense of things for Web protocols? Lucas? Kurt?
[RAH]
Yes, let the protocol people focus on this; I think I'll step
away on
this one, and let them work on it.
More to come on the other topics - after lunch!
Richard Anthony Hein
(I got a new job today! Actually, it's not great, but I need a
temporary job to fill in the gaps. It's not even programming, but at
least
it'll pay the bills, and I get to go out to all kinds of summer
events.
Plus it's for the Ontario Provincial Police, so I am hoping I can
slip in
there with some XML apps for collecting and processing data in the
field
using PDAs - they have TONS of paperwork. :-)
To unsubscribe from this group, send an email to:
xpl-unsubscribe@o...
----------------------------------------------------------------------
------
--
----------------------------------------------------------------------
------
--
To unsubscribe from this group, send an email to:
xpl-unsubscribe@o...
--- End forwarded message ---
|