serverIdl::Server Interface Reference

This is an easy to use, message based, communication middleware interface. More...

List of all members.

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.


Detailed Description

This is an easy to use, message based, communication middleware interface.

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:

See also:
JMS - Java Message Service, http://java.sun.com/products/jms/

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.


Member Function Documentation

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.

Parameters:
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
Returns:
oid The subscription ID of your subscribed message(s)
If you subscribed using a query, the subscription ID of this
query handling object is returned.
You should use this subId if you wish to unSubscribe()
If no match is found, an empty string "" is returned.
See also:
addListener in Java event model

addObserver in Java observer pattern

the interface.subscribe requirement

MessageUnitArr serverIdl::Server::get ( in XmlType  xmlKey,
in XmlType  qos 
) raises (XmlBlasterException)

Synchronous read-access methods This is the pull modus.

Parameters:
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
Returns:
Contains a sequence of 0 - n MessageUnit structs with its qos infos
See also:
the interface.get requirement

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

Parameters:
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
Returns:
XML string array with the subscription id's in XML markup
See also:
the interface.unSubscribe requirement

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.

Parameters:
msgUnit Contains a MessageUnit struct
Returns:
String with the key oid of the msgUnit If you let the oid be generated, you need this information for further publishing to the same MessageUnit
Rejected Messages will contain an empty string ""
See also:
the interface.publish requirement

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()

Parameters:
msgUnit Contains a sequence of 1 - n MessageUnit structs
Returns:
String array with the key oid's, corresponding to the index of msgUnitArr
If you let the oid be generated, you need this information for further publishing to the same MessageUnit array
Rejected Messages will contain an empty string ""
Exceptions:
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()

Parameters:
msgUnit Contains a sequence of 1 - n MessageUnit structs

XmlTypeArr serverIdl::Server::erase ( in XmlType  xmlKey,
in XmlType  qos 
) raises (XmlBlasterException)

Erase a MessageUnit.

Returns:
String array with the key oid's which are deleted
See also:
the interface.erase requirement

string serverIdl::Server::ping ( in string  qos  ) 

Ping to check if xmlBlaster is alive.

This ping checks the availability on the application level.

Parameters:
qos Currently an empty string ""
Returns:
Currently an empty string ""


The documentation for this interface was generated from the following file: