A first data store is provided for storing individual subscriptions,
including match criteria and an action specification. A second data store
is also provided for storing group subscriptions, including a use counter
and a list of pointers to the individual subscriptions. When a new
individual subscription is submitted, it is registered/stored in the
individual subscription data store. Upon registration, its criteria are
checked against the criteria of existing subscriptions in the group
subscription data store. If there is a match, a use counter corresponding
to the matching group subscription is incremented, and a pointer is added
to a list of pointers to associate the matching group subscription with
the individual subscription. If there is not a match, a new group
subscription is added to the group subscription data store, and the group
subscription is registered with the pub/sub engine. A use counter
corresponding to the group subscription is incremented, and a pointer is
added to a list of pointers.