[
Lists Home |
Date Index |
Thread Index
]
Hello,
I just implemented an XML based protocol of interactive device control.
I am still rather new to XML.
I am looking for a funny parser that would speed up development of such
a system significantly.
The Problem:
A certain part of reality is modelled as an XML file. It has got a size
of about 100KB and is stored in the RAM of a server. The Server is
connected to reality and whenever reality changes it changes the XML
file accordingly. Clients want to know about reality and thus download
the XML file from the server.
To keep informed they have to poll rather often and this takes a lot of
bandwidth and this is not good.
But usually reality does not change quickly and only a 1KB/minute
actually changes in the XML file. So what about the server sending parts
of the XML file. Only the ones that just changed. This way the Clients
don't have to poll anymore, and we get rid of the bandwidth problem. Of
course the Clients still have to load the file at the beginning but this
is only done once.
(Clients do not have any write access to the XML file on the server and
they will never have any, neither do they need. But they can do RPCs to
run processes on the server that change reality and thus the XML file.)
So I want a parser that stores the XML document in a DOM like model at
the Client side. And updates this based on the partial change info it
gets from the Server. Furthermore it has to have a SAX like interface so
that clients can install callbacks for certain change events.
So basically I want to send parts of an XML document and keep the full
document in the cache on the client side.
Is there anything like this yet?
Ok maybe you have got other solutions to this problem, that you would
like to suggest. But please make sure that it actually solves the
problem and is as easy as XML, before telling me that I should model
reality in a database rather than an XML file. If you still think I
should do so, feel free to tell me.
Cheers Dirk
PS:
Some pseudo XML from the Server, just to understand my problem a bit
better, naming scheme would be better in reality :-)
"blah blah blah" stands for a lot XML that is there for some reason.
The 100KByte file send at the beginning:
<house>
<livingroom>
blah blah blah
<tv>
<channel int=6>
</channel>
blah blah blah
</tv>
blah blah blah
</livingroom>
<kitchen>
blah blah blah
</kitchen>
blah blah blah
</house>
Someone changed the channel at the TV an we need only a few bytes:
<house>
<livingroom>
<tv>
<channel int=6>
</channel>
</tv>
</livingroom>
</house>
|