Publish Subscribe Content Notifications

Document created by resplin Employee on Jun 6, 2015Last modified by alfresco-archivist on Aug 31, 2016
Version 4Show Document
  • View in full screen mode

Obsolete Pages{{Obsolete}}

The official documentation is at: http://docs.alfresco.com



NOT FINISHEDExtension IdeasNotification ServiceDesign Discussions
NOTE:  This page relates to general design discussions and extension ideas. These have not been targeted for any specific release.


Project Description


Provide the basics of a notification system which can in turn support advanced functionality like publish subscribe content deployment.



Note: I will refactoring the subscription component for sure.
[Alfresco Notification Service Proposal]

[Alfresco Subscription Manager Proposal]

Also need to line this up with the the proposal for Notification Service and Subscription Service


Project Requirements/Objectives


<discuss the project requirements and objectives>


Initial Project Scope


Discussion of Design/Implementation Approach


The following section is a discussion of the basic interfaces that could be used to form the basis of a notification mechanism.  Please feel free to comment, suggest and point out issues. Feel free to post these comments in-line.

thumb|800px


Basic M2 Interfaces


cm:observable


cm:observable is a marker interface applied as an aspect to repository nodes which can cause a notification.  'cm' may not be the appropriate name space for this aspect.  'sys' may be a better place for this aspect.


API


Notification Services


Notification Services is the basic interface through which components outside of the notification internals interact with 'Notification.' 

Notification Services should provide at least:


  • createNotification(...)
  • sendNotification(...)
  • subscribeForNotification(....)
  • unsubscribeForNotification(....)

Notification


Notification is the base class for notifications.  Concrete notifications implement this interface or abstract class.

Possible Implementations are:


  • Content Notifications
  • User Notifications
  • Task / Workflow Notifications

Notification Factory


Depending on which internals are used to satisfy the Notification Services interface different Concrete Notification implementations may be appropriate.  Notification Services may delegate the responsibility of creating Notification(s) to a implementation that meets this interface.


Notification Queue


Notification Queue (Topic) may be used by the notification services as a mechanism to delegate / deliver notifications. The basic implementation might have on Notification Queue which acts as a system wide sink (seen in illustration) We may want to require that queue notification does not block.


  • enqueueNotification(...)



Implementation may wish to address


  • Persistence of Notifications
  • Duplicate notifications

Subscription Manager


Subscription Manager is an interface which is implemented by implementations which handle subscriptions.  Notification Service can delegate the responsibility of managing notification subscriptions to this interface. 


  • subscribeForNotification(...)
  • unsubscribeForNotification(...)
  • sendNotification(...)

Implementations may wish to address:


  • durable subscriptions

Subscription


A Notification Subscription.


Applications


The following section details a number of use cases and technical details that apply to each case


Push Based Content Publishing


Pushing content to a destination has some drawbacks.  It means the repository has to know 'who' the destination is and 'where' to drop off the payload.  Publish / Subscribe is a much less cohesive, more scalable solution.  However, there are scenarios where it is prudent to push content. 

thumb|800px


Destination


Queued Destination


Destination Manager


Integration with Workflow


Integration with Notification


FTP Specialization


Publish Subscribe Based Content Publishing


thumb|400px


JMS Notification of Update / Web Service Pull Specialization


Additional Notes


publish subscribe and Notification Service

Outcomes