[Building Sakai] Proposed change in courier for 2.9.x

Jim Eng jimeng at umich.edu
Wed Feb 9 06:31:00 PST 2011


We would like to make some small changes in the courier module to provide a registry for "delivery providers" in the CourierService.   The changes are described in JIRA as SAK-19918 [1]. A patch file is included in the JIRA ticket showing the extent of the proposed changes.  

The intent of this work is to make it possible for Sakai services and tools to use the courier to deliver small javascript payloads to users' browsers without attaching additional observers to users' sessions.  We plan to use this capability in implementing a simple mechanism to broadcast global messages to users of our Sakai instance, CTools, but at this time we are asking for review of the changes to the courier module rather than the webapp that will use it.  

The changes we propose are as follows:

1) Addition of an interface, org.sakaiproject.courier.api.DeliveryProvider, with one method, getDeliveries(String sessionId, String placementId), which returns a list of objects of type org.sakaiproject.courier.api.Delivery.     

2) Addition of two methods in org.sakaiproject.courier.api.CourierService: registerDeliveryProvider(DeliveryProvider provider) and getDeliveryProviders(), along with implementation of those methods in org.sakaiproject.courier.impl.BaseCourierService.

3) Changes in org.sakaiproject.courier.tool.CourierTool.doGet() to retrieve the list of DeliveryProviders from CourierService and check for deliveries from DeliveryProviders as well as from CourierService when requests for courier refreshes are processed.

We believe that these changes will have insignificant effect on the performance of the courier.  We plan to load-test that assertion well before 2.9.x is branched from trunk later this year.  We will modify the design or back it out if we find any impact.  We will load-test several conditions looking for impacts of this work: (1) the current code, (2) the revised code with no registered delivery providers, (3) the revised code with one or more registered providers, and (4) the revised code with one or more registered providers which are sending deliveries. We will publish our results to sakai-dev and report them in the JIRA ticket.  

If we do not hear any objections before February 16, we will merge the proposed changes to trunk of the courier module.  We will consider suggestions to improve the proposed code changes. 

Thanks.

Jim Eng
University of Michigan 


[1] https://jira.sakaiproject.org/browse/SAK-19918


More information about the sakai-dev mailing list