Kuali Enterprise Notification
Aaron Godert (Sr. Software Architect, Cornell University)John Fereira (Programmer/Analyst, Cornell University)
Introducing KEN Kuali Enterprise Notification (KEN) provides
a single list for all university related communications Workflow items (KEW) Non-workflow items (KEN)
Examples of non-workflow items: Your book is overdue A concert is coming up on campus Graduation check list to all Seniors
A Single “Action List”!
A Kuali Rice Component There are several
middleware components that make up Rice
KEN is one of them Each component works
with the others to provide complementary technical functionality
A Communication Broker
Functional Goals Eliminate sifting through email Quickly find what you need, to go about your
university related business Provide a controlled environment
Eliminate unwanted messages, prevent duplication Integrated user and group management
Audit trail Centralized communication broker More robust preference and searching capabilities
Functional Requirements Three types of notifications:
1.) Things I have to do• Electronically (online) - KEW• Manually (physically) - KEN
2.) Things I need to know about• “School is closed - Snow Day!!!”
3.) Things I want to know about• “Dr. Nobel Laureate is coming to speak to the
Computer Science club on…”
Functional Requirements Target groups of people and specific people Control delivery dates Notifications automated by systems - s2s Manual entry of notifications - generic message
form Event notification
Integration with personal calendars
Multiple delivery end-points Email Text message to mobile phones
Potential Consumer Applications Bursar Applications Registrar Applications Library Applications
Overdue checkout item notices Item recall notices Event announcements
Technical Goals Adhere to SOA principles Develop collaboratively using the
Community Source model Build using standard Open Source Java
technologies Re-use technical products in Kuali
The Architecture
The Tools Java SDK 1.5+ Spring Framework
Service interface and implementations Spring MVC
Apache OJB Object relational mapper
Oracle 10g
The Tools OpenSymphony Quartz
Spring integration Jetty JSP/JSTL XML/XSD
DOM/Xpath XStream
XSLT Apache Axis
Sending a Notification: s2s Java API - Java services
POJO in and POJO outNotification n = new Notification();n.addRecipient(“TestUser1”);…NotificationResponse response = notificationService.sendNotification(n);
String in and String out (XML)String notificationXml = <construct me some XML>;String response = notificationService.sendNotification(notificationXml);
Web service invocation String in and String out (XML)
Notification Request as XML
Content Types Two content types provided out-of-
the-box: Simple
Event
Flexible Content Types To add a new content type:
1. Write the sample XML for inside of the <content> tag
2. Write the XSD to validate your content type
3. Write the XSL to transform your content type during rendering
4. Register the new content type in the system administrator’s UI
Flexible Delivery Endpoints Java interface to implement
Specify properties that would get set by a user in their preferences
Property values would be used to actually deliver the message
• Mobile phone #• Email address
Implement the “deliver()” method• Call out to an SMS API• Call out to an Email API
Project Status KEN 0.9 delivered - May 2007 Production ready; initial version Available at http://ken.kuali.org (click
documentation link) KEN 0.9.1 - late Summer KEN 1.0 - late Fall 2007
Features in 0.9 Send notifications via s2s API/WS call Send simple/event notifications via simple
web form (workflow enabled) Users see notifications alongside of workflow
items in a more general action list Search for by channel, type, producer, sender,
and priority - save for later use Take action on notifications -
clearing/acknowledging Click on notification to see more details about the
notification• View a log for the notification (who, what, where, when,
why)
Features in 0.9, continued Users able to set up multiple delivery types
OOTB with an email tickler Flexible content types (XML/XSD/XSL) Basic authorization - Notification Channel to
Notification Producer mappings CAS end user authentication Basic user and group management Notification message reviewers Some administrative UIs
Roadmap 0.9.1
Better deployment of delivery types Bug fixes Small enhancements SMS delivery end point
1.0 Better Rice integration UIs built using KNS sendNotification() exposed on KSB
• Acegi security• Web Service exposure (XFire)
Consistent configuration (Spring based)
Roadmap, continued Out there
Portlets - action list and preference management Attachments s2s revocation of notification messages Ability to schedule recurring messages
Full roadmap available at: https://test.kuali.org/confluence/display/KEN/Roadmap
Full feature list available at: https://test.kuali.org/confluence/display/KEN/Features
Demo https://test.kuali.org/confluence/display/KEN/Demo
Interested? Looking for contributors on the Kuali
Rice effort and KEN Looking for developers to write test
clients in various technologies Always open to new requirements More information: http://ken.kuali.org Contact information:
http://rice.kuali.org/contact.html