55
Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Embed Size (px)

DESCRIPTION

Kuali Rice Overview January 2008 Aaron Godert - Cornell University. What is Kuali Rice?. Kuali: a humble kitchen wok; Malaysian origins Rice: it is what it is Sits on the bottom of a dish Not a very tasty meal by itself Better with some substance on top KFS - Beef KRA - Chicken - PowerPoint PPT Presentation

Citation preview

Page 1: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Kuali Rice OverviewJanuary 2008

Aaron Godert - Cornell University

Page 2: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

What is Kuali Rice? Kuali: a humble kitchen wok; Malaysian

origins Rice: it is what it is

Sits on the bottom of a dish Not a very tasty meal by itself Better with some substance on top

• KFS - Beef• KRA - Chicken• KS - Seafood

Rice is the foundation to a hearty software product

Page 3: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The Goals for Rice The board vision for Kuali is a plug and play

module by module approach to software Kuali started as financials, but has evolved into

a suite of administrative software (KFS, KRA, KS)

A lot of functionality in Kuali systems Keeping the Kuali code base as small as possible

without impacting quality is key Highly productive development environment

For Kuali projects For non-Kuali projects

Page 4: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Rice Goals Cont. A common and consistent architecture

Allow developers to understand other rice enabled projects

Infrastructure would not need to be reinvented on each project - focus on functionality!

Rice team can focus on IT standards, like SOA, that will benefit the entire Kuali software suite

Adoption of other Kuali modules feasible Generic enough for non-Kuali applications

Page 5: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Rice is Middleware Made up of several, possibly

standalone and swappable, middleware components

Applications become a “Rice Client Application” by easily integrating with this middleware

Interaction with other Rice enabled applications becomes seamless

Page 6: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

How We Got Here Kuali Enterprise Workflow (KEW) existed in

production at Indiana University Kuali Finanical System (KFS) started

development and had an architecture team Morphed into the Kuali Nervous System (KNS)

team Achieve technical consistency across all aspects

of KFS KFS --> KNS --> KEW

Page 7: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Along Came KRA Kuali Research Administration (KRA) needed

to integrate with KFS Align our core to support sharing services

across Kuali apps in a loosely coupled fashion

All Kuali products should be technically consistent under the hood For end user functionality For different development methodologies

Page 8: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Thinking Outside of the Wok Most administrative applications have

a common need for middleware services Workflow ESB Notification

Avoid design and code duplication Consolidate configuration

Page 9: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Rice Was Born!

Page 10: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Rice Modules (Products) KEW Kuali Enterprise Workflow KNS Kuali Nervous System KSB Kuali Service Bus KEN Kuali Enterprise Notification KIM Kuali Identity Management KOM Kuali Organization Management

We should take a look at the history of each of these products before talking in more detail how they apply to Rice

Page 11: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The History of KEW Kuali Enterprise Workflow existed at

Indiana University as a stand alone integration project before Kuali began

Provided common engine to drive business processes electronically

When Kuali came along, the IU workflow engine became Kuali Enterprise Workflow (KEW)

Page 12: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The History of KNS KFS spent a large amount of development

time up front, using the best talent from each of the partner institutions

Came up with a foundation on which to build KFS - the Kuali Nervous System

It focused on a unified approach to development of functionality A standard way to use workflow, perform CRUD

operations, handle business transactions KNS extracted into Rice as a module

Page 13: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The History of the KSB Other Kuali projects came along: i.e. KRA They needed to be able to seamlessly

“talk” to other Kuali services/applications in real time Reducing the need for offline batch Increasing business process agility

The KSB was born to satisfy simple needs

Page 14: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The History of KEN Cornell University recognized the need for a

more general notification system that could work alongside of a workflow “to-do” list Started development of the notification system at

Cornell Recognized the synergy in leveraging KEW

Realized that Kuali applications also wanted an advanced model for end user communication

The concept of Kuali Enterprise Notification was born

Page 15: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The (short) History of KIM KFS has its own user tables that are specific

to financial data Also has groups, roles, permissions

KEW has its own users, groups, roles, permissions

When KEN was built, it piggy-backed on KEW’s users, groups, and roles

Page 16: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The (short) History of KIM Cont. KRA came along with similar needs as KFS KS is also gearing up and shows similar

needs with additional requirements Recognized the potential for re-use and the

need for context specific IdM data Most importantly, we recognized the need

for consistent service interfaces across projects

The concept of Kuali Identity Management was born

Page 17: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The (short) History of KOM KOM will address the unit

hierarchy/org chart needs of KFS/KRA/KS

Came out of functional integration committee

Page 18: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Why Does a Project Need Rice? KNS and KEW enhance developer productivity

and enforce standards KSB provides an SOA approach for cross

project interoperability KEN enhances the user experience while

fulfilling a general need for notification across all rice enabled applications

KIM provides consistent IdM across your projects

KOM provides consistent Org mgmt across your projects

Page 19: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The Rice Interactive Diagram

Available at http://rice.kuali.org Click anywhere on the diagram to

begin Click on any component for details

Page 20: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Rice Deployment Architectures Stand-alone: a central hub and spoke model

Good if you just want to support one Rice server Centralized services and features Best for non-Java clients

Embedded: a decentralized, federated approach Fast for developers because services are local Distributes load; technically a clustered model Provides distributed transactions (via JTA)

Hybrid: best of both

Page 21: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Kuali Rice - Current Status Public release 0.9.1 available at

http://rice.kuali.org --> Download KRA is using 0.9.2 KFS is using 0.9.2 Well tested

Rice is being used in KFS; released with KFS 2.0 Both unit and functionally tested with JUnit/HtmlUnit Continuous Integration:

https://test.kuali.org/bamboo Let's take a closer look at each of these pieces

in more detail

Page 22: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KSB Overview - The Goals1. Enable applications and services

deployed on the bus to interact with other applications and services

2. Provide (a)synchronous communication

3. Provide flexible security4. Provide Quality of Service (QoS)5. Keep it simple (light weight)

Page 23: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KSB Overview Cont. A common registry of services

Lists all services on the bus and how they can be connected

Through simple Spring configuration, Java based services can be “exported” from a rice enabled application as SOAP or HttpRemoted services

Common resource loading - access services remotely or locally

Other “Rice Clients” can connect to any of the services on the KSB

Page 24: Kuali Rice Overview January 2008 Aaron Godert - Cornell University
Page 25: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KSB Communication Models Synchronous = P2P : waits for a response Asynchronous = messaging : fire and

forget : possible callback Queues = single service retrieved from

redundant set of services; only one invoked

Topics = all services retrieved from redundant set of services; all invoked

Page 26: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KSB Security Bus level : option to digitally sign,

encrypt Service level security through Acegi

Service level, method level User proxying through standard security

models (i.e. CAS, Kerberos) Security context passed along (user, authn

token, roles) Services can call authn/authz authority to

validate context

Page 27: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KSB is Simple and Light Weight Evaluated ServiceMix, ActiveMQ, Mule a year

and a half ago Reliability issues then, better now though

For simple needs (SOAP and Spring HttpRemoting), the messaging components of KEW sufficed in combination with XFire and Spring

Kuali Student has greater needs from an ESB (WSDL first, process orchestration, etc)

Are looking to KS ESB team for the direction to go

Page 28: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KNS Overview Provides reusable code, shared

services, integration layer, and a development strategy

Provides a common look and feel through screen drawing framework

A document (business process) centric model with workflow as a core concept

Page 29: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Understanding the KNS Paradigm

CHART_TChart

(POJO)

ORMMappin

g

Data Dictionary

Lookups and

Inquiries

MaintenanceDocuments

TransactionalDocuments

Workflow(KEW)

Page 30: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Transactional Documents These are data-entry centric documents or

“transactions” that model the business processes Examples include: Proposal Development, Journal

Entry, Payment Reimbursement Built on a case by case basis using the Kuali Rice

tag libraries (encompass snippets of UI behavior): Notes and attachments Workflow route log (audit log)

Integrated with workflow

Page 31: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Maintenance Documents They do not need to be built case by case - just

one JSP that draws them all These are the CRUD documents - an easy way

to maintain support tables in a Kuali database C: Create new table records R: Read or query table records U: Update existing table records D: Delete existing table records

Examples include: Budget rates Project codes

Page 32: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Inquiries A way to drill down and get more

read-only information about a table record

Page 33: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Inquiry Screenshot

Page 34: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Inquiry Example Configuration<inquiry> <title>Travel Account Inquiry</title> <inquirySections> <inquirySection title="Travel Account"> <inquiryFields> <field attributeName="number" forceInquiry="true" /> <field attributeName="name" /> <field attributeName="accountType" /> <field attributeName="foId" forceInquiry="true" /> </inquiryFields> </inquirySection> </inquirySections></inquiry>

Page 35: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Lookups A way to search for data by a set of

criteria Results of lookups can be returned to

other lookups or documents

Page 36: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Lookup Screenshot

Page 37: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Lookup Example<lookup> <title>Travel Account Lookup</title> <instructions>Look up Inst.</instructions>

<defaultSort sortAscending="true"> <sortAttributes> <sortAttribute attributeName="number" /> </sortAttributes> </defaultSort>

Page 38: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Lookup Example Cont. <lookupFields> <lookupField attributeName="number" required="false" /> <lookupField attributeName="name" required="false" /> <lookupField attributeName="accountType" required="false" /> <lookupField attributeName="foId" required="false" forceLookup="true" /> </lookupFields>

<resultFields> <field attributeName="number" forceInquiry="true" /> <field attributeName="name" forceInquiry="true" /> <field attributeName="accountType" forceInquiry="true" /> <field attributeName="foId" forceInquiry="true" /> </resultFields></lookup>

Page 39: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Other KNS Features Data Dictionary Question component Notes and attachments Pluggable business rules Pluggable authorizations System parameters Extended/custom attributes

Page 40: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KEW Overview Facilitates routing and approval of business

processes throughout an organization Provides re-usable routing rule creation which

defines how business processes should be routed Bind business data to users/groups that must approve

Provides hooks for client applications to handle workflow lifecycle events of business processes

End users interact with central workflow GUIs for all client applications

Page 41: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Document Search Screen Shot

Page 42: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Action List Screen Shot

Page 43: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

Route Log Screen Shot

Page 44: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KEN Overview Works with the action list to provide a single

place for all university related communications Workflow items come from KEW Non-workflow items from KEN

Non-workflow example items Overdue library book A concert on campus Graduation checklists for seniors

Page 45: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KEN Overview Cont. Provides a secure and controlled

environment for notifying the masses Eliminate sifting through email Communication broker which provides

any combination of action list, text messages, email, etc. Controlled by user preferences

Audit trail for all messages just as in KEW

Page 46: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KEN: Sending Notifications S2S: A developer can send

notifications by: Calling the sendNotification() service on

the KSB Invoking the service via a SOAP WS

(exposed by the KSB) Manual: A user can send notifications

using a provided workflow enabled form

Page 47: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KEN Screenshot: My Notifications

Page 48: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KEN Screenshot: Notification Details

Page 49: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KIM Overview Just gearing up Keep it simple to start Goals:

Clean and consistent service interfaces used by all Kuali apps; generic enough for non-Kuali apps

Leverage KNS to provide a reference implementation for services; workflow enabled management application

Flexibility for dynamic attributes associated with IdM entities (persons, groups, roles, etc)

Pluggable support for Internet2 products (Grouper, etc)

Page 50: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KIM Overview Cont. Basic concepts

Namespace (i.e. Application, any generic context)

Person - different default “sponsored” attributes for each namespace context; core shared attributes as well

Group - simply groups users; arbitrary data associated with them

Page 51: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KIM Overview Cont. Permissions - ability to perform actions Roles - cross context capabilities;

aggregates permissions (i.e. fiscal officer, dean, etc)

Qualified Roles - specific to a context• fiscal officer for organization XYZ• dean for the College of ABC• administrators for the College of ABC <-- this

one’s a group

Page 52: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

KOM Overview Basic concepts

Namespace - scopes the trees Organization - XYZ Department, College

of ABC, University of EFG Organization Category - University,

College, Department, Club, etc Parent/Child Organization

Page 53: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

What’s Next? Looking to the Future… Rice components will piggy back on each other

KEW and KEN will use KNS to draw screens, etc. Standards

JSR 186/286 portlets for user interfaces (portals) BPEL for process orchestration JPA for data persistence (move to Hibernate) WS-* support

Easier configuration and turnkey upgrades Light weight service interfaces (WSDL, XSD) Open source ESB foundation for KSB

Page 54: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

The main Rice web site http://rice.kuali.org Sign up for our public mailing list Access to our wiki: roadmap, project

plans, documentation, etc Documentation is a weakness

About the website

Page 55: Kuali Rice Overview January 2008 Aaron Godert - Cornell University

That’s it!

Q & A