Public Member Functions | |
XmlType | subscribe (in XmlType xmlKey, in XmlType qos) raises (XmlBlasterException) |
Asynchronous read-access method. | |
MessageUnitArr | get (in XmlType xmlKey, in XmlType qos) raises (XmlBlasterException) |
Synchronous read-access methods This is the pull modus. | |
XmlTypeArr | unSubscribe (in XmlType xmlKey, in XmlType qos) raises (XmlBlasterException) |
if a key was subscribed forever, you can cancel your subscription with following method | |
XmlType | publish (in MessageUnit msgUnit) raises (XmlBlasterException) |
Write-Access Method. | |
XmlTypeArr | publishArr (in MessageUnitArr msgUnitArr) raises (XmlBlasterException) |
Write-Access Method This triggers the method update() if observed by somebody If the given key doesn't exist, it will be automatically added, so this covers the SQL'ish INSERT and UPDATE. | |
oneway void | publishOneway (in MessageUnitArr msgUnitArr) |
Publish a message to the server. | |
XmlTypeArr | erase (in XmlType xmlKey, in XmlType qos) raises (XmlBlasterException) |
Erase a MessageUnit. | |
string | ping (in string qos) |
Ping to check if xmlBlaster is alive. |
It allows event-driven instant communication between separate modules.
COMMENTS: It is generic to avoid future changes to the IDL.
This server uses the benefits of both technologies XML and CORBA.
It is a compromise between compile time type checking (CORBA) and runtime type checking (XML).
Runtime checking allows easier maintenance and migration to newer xmlBlaster Versions, compile time checking of invariant interfaces allows enhanced performance and early error checking.
Authentication and Authorization is supported with the separate interface AuthServer.
The <key oid=""> strings have to be handled in a hierarchical manner to avoid namespace conflicts or may be generated (as number) by the xmlBlaster-server.
BENEFITS: xmlBlaster allows instant communication between different uncoupled modules spread over the Internet (publish / subscriber and point to point framework).
For example:
RELATED DESIGN PATTERNS:
JMQ - A reference implementation of JMS, http://www.sun.com/workshop/jmq/
JNDI - Java Naming & Directory Interface, www.javasoft.com/products/jndi
Observer Pattern, Gamma et.al
CORBA Property Service, http://www.omg.org
CORBA Notification Service ftp://ftp.omg.org/pub/docs/telecom/98-01-01.pdf
CORBA Event Service (push/pull concepts), http://www.omg.org
CORBA Design Patterns, Mowbray Thomas J. et al. 'Dynamic Attributes'
CORBA Messaging Service
Addressless message-event-middleware pattern
Definition at line 202 of file xmlBlaster.idl.
XmlType serverIdl::Server::subscribe | ( | in XmlType | xmlKey, | |
in XmlType | qos | |||
) | raises (XmlBlasterException) |
Asynchronous read-access method.
The results are returned to the Client-Callback interface via the update() method. You need to implement the method BlasterCallback.update() This is the push modus.
xmlKey | Key with attributes allowing XPath or EXACT selection See xmlBlaster/src/dtd/XmlKey.xml for a description | |
qos | Quality of Service, flags to control subscription See xmlBlaster/src/dtd/XmlQoS.xml for a description |
addObserver in Java observer pattern
MessageUnitArr serverIdl::Server::get | ( | in XmlType | xmlKey, | |
in XmlType | qos | |||
) | raises (XmlBlasterException) |
Synchronous read-access methods This is the pull modus.
xmlKey | Key with attributes allowing XPath or EXACT selection See xmlBlaster/src/dtd/XmlKey.xml for a description | |
qos | Quality of Service, flags to control get() See xmlBlaster/src/dtd/XmlQoS.xml for a description |
XmlTypeArr serverIdl::Server::unSubscribe | ( | in XmlType | xmlKey, | |
in XmlType | qos | |||
) | raises (XmlBlasterException) |
if a key was subscribed forever, you can cancel your subscription with following method
xmlKey | Key contains the subscription ID returned from subscribe() See xmlBlaster/src/dtd/XmlKey.xml for a description | |
qos | Quality of Service, flags to control canceling of a subscription See xmlBlaster/src/dtd/XmlQoS.xml for a description |
XmlType serverIdl::Server::publish | ( | in MessageUnit | msgUnit | ) | raises (XmlBlasterException) |
Write-Access Method.
This triggers the method update() if subscribed (observed) by somebody or if addressed as Point-to-Point (PtP). If the given key oid doesn't exist, it will be automatically added, so this covers the SQL'ish INSERT and UPDATE.
msgUnit | Contains a MessageUnit struct |
XmlTypeArr serverIdl::Server::publishArr | ( | in MessageUnitArr | msgUnitArr | ) | raises (XmlBlasterException) |
Write-Access Method This triggers the method update() if observed by somebody If the given key doesn't exist, it will be automatically added, so this covers the SQL'ish INSERT and UPDATE.
For performance or transaction reasons, you can send a whole array of MessageUnit with one invocation of publishArr()
msgUnit | Contains a sequence of 1 - n MessageUnit structs |
On | severe problem an XmlBlasterException is thrown, all messages of this array should be treated as lost |
oneway void serverIdl::Server::publishOneway | ( | in MessageUnitArr | msgUnitArr | ) |
Publish a message to the server.
The oneway variant may be used for better performance, it is not returning a value (no application level ACK).
For performance reasons, you can send a whole array of MessageUnit with one Invocation of publishOneway()
msgUnit | Contains a sequence of 1 - n MessageUnit structs |
XmlTypeArr serverIdl::Server::erase | ( | in XmlType | xmlKey, | |
in XmlType | qos | |||
) | raises (XmlBlasterException) |
Erase a MessageUnit.
string serverIdl::Server::ping | ( | in string | qos | ) |
Ping to check if xmlBlaster is alive.
This ping checks the availability on the application level.
qos | Currently an empty string "" |