Top Banner
Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis
28

Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Dec 29, 2015

Download

Documents

August Adams
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Kuali Nervous System

Aaron Godert, Cornell University

Jonathan Keller, University of California, Davis

Page 2: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Outline

• What is the Kuali Nervous System?

• Where did it come from?

• What does it do?

• And, what's Rice got to do with this?

Page 3: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

What is the KNS?

• KNS = Kuali Nervous System• An application development framework that KFS

and KRA are built on• Allows for pattern based integration with other

middleware components• Focuses on providing a foundation for efficient

development of business functionality• Helps to ensure consistent development

practices

Page 4: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

KNS is a Rice Component

• 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 5: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

The Goals of 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 6: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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• KNS plays a major part in this!

Page 7: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 8: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 9: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Rice Was Born!

• KEW Kuali Enterprise Workflow

• KNS Kuali Nervous System

• KSB Kuali Service Bus

• KEN Kuali Enterprise Notification

• KIM Kuali Identity Management

Page 10: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

History of the 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 from KFS and put into Rice as a module

Page 11: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 12: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Understanding the KNS Paradigm

ENTITY_TEntity

(POJO)

ORMMappin

g

Data Dictionary

Lookups and

Inquiries

MaintenanceDocuments

TransactionalDocuments

Workflow(KEW)

Page 13: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Data Dictionary

• Business Objects– Attributes– Lookups– Inquiry Page– Relationships

• Document Definitions– Sections– Fields– Collections

Page 14: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Business Objects

• Attributes– Labels– UI Widgets– Validation

• Attribute References

• Lookups

• Inquiries

Page 15: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Persistence Framework

• Business Objects

• Collections

• Security– Field Encryption– Masking

• Extendable

Page 16: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 17: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 18: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Inquiries

• A way to drill down and get more read-only information about a table record

Page 19: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Inquiry Screenshot

Page 20: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 21: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Lookups

• A way to search for data by a set of criteria

• Results of lookups can be returned to other lookups or documents

Page 22: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Lookup Screenshot

Page 23: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Lookup Example

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

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

Page 24: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

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 25: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Business Rules

• Rules– onSave– onRoute– onApprove– onAddLine

• Pre-Rules– Can ask questions

Page 26: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Authorization/Security

• Module Level

• Document Level

• Field Level– Read Only Fields– Hidden Fields– Masked Fields

Page 27: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Other KNS Features

• System parameters

• Extended/custom attributes

Page 28: Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.

Questions?

• KNS Overview:– https://test.kuali.org/confluence/display/KULDOC/Kuali+Nervous+System

• Rice Documentation Wiki– https://test.kuali.org/confluence/display/KULRICE/Home