xmlBlaster gets its name from blasting XML out in the world.
Access control list can be achieved through QOS tags.
The server should be able to have several thousands of clients connected.
Therefore the One Thread per Client policy wasn't used.
Many operating systems doesn't handle thousands of threads very well.
The problem to recognize a client again is resolved using a unique
server IOR for every client, allowing the server to determine the client
thru its calling IOR.
These unique IORs are mapped to the same POA servant with the use of
the MULTIPLE_ID POA policy.
The different CORBA IDL methods have different performance contraints:
Publish/Subscribe Method | Perfomance Requirement | Comment |
publish() | high | A ticker may feed every second new data The Ticker should use the <key oid=""> for identifying the message The xmlBlaster should have a quick lookup for key-oid (Map) |
get() | high | For examples many client over internet/intranet by manual invokation (e.g. a mouse click by a user) The get may use complicated query syntax (SQL,XQL,XSL,REGEX) |
subscribe() | medium | Usually a subscribe() is not invoked too often, it is invoked normally by manual invokation (e.g. a mouse click by a user) The subscribe may use complicated query syntax (SQL,XQL,XSL,REGEX) |
unsubscribe() | medium | see subscribe() |
erase() | low | Erasing a Message completly is usually seldom |
None of the above should require linear search.
It is the responsibility of the clients to agree on a hierarchical indexing schema,
for example the following two XmlKeys of two MsgUnits have similar XML tags:
Note that the data itself (content) is not shown
<key oid="Number1"> <Airport icao="EDDI"> <Runway id="1"> <WindVeloc w_id="2"> </WindVeloc> </Runway> </Airport> </key> |
The XmlBlaster could than reorganize the hierarchy for performant lookup:
<Airport icao="EDDI"> <Runway id="1"> <WindVeloc w_id="2" oid_reference="Number1"> </WindVeloc> <WindVeloc w_id="1" oid_reference="Number2"> </WindVeloc> </Runway> </Airport> |
The
oid_referenceis added by xmlBlaster during DOM reorganizing,