Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "© 2006, The Trustees of Cornell University © 2006, The Trustees of Indiana University Kuali Nervous System Aaron Godert, Kuali Development Manager Brian."— Presentation transcript:

1 © 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

2 © 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

3 © 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

4 © 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

5 © 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”

6 © 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

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

8 © 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…

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

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

11 © 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

12 © 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

13 © 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

14 © 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

15 © 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

16 © 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

17 © 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)

18 © 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

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

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

21 © 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

22 © 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)

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

24 © 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

25 © 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

26 © 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);

27 © 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

28 © 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);

29 © 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

30 © 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);

31 © 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

32 © 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

33 © 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 –

34 © 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

35 © 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

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

37 © 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)

38 © 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

39 © 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

40 © 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

41 © 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

42 © 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

43 © 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 …

44 © 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

45 © 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

46 © 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

47 © 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

48 © 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?

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

50 © 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 ag266@cornell.edu Brian McGough Lead Architect bmcgough@indiana.edu


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

Similar presentations


Ads by Google