Rice - Kuali Wiki

hedgebornabaloneSoftware and s/w Development

Dec 2, 2013 (3 years and 8 months ago)

85 views

Kuali Technology

What is Kuali Rice?


Kuali
: a humble kitchen
wok (Malaysian origin)


Rice
:
a food staple


Sits on the bottom of a dish


Not a very tasty meal by itself


Better with some
cuisine
on top


KFS
(Kuali Financial System)
-

Beef


KC (Kuali
Coeus
, Research Administration)
-

Chicken


KS (Kuali Student)
-

Seafood


Rice is the foundation to
hearty meals (aka enterprise
software products)

Historic Origins


Rice was originally a set of foundation services in
Kuali Financial System (KFS).


These were broken out and made generic.


After more than a year of work, the 1.0 release is
being made available.


Rice is now a full Kuali project with it’s own
board and community.

Kuali Rice Vision


Support the needs of the Kuali Application Projects


Foundational middleware components and services


Enhanced software development framework


Leverage middleware and development frameworks
for building custom applications


Achieve sustainability through community source
development and adoption


Iterate Rice architecture towards a Service Oriented
Architecture





Kuali Rice Objectives


Design modular, re
-
usable components


Create standard component API’s


Provide a reference implementation based on
industry standards


Ensure intellectual property and license
compliance is maintained


Promote adoption by a wide variety of
institutions


Build a large, sustainable community of interest

Kuali Rice Components


Version 1.0


KNS

Kuali Nervous System


KEW

Kuali Enterprise Workflow


KSB

Kuali Service Bus


KEN

Kuali Enterprise Notification


KIM

Kuali Identity Management

KNS Overview


The Kuali Nervous System is a collection of kernel services
that support other Rice modules and Kuali applications.


Provides a common look and feel through screen drawing
framework


Creates
Kuali’s

document (business process) paradigm with
workflow as a core concept



Batch Management



Business Rules



Document Management



Custom Attributes



Data Dictionary



Help Framework




Inquiries



Lookups



Notes and Attachments



Question and Dialogs



Security and Encryption



System Parameters


Maintenance Documents


No GUI programming required, user interface is rendered by
framework


These are used for maintaining data


An easy way to maintain support tables in a database


Supports creation of new records and editing of existing records


Examples include:


Budget rates


Project codes

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


KNS Chart Architecture

CHART_T

Chart

(POJO)

ORM

Map

Data
Dictionary

Lookups
and
Inquiries

Maintenance

Documents

Transactional

Documents

Workflow

(KEW)

KEW Overview


Enterprise workflow using a content
-
based routing engine.


Documents created from process definitions (Document Types) and submitted to the
workflow engine for routing


Routing decisions made based on the XML content of the Document


Traditionally used for business transactions in the form of
electronic documents that require approval from multiple
parties. For example:


Transfer of Funds


Hire/Terminate Employee


Timesheet


Drop Course


Includes services, APIs, and GUIs


KEW


Core Features


Action List (User’s Work List)


Document Searching


Document Audit Trail (Route Log)


Flexible process definition (Document Type)


Splits, Joins, Parallel branches


Sub processes


Dynamic process generation


Rules Engine


Email Notification

KEW


Core Features, cont.


Notes and attachments


eDoc

Lite


Framework for creating simple documents quickly


Plug
-
in Architecture


Packaging and deployment of routing components to the Rice
Standalone Server at runtime

KEN Overview


A secure, auditable notification system that feeds the
Action list with non
-
workflow messages


Notification of an overdue library book


Announcing a concert event on campus


Sending graduation checklists for senior


Acts as a communication broker which handles any
combination of action list, email, or custom
notifiers


Controlled by user preferences




KSB Overview


An enterprise service bus that:


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


Uses a simple Spring configuration, to export Java based
services from a Rice enabled application as SOAP or Java
Serialization over HTTP services


Common service locator paradigm
-

access services
remotely or locally


Other “Rice Clients” can consume services published on
the KSB


KSB Security


Bus level : option to digitally sign, WS
-
Security used for SOAP
services


Service level security through Spring Security (formerly
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


KIM
-

Overview


The Kuali Identity Management module will be included in version
1.0 of Rice


Provides identity and access management services to Rice and other
applications


One
-
time institutional customization of identity services for all Kuali
projects


Includes a service layer as well as a set of maintenance screens


Supported Concepts include:


Entities and Principals


Groups


Roles and Permissions


Authentication


KIM


Design Goals


Shared identity and access management services that all
Kuali

projects can use


Generic enough to be used by non
-
Kuali

projects


Provide a rich and customizable permission
-
based
authorization system


All services available on the service bus with both SOAP
and Java serialization endpoints


Provide a set of GUIs that can be used to maintain the
data


KIM


Design Goals


Provide a reference implementation of the services but
allow for customization/replacement to facilitate
integration with institutional services or other 3
rd

party
IDM solutions


Allow for the core KIM services to be overridden
piecemeal


For example: override the Identity Service but not the Role
Service


KIM


Services


KIM consists of the following services which encompass
it’s API


IdentityService


GroupService


PermissionService


RoleService


ResponsibilityService


AuthenticationService


These are read
-
only, there are also “update” services
which allow for write operations

KIM


Architecture diagram

KIM


Internal Usage


Many permissions exist that are used by KNS, examples:


Edit Document


Look Up Records


Use Screen


Create / Maintain Records


KEW uses KIM permissions as well:


Administer Routing for Document


Blanket Approve Document


Route Document


Even KIM uses permissions internally


Assign Role


Grant Permission

What’s Next for Kuali Rice?


Release 1.0 coming very soon!


Enhanced Documentation


Standards


JPA for data persistence


Easier configuration and turnkey upgrades


Better compatibility between different Rice versions


KOM


Kuali Organization Management


And much more!


Further Information about Rice


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


Thank You!

Any Questions?

Contacts:


Zach Naiman


zach@kuali.org

Eric
Wesfall



ewestfal@indiana.edu

Special thanks to Eric Westfall and Bill
Yock

for contributing slides

What is Kuali Rice?