kuali enterprise notification tell me what i want and need to know

35
Kuali Enterprise Notification Tell Me What I Want And Need To Know Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)

Upload: tola

Post on 12-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

Kuali Enterprise Notification Tell Me What I Want And Need To Know. Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University). Introducing KEN. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Kuali Enterprise Notification

Tell Me What I Want And

Need To KnowAaron Godert (Sr. Software Architect, Cornell University)

John Fereira (Programmer/Analyst, Cornell University)

Page 2: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

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 Tell Me What I Want  And  Need To Know

A Single “Action List”!

Page 4: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

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 Tell Me What I Want  And  Need To Know
Page 6: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

A Communication Broker

Page 7: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

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• Centralize communication broker• More robust preference and searching

capabilities

Page 8: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

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 9: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

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 10: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Potential Consumer Applications

• Bursar Applications• Registrar Applications• Library Applications

– Overdue checkout item notices– Item recall notices– Event announcements

Page 11: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Technical Goals

• Adhere to SOA principles• Develop collaboratively using the

Community Source model• Build using standard Open Source

J2EE technologies• Re-use technical products in Kuali

Page 12: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

The Architecture

Page 13: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

The Design

Page 14: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

The Tools• Java SDK 1.5+• Spring Framework

– Service interface and implementations– Spring MVC

• Apache OJB– Object relational mapper

• McKoi DB (evaluating Apache Derby)– Quickstart

• Start with Oracle DDL (evaluating Apache DDLutils)– Production

Page 15: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

The Tools

• OpenSymphony Quartz– Spring integration

• Apache Tomcat 5.5+• JSP/JSTL• XML/XSD

– DOM/Xpath– XStream

• XSLT• Apache Axis

Page 16: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Sending a Notification: s2s

• Java API - Java services (injected using Spring)– 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)

Page 17: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Notification Request as XML

Page 18: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

A Notification Request as XMLNotification Channel

Page 19: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Notification Request as XMLNotification Producer

Page 20: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Notification Request as XMLSenders

Page 21: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Notification Request as XMLRecipients

Page 22: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Notification Request as XMLDelivery Information

Page 23: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Content Types

• Two content types provided out-of-the-box:– Simple

– Event

Page 24: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Flexible Content Types

• To add a new content type:1. Write the sample XML for inside of the

<content> tag2. Write the XSD to validate your content

type3. Write the XSL to transform your

content type during rendering4. Add a new record to the “Content

Types” table - (name, description, active/inactive, XSD text, XSL text)

Page 25: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Flexible Delivery Endpoints

• Not yet built• 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

• Delivery will be asynch - wire up a Quartz job in Spring

Page 26: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Kuali Rice Integration

Page 27: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

KEW Integration• Action list

– KEW already has the concept of an action item

• User and group management– KEN’s recipient service is implemented by calling the

KEW user and workgroup services – Common set of users and groups for both applications

• Logging– Notifications become action items, action items get

automatic logging

• EDocLite (EDL)– Our generic notification message sending form is an

EDL– Positioned for workflow approvals of messages

Page 28: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

KSB Integration

• Exposing the Java service “sendNotification()” directly on the bus– HttpRemoting over SSL– POJO (serializable) input/output

• Exposing as a WS on the bus using the generic web service feature of KSB– I don’t have to touch Apache Axis!– Implement a KSB Java interface

• Responsible for translating XML (String) to POJOs

– Wire up the call in Spring with approximately 10 lines of XML

Page 29: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

KNS Integration

• Not yet integrated• Maintenance document features

– Dynamic rendering and persisting of administrative reference tables• Adding/updating/deleting Notification

Producers, Notification Channels, Content Types, etc

• Automatic workflow integration• Automatic versioning of records

Page 30: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Features in 1.0• Send notifications via s2s API/WS calls; users

can also send via message form (EDL)• Users will see their notifications alongside of

workflow items in a more general action list– Within the list, users will be able to:

• Search for by channel, type, producer, sender, and priority• Save searches 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 31: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Features in 1.0

• Users will be able to set up multiple delivery end points or “ticklers”– We’ll come OOTB with an email tickler

• Flexible content types (XML/XSD/XSL)• Basic authorization - Notification Channel

to Notification Producer mappings• CAS end user authentication• SSL for transport of anything over HTTP

(WS/web app)• User and group management

Page 32: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Status of 1.0 Features• Basic features are in place

– Can send a notification s2s and through a generic message form

• Basic KEW and KSB integration complete– Notification messages are showing up in the single

action list– Basic logging, searching, and preferences are in place– EDL form for sending messages

• Still need to:– Build sample clients in various technologies to test– Build multiple delivery end point framework– Tweak action list, logging, searching, and preferences

to be more generic and less workflow specific

Page 33: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Future Features

• SMS delivery end point• JSR Compliant Portlets

– Action list– Preference management

• KNS Maintenance documents for administration

• Attachments• Additional content types OOTB• s2s revocation of notification messages• Ability to schedule recurring messages• And more…

Page 34: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

Time Frame for Deliverables

• 1.0 - April 2007• 1.X+ (future features) - aiming for 3

month cycles• Kuali Rice bundling - Summer 2007

Page 35: Kuali Enterprise Notification Tell Me What I Want  And  Need To Know

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://wiki.library.cornell.edu/wiki/display/notsys

• Contact [email protected]