View
218
Download
0
Category
Tags:
Preview:
Citation preview
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?
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
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
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
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!
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
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
Rice Was Born!
• KEW Kuali Enterprise Workflow
• KNS Kuali Nervous System
• KSB Kuali Service Bus
• KEN Kuali Enterprise Notification
• KIM Kuali Identity Management
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
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
Understanding the KNS Paradigm
ENTITY_TEntity
(POJO)
ORMMappin
g
Data Dictionary
Lookups and
Inquiries
MaintenanceDocuments
TransactionalDocuments
Workflow(KEW)
Data Dictionary
• Business Objects– Attributes– Lookups– Inquiry Page– Relationships
• Document Definitions– Sections– Fields– Collections
Business Objects
• Attributes– Labels– UI Widgets– Validation
• Attribute References
• Lookups
• Inquiries
Persistence Framework
• Business Objects
• Collections
• Security– Field Encryption– Masking
• Extendable
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
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
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>
Lookups
• A way to search for data by a set of criteria
• Results of lookups can be returned to other lookups or documents
Lookup Example
<lookup> <title>Travel Account Lookup</title> <instructions>Look up Inst.</instructions>
<defaultSort sortAscending="true"> <sortAttributes> <sortAttribute attributeName="number" /> </sortAttributes> </defaultSort>
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>
Authorization/Security
• Module Level
• Document Level
• Field Level– Read Only Fields– Hidden Fields– Masked Fields
Questions?
• KNS Overview:– https://test.kuali.org/confluence/display/KULDOC/Kuali+Nervous+System
• Rice Documentation Wiki– https://test.kuali.org/confluence/display/KULRICE/Home
Recommended