The present invention provides a method and system for managing
subscriptions in a software system. The method includes sending a request
to a child notification publisher to send a notification message to at
least one subscriber on the child, notification publisher's subscriber
list; sending the notification message to the subscribers on the child
notification publisher's subscriber list; and sending a request to a
parent notification publisher to send the notification message to the at
least one subscriber on the parent notification publisher's subscriber
list. The method and system in accordance with the present invention
utilizes a publisher tree for managing subscriptions. This tree allows
event subscribers to request subscriptions at a granular level without
requiring the event subscribers who do not need a granular subscription to
have multiple subscriptions to receive whole categories of messages from
event sources. Further, this tree does not require the event sources to
know anything about the event subscribers or what messages they are
interested in receiving. Event sources only need to know the most granular
level of subscriptions that the system supports, i.e., the leaf nodes of
the tree. The structure of the publisher tree may thus be dynamically
altered without the need to rewrite the programs at the event sources and
subscribers. If the leaf nodes change, then the event sources will require
minimal modifications, and the event subscribers will require updating.
These changes may be implemented at run-time. The present invention also
requires less event processing time and memory than conventional methods.
De onderhavige uitvinding verstrekt een methode en een systeem om abonnementen in een softwaresysteem te beheren. De methode omvat het verzenden van een verzoek naar een uitgever van het kindbericht om een berichtbericht naar minstens één abonnee op het kind te verzenden, de abonneelijst van de berichtuitgever; het verzenden van het berichtbericht naar de abonnees op de de abonneelijst van de uitgever van het kindbericht; en verzendend een verzoek naar een uitgever van het ouderbericht om het berichtbericht naar de minstens één abonnee op de de abonneelijst van de uitgever van het ouderbericht te verzenden. De methode en het systeem overeenkomstig de onderhavige uitvinding gebruiken een uitgeversboom voor het beheren van abonnementen. Deze boom staat gebeurtenisabonnees toe om om abonnementen op een korrelig niveau te verzoeken zonder de gebeurtenisabonnees te vereisen die geen korrelig abonnement nodig hebben om veelvoudige abonnementen te hebben om gehele categorieën van berichten uit gebeurtenisbronnen te ontvangen. Verder, vereist deze boom niet de gebeurtenisbronnen om om het even wat over de gebeurtenisabonnees te kennen of welke berichten zij in het ontvangen geinteresseerd zijn. De bronnen van de gebeurtenis moeten slechts het meest korrelige niveau van abonnementen kennen dat de systeemsteunen, d.w.z., de bladknopen van de boom. De structuur van de uitgeversboom kan zo dynamisch zonder de behoefte worden veranderd om de programma's bij de de gebeurtenisbronnen en abonnees te herschrijven. Als de bladknopen veranderen, dan zullen de gebeurtenisbronnen minimale wijzigingen vereisen, en de gebeurtenisabonnees zullen vereisen bijwerkend. Deze veranderingen kunnen bij run-time worden uitgevoerd. De onderhavige uitvinding vereist ook minder tijd van de gebeurtenisverwerking en geheugen dan conventionele methodes.