© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Kuali Nervous System Aaron Godert, Kuali Development Manager Brian.

Slides:



Advertisements
Similar presentations
Kuali Rice Bootcamp: Hands-On Exercises Colorado State University, January , 2008 Aaron Godert - Cornell University Rice Development Manager.
Advertisements

Apache Struts Technology
A Blackboard Building Block™ Crash Course for Web Developers
Kuali Technology Mark Norton – Nolaria Consulting Zachary Naiman – Member Liaison, Kuali Foundation.
Introduction to Kuali Rice ITANA Screen2Screen: Kuali on Campus May 2009 Eric Westfall – Kuali Rice Project Manager.
Open source administration software for education software development simplified RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 Eric Westfall.
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
© 2004, The Trustees of Indiana University 1 OneStart Workflow Basics Brian McGough, Manager, Systems Integration, UITS Ryan Kirkendall, Lead Developer.
Apache Struts Technology A MVC Framework for Java Web Applications.
Session-01. Layers Struts 2 Framework The struts 2 framework is used to develop MVC-based web application. Struts 1.0 was released in June The.
MyVRM Architectural Review October Agenda myVRM Quick Review Overall Architectural Concepts Design Principals Implementation Detail Q&A.
Web 2.0 with AJAX Students : LASC Ioana KELEMEN Csilla POP Dan Adrian CIOBANU Dumitru Daniel Project leader : Ahmed RHIAT.
Open source administration software for education software development simplified KRAD Kuali Application Development Framework.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Technical Overview of Kuali Rice UC Davis, Information & Educational Technology January 2009.
James Smith, University of Arizona Barbara Sutton, Cornell University
Architecting and Building KRA using Kuali Rice Terry Durkin, KRA DM/Lead Developer (Indiana University) Bryan Hutchinson, KRA DM/Lead Developer (Cornell)
Kuali Rice Technical Overview February Components of Rice  KEWKuali Enterprise Workflow  KNSKuali Nervous System  KRADKuali Rapid Application.
1 Kuali Identity Management Advanced CAMP: Identity Services Summit for Higher Ed Open / Community-Source Projects.
Kuali Rice at Indiana University Rice Setup Options July 29-30, 2008 Eric Westfall.
Technical Overview for “Functionals” (Kuali-eze…It’s a Foreign Language!) Ailish Byrne, Indiana University Barbara Sutton, Cornell University.
Kuali Enterprise Notification Tell Me What I Want And Need To Know Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst,
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Installing, Configuring & Customizing KFS Mike Criswell (Michigan State University) Warren Liang (University of California, Irvine)
Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.
RECALL THE MAIN COMPONENTS OF KIM Functional User Interfaces We just looked at these Reference Implementation We will talk about these later Service Interface.
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
Kuali Enterprise Notification Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst, Cornell University)
Kuali Enterprise Workflow Eric Westfall (Indiana University) Aaron Hamid (Cornell University)
Kuali Nervous System Aaron Godert, Cornell University Jonathan Keller, University of California, Davis.
Kuali Enterprise Workflow Presented at ITANA October 2009 Eric Westfall – Kuali Rice Project Manager.
Kuali Architecture: An Overview Mike Criswell MSU Enterprise Business Systems Projects (EBSP) April 23, 2008.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
Building Applications with the KNS. The History of the KNS KFS spent a large amount of development time up front, using the best talent from each of the.
© 2004, The Trustees of Indiana University Kuali Project Development Methodology, Architecture, and Standards James Thomas, Kuali Project Manager Brian.
Kuali Enterprise Workflow Kuali Days – November 2008 Scott Gibson, University of Maryland Bryan Hutchinson, Cornell University James Smith, University.
1 Kuali Nervous System (KNS) Part 2 Presented by: Jerry Neal – KFS Development Manager Geoff McGregor – KC Lead Developer Brian McGough – KRice Project.
Kuali Enterprise Workflow Ryan Kirkendall (Indiana University) Brian McGough (Indiana University)
1 Kuali Nervous System (KNS) Part 1 Presented by: Jerry Neal – KFS Development Manager Geoff McGregor – KC Lead Developer Brian McGough – KRice Project.
Kuali Identity Management Overview. Why did we write KIM? Common Interface for Kuali Applications Provide a Fully-Functional Product A Single API for:
Kuali Rice Evolving the Technology Framework for Kuali Applications Brian McGough (Indiana University) Aaron Godert (Cornell University) Warner Onstine.
Kuali Rice A basic overview…. Kuali Rice Mission First and foremost to provide a consistent development framework and common middleware layer for Kuali.
.  A multi layer architecture powered by Spring Framework, ExtJS, Spring Security and Hibernate.  Taken advantage of Spring’s multi layer injection.
IUScholarWorks Technical Overview Randall Floyd Digital Library Program Programmer/Database Administrator.
KS configuration application workshop Kuali Days :: Chicago May 13-14, 2008.
Kuali IAM and Security Aaron Godert Sr. Software Architect/Engineer Kuali Rice Development Manager Cornell University.
Kuali Rice: General Overview Brian McGough Kuali Rice Project Manager Kuali Lead Architect Director, Enterprise Software, IU May 13, 2008.
Kuali Nervous System Nate Johnson, Indiana University Jonathan Keller, University of California, Davis.
Apache Struts. J2EE Web Application using MVC design pattern Why MVC? Separate components = easier maintenance – Model component holds object data – View.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Spring MVC Essentials Getting started.
KIM: Kuali Abstraction Layer for Identities, Groups, Roles, and Permissions.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Eric Westfall KUALI ENTERPRISE WORKFLOW OVERVIEW.
Kuali Rice Evolving the Infrastructure for Kuali Applications Brian McGough (Indiana University) Aaron Godert (Cornell University)
10 Copyright © 2004, Oracle. All rights reserved. Building ADF View Components.
Apache Struts Technology A MVC Framework for Java Web Applications.
Building KFS using KNS Presented by James SmithJustin Beltran University of ArizonaUniversity of California, Irvine.
Kuali Enterprise Notification Tell Me What I Want And Need To Know Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst,
Kuali Enterprise Notification Tell Me What I Want And Need To Know Aaron Godert (Sr. Software Architect, Cornell University) John Fereira (Programmer/Analyst,
October 2014 HYBRIS ARCHITECTURE & TECHNOLOGY 01 OVERVIEW.
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Kuali Enterprise Notification An Update for Cornell - January 2007
Unit 6-Chapter 2 Struts.
Building an Integrable XBRL Portal Daniel Hamm German Central Bank
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Architecting and Building KRA using Kuali Rice
JavaServer Faces: The Fundamentals
Presentation transcript:

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Kuali Nervous System Aaron Godert, Kuali Development Manager Brian McGough, Kuali Lead Architect

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Session Goals Overview of the Kuali Nervous System (KNS) Strategy behind the KNS Component review and code samples Conclusions

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University What is the KNS? The core technical module Reusable code components that embody functionality Architecture/Tools Kuali Nervous System Kuali Application External Functional Modules Technical Module Technical Foundation Chart of Accounts Financial Transaction Processing Research Administration General Ledger Accounts Receivables Contract and Grants Workflow CAS LDAP

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Strategy A framework to enforce consistency Adhere to development standards and architectural principals A stable core for efficient development Reduce and reuse

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Strategy First shot at team chemistry and co- locateddevelopment Incur upfront costs –January 2005 to June 2005 –Reconvened in December 2005 to “tidy up”

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University KNS Components Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Attachments (Java IO) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Custom Tags (JSTL) Authentication (Servlet Filter/ CAS) Authorization (Kuali/Workflow) APC Rules Service Custom Attributes Document Authorizer Service Notes

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University KNS Components

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Document Components Requirement: electronic documents to perform business transactions –Integrate workflow, full audit trail, notes/attachments Two types to start…

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Document Components Maintenance Documents

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Document Components Financial Transaction Processing Documents

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Document Components Maintenance Financial Transaction Processing Document Commonalities led to a document paradigm –Created inheritance structure for all layers: Web – Struts actions and forms Business – business objects Persistence – DAO, Services, etc

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Maintenance Documents Could be generalized to dynamically persist, render, and control business objects for maintenance purposes Needed a way to describe behaviors of these types of documents Several iterations produced the Data Dictionary (DD) concept Document Components

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Data Dictionary XML document for describing behaviors of business objects –Attributes – lengths, UI rendering info (control type) –“Required-ness” –Customization - labels, help content, regex validation Document Components

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Data Dictionary, Continued Eventual organization –Business object data dictionary file Embraced reuse across documents Added support for attribute references –Maintenance document data dictionary file –Transaction processing document data dictionary file Document paradigm led to pluggable business rule classes, authorizer classes, document level help content Document Components

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University <attributeReference name="chartOfAccountsCode“ sourceClassName="org.kuali.module.chart.bo.Chart“ sourceAttributeName="chartOfAccountsCode" /> Account Number Account 7 true Account Number... Document Components Business Object Data Dictionary Sample

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Document Components Document “Formula” = DB Table * POJOs (BOs) OJB mapping BO DD file Document DD file * Rule plug-in class * Authorization plug-in class +Kuali Enterprise Workflow (KEW) configuration Kuali Document * Denotes use of inheritance

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Document Components Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Business Object Data Dictionary (XML) Data Dictionary Services (XStream) APC Rules Service Document Authorizer Service Authorization (Kuali/Workflow)

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Lookups and Inquiries Requirement: need a way to look up records and view their details –Kuali Enterprise Workflow’s (KEW) provided document searching –Needed something to look at the data that maintenance documents manage Lookup – allows for searching against data of record Inquiry – “drill down” and view details of records

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Lookups and Inquiries Lookups

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Lookups and Inquiries Inquiries

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Lookups and Inquiries Integrated into data dictionary for dynamic search page and record detail rendering

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Account Lookup Create New ]]> Lookup an Account … … Lookups and Inquiries Lookup Data Dictionary Sample (BO DD)

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Account Inquiry … Lookups and Inquiries Inquiry Data Dictionary Sample (BO DD)

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Lookups and Inquiries Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Authorization (Kuali/Workflow) APC Rules Service Document Authorizer Service

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Requirement: provide common utilities to Kuali developers –Employ our SOA architectural principal Leveraged Spring IoC –Interface/Implementation –KualiSpringBeans.xml

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Business Object Service Recognized that Spring/OJB integration boiled down to: –PersistenceBroker.store(businessObject); –PersistenceBroker.queryByCriteria(BusinessObject.class, criteria);

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Business Object Service, Continued Allowed us to significantly reduce the number of DAOs Able to use Spring’s AOP Method Results Caching Used this service in other components –Lookups –Inquiries

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Document Service A common set of service methods to take actions on a document –Similar to the business object service –Persist documents and integrate with workflow Used Spring’s transaction management features Samples: –documentService.save(document); –documentService.approve(document);

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Data Dictionary Services Our gateway to business object and document metadata Used throughout the KNS –Workflow services – document type information –Custom tags – access to attribute labels –Business rules – required attribute checks

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Data Dictionary Services, Continued Samples –businessObjectDictionaryService.getLookupTitle(Account.class); –dictionaryValidationService.validateBusinessObject(account); –transactionalDocumentDictionaryService. getBusinessRulesClass(transactionalDocument); –transactionalDocumentDictionaryService. getAllowsCopy(transactionalDocument);

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Workflow Document Services Integration point with KEW Leverages KEW libraries Talks securely to KEW via Apache Axis Web Services

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Core Services Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Authorization (Kuali/Workflow) APC Rules Service Document Authorizer Service

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University UI Components Custom Tags Allows for reusable pieces of JSP, JSTL, and HTML Samples –

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University UI Components AJAX Minimal usage because of our accessibility standards Value added Using JavaScript XMLHttpRequest() –GET requests sent to a central Struts action class that handles all AJAX calls

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University UI Components CSS Extensive set of style sheets Cohesive and aesthetically pleasing look and feel

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University <fin:accountingLines editingMode="${KualiForm.editingMode}" editableAccounts="${KualiForm.editableAccounts}"/> UI Components JSP Sample

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University UI Components Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Authorization (Kuali/Workflow) APC Rules Service Document Authorizer Service Custom Tags (JSTL)

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Customization and Configuration Components Requirement: the system must be customizable and configurable Application Parameter Constants –Extract hard coded business rules checks out to the DB –Maintained with a maintenance document Data Dictionary KEW routing rules configuration

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Custom attributes –Custom fields for business objects –Turn on in data dictionary file –Reporting needs, not business rules “Pluggable” business rules –Specify business rule implementation in document’s data dictionary file Customization and Configuration Components

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Customization Components Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Authorization (Kuali/Workflow) APC Rules Service Document Authorizer Service Custom Tags (JSTL) Custom Attributes

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Security Components Authentication WebAuthenticationService WebAuthenticationServiceCas –Used CAS for implementation –J2EE Servlet filter uses the service

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Security Components Authorization KualiAuthorizationService Implemented as two types Application Roles –Action Z requires group Y membership for user X –Does user X belong to group Y? Document Inherent –Application Role + Document Role + Document State = Permission

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Security Components Authorization DD File Code Sample … org.kuali.module.financial.document.TransferOfFundsDocument org.kuali.module.financial.document.FinancialDocumentAuthorizer KUALI_ROLE_ADMINISTRATORS …

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Security Components Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Custom Tags (JSTL) Authentication (Servlet Filter/ CAS) Authorization (Kuali/Workflow) APC Rules Service Custom Attributes Document Authorizer Service

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Other Components Notes and attachments Data dictionary driven help screens Question component for confirmation dialogs PojoProcessor plug-in for Struts form processing –Reuse business objects for automatic form processing and field formatting

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Other Components Document Maintenance Document Financial Transaction Processing Document Workflow Integration (Apache Axis) Attachments (Java IO) Persistence Services (OJB) Maintenance Data Dictionary (XML) Transaction Processing Data Dictionary (XML) Business Object (POJO) Lookups Inquiries Business Object Data Dictionary (XML) Data Dictionary Services (XStream) Custom Tags (JSTL) Authentication (Servlet Filter/ CAS) Authorization (Kuali/Workflow) APC Rules Service Custom Attributes Document Authorizer Service Notes

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Lessons and Dirty Laundry Spring transaction management –Don’t mix transactional services with non- transactional services Documentation – “great here, bad there” Some inter-module dependencies

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University KNS Future Potential Solves pattern problems in an elegant fashion Why just Kuali?

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Enablers

© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Questions? Technical Q&A Session Tuesday, 4/11 at 9:00AM Aaron Godert Development Manager Brian McGough Lead Architect