250 likes | 425 Views
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)
E N D
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 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
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 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 out Notification 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)
Content Types • Two content types provided out-of-the-box: • Simple • Event
Flexible Content Types • To add a new content type: • Write the sample XML for inside of the <content> tag • Write the XSD to validate your content type • Write the XSL to transform your content type during rendering • 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