/psxml

Publish Subscribe with XML

Primary LanguageC++OtherNOASSERTION

PSXML

AUTHOR
David Hinkes

PURPOSE
PSXML is a publish-subscribe "middleware" product which harnesses the power 
of XML & XPath.

MOTIVATION
There are many data distribution products ("middleware") available, however
PSXML addresses several problems with existing solutions:
* There exists a plethora of RPC based packages, however few offer a 
  native and intuitive-to-use publish/subscribe (observer pattern) capability.
* Most Publish/Subscribe "middlware" products deal poorly with the client data
  being distributed.  Most products fall into one of the following two 
  categories:
  - Blindly passes around binary blobs and has no understanding of the message
    payloads.  This often creates more error-prone work for clients as they are
    required to serialize thier objects manually.  This category includes MTM,
    JMS, et al.
  - Makes use of a propreitary message specification format (meta-language),
    such as IDL.  This works well, but usaly requires auto-generated code.
    Examples include NDDS, CORBA, ICE, et al.
* Inability to subscribe based on the contents of the client data.  Most
  solutions make use of a "Topic" paradigm in order to discriminate between
  different virtual channels of data.
* Several solutions are also tied to a specific software language.  Some
  examples include DRB and JMS.

PSXML takes a novel approach to implement a pub/sub software framework:
* Designed from the bottom up to provide pub/sub functionality - nothing more
* Intuitive software API
* Use of XML for client message payloads
* Client subscriptions via XPath expressions, acting as filters on the message
  contents
* Support for multiple software languages
* Open source software

Given the above, only one "middleware" product provides similar functionality:
xmlblaster (http://xmlblaster.org).