kuali enterprise notification aaron godert (sr. software architect, cornell university) john fereira...

25
Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Upload: buddy-brian-perkins

Post on 29-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Kuali Enterprise Notification

Aaron Godert (Sr. Software Architect, Cornell University)John Fereira (Programmer/Analyst, Cornell University)

Page 2: 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

Page 3: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

A Single “Action List”!

Page 4: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 5: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

A Communication Broker

Page 6: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 7: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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…”

Page 8: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 9: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Potential Consumer Applications Bursar Applications Registrar Applications Library Applications

Overdue checkout item notices Item recall notices Event announcements

Page 10: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 11: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

The Architecture

Page 12: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

The Tools Java SDK 1.5+ Spring Framework

Service interface and implementations Spring MVC

Apache OJB Object relational mapper

Oracle 10g

Page 13: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

The Tools OpenSymphony Quartz

Spring integration Jetty JSP/JSTL XML/XSD

DOM/Xpath XStream

XSLT Apache Axis

Page 14: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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)

Page 15: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Notification Request as XML

Page 16: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Content Types Two content types provided out-of-

the-box: Simple

Event

Page 17: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 18: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 19: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 20: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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)

Page 21: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 22: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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)

Page 23: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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

Page 24: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Demo https://test.kuali.org/confluence/display/KEN/Demo

Page 25: Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

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