Post on 15-Dec-2015
research administration
Kuali Rice: Enterprise Middleware Solutions
Geoff McGregorTerry Durkin
Quick Review
Kuali Rice – middleware suite of integrated products Kuali Nervous System (KNS) – application development
framework Kuali Enterprise Workflow (KEW) – document routing engine Kuali Identity Management (KIM) – identity and access
management services Kuali Service Bus (KSB) – common registry of remote
services Kuali Enterprise Notifications (KEN) – broker for university-
related communications
Bundled Rice
Bundled Mode When you download KC, you
are downloading Rice By default, Rice is Bundled
with KC Behaves as one monolithic
application All services in local Spring
context Web content in the same war Single DB schema
Standalone Rice
Rice can be downloaded separately and run as an independent service
Standalone client integration options Embedded Remote Hybrid – different modes by module
Changing Integration Modes
KC was designed to make switching deployment modes relatively simple
kc-config.xml: Modify <module>.runmode parameters If using embedded, specify the Rice datasource info Ensure dev.mode param = false If using KSB security, fill in keystore params Modify rice.app.url to point to the Rice webapp url
Embedded Mode Rice services run in the client application and access the Rice DB directly Independent Rice web app and database
Embedded Mode
Fast – embedded client talks directly to the database Scalable – processing load is distributed No need for application plugins on the Rice server to
handle application-specific logic
Remote Mode Client applications interact with Rice standalone via KSB service calls or
straight web service calls
Remote Mode
Loosest coupling Easy to connect May require multiple deployment artifacts
(app + plug-in) Reduced performance due to transport
overhead
Modular Design Each module composed of a set of service interfaces and API
components Each module also has a reference implementation of those
services Each module publishes services on the service bus that are
available externally Services are located and invoked – they may be deployed
locally or remotely and the caller does not need to know Client applications code to the module APIs – don’t care about
the underlying deployment mode
DocumentService documentService = ServiceLocator.getDocumentService();documentService.routeDocument(myDocument);
Resource Loaders
Modularity powered by the resource loader stack A component in Rice which locates and loads references
to service endpoints All services identified by a qualified name Can also load objects from classloaders
Resource Loader Stack
Kuali Service Bus
Sits at the bottom of the Resource Loader Stack Simple service bus Exporters Connectors Synchronous service invocation Asynchronous reliable messaging Service registry
Kuali Service Bus
KSB Service Registry
Kuali Service Bus
Provides the ability to scale applications horizontally Can publish more than one service with the same name
from multiple instances KSB will round-robin requests, as well as fail over if an
instance is down KSB can identify which application cluster a service
belongs to based on app’s Service Namespace
eDocLite
Part of KEW Build simple forms quickly Ideal for quickly turning paper-based forms into electronic
forms back by workflow and its features: Document search Action list Email notifications Route log Routing rules
eDocLite
Created with XML and optionally javascript No java, no relational tables – data stored in a table by key-value Data can be transformed and inserted into relational tables via
postprocessor hooks, if necessary Even ‘lighter’ (but more limited) than KNS Maintenance
Documents
eDocLite
Putting It All Together
Putting It All Together
As an enterprise middleware solution, Rice provides: Common development framework for programmers and
experience for users Generic workflow engine can be leveraged by any application Consolidated action list, doc search for all KEW-enabled eDocs eDocLite for quickly building lightweight routable eDocs Centralized, comprehensive identity management solution KEW and KIM synergy for group and role-based routing Communication broker for system-to-system integrations (e.g.,
KC-KFS)
Enterprise Rice – IU Case Study
Why? How long? How many applications? How many documents? How many users? How does it work? Which Modules? How many developers?
Rice at IU – Why?
Core infrastructure Supporting Enterprise Apps Supporting a shared development
methodology for the institution Supporting our Service Deployment and
Deployment Strategy through KSB Supporting our evolving IDM process through
KIM Supporting departmental processes through
eDoc Lite
Rice at IU – Enterprise ApplicationsDate Application
May 2003 Electronic Research Administration
October 2003 Human Resource eDocs
June 2005 EPIC (Electronic Procurement and Invoicing Center)
October 2006 Timekeeping
September 2007 Add/Drop Course
November 2007 Indiana University Foundation
December 2007 Grade Change
November 2008 Intelligent Infrastructure Billing
February 2009 Schedule of Classes
July 2009 Electronic Paid Time Off (EPTO)
October 2009 Travel
May 2010 Kuali Financial System - General Ledger
August 2010 Course Remonstrance
August 2010 Graduate Admissions Application
Rice at IU – eDoc LiteDate Application
February 2007 Office of Affirmative Action
July 2007 Student Special Credit Request
August 2007 Safeword Card Administration
September 2007 University Graduate School – Course Remonstrance
July 2008 Office of VP for Research – Internal Funding Request
August 2008 Office of VP for Research Administration – Conflict of Interest
August 2008 Health Center Appointment Request
January 2009 Registrar – Staff Orientation Information Request
May 2009 Payroll Request
September 2009 Security Office – Web Vulnerability Scanning Request
December 2009 Registrar – Course Bulletin
January 2010 Optometry Appointment Request
March 2010 Motor Pool Vehicle Request
March 2010 Purchasing Contract
May 2010 Oncourse Adminstration Request
August 2010 Business Intelligence Project Submission
Rice at IU – Document Metrics
2003 2004 2005 2006 2007 2008 20090
1000000
2000000
3000000
4000000
5000000
6000000
7000000
8000000
9000000
10000000
11000000
Documents RoutedRequests GeneratedActions Taken
Rice at IU - Users
2003 2004 2005 2006 2007 2008 20090
10000
20000
30000
40000
50000
60000
70000
Number of Unique Users
# of Unique Users
Rice at IU - Architecture
Load balancer with four clustered Kuali Rice standalone server instances
Use Tomcat as the servlet container Shared file system mount for attachments Oracle database Many client applications use an
embedded workflow engine This is our recommended integration model
There are a few “thin client” applications remaining which utilize plug-ins
Scalability
Designed for horizontal scalability Load balancer helps to distribute
requests Could add additional application servers
to suit needs Over the years have moved from two
application servers to four to handle increased usage
Using embedded workflow engines also helps to distribute the load
KIM Integration
Identity management at IU is handled by a separate team
Use a tool from Microsoft called “Identity Lifecycle Manager” Provisions identity data into KIM database tables Does so in as near real-time as possible
Implemented a custom SOAP service and published on the KSB to receive CRUD operations
Also integrates with Active Directory for groups
Enterprise Portal
Our Enterprise Portal is currently using a “closed-loop” version of the service bus to handle communication between different instances in their application cluster
Action List portlet Notifications Channel Future projects:
Bringing portal onto the enterprise bus Loading student calendars via web services KIM Integration
Problem Solved!
Created a multi-page form to collect all disclosures
Faculty with nothing to disclose can simply submit the form after filling in some info
For those with disclosures, cut the processing time from up to two months, to within a week
No more data entry costs – staff can work on other things
Reporting: Send reports to departments Run reports to determine who still needs to disclose Metrics
Research Administration – Conflict of Interests
For those faculty with no disclosures, they can select all “No” and they are finished
If “Yes” is answered to any question, it takes them to a screen where they can enter disclosures
Rice - Future
Top level Kuali Project Investors, Project Board Application Roadmap Committee –
Features/Functionality Technical Roadmap Committee – Tools, Libraries
Rice 2.0 Summer 2011 Workflow GUI/Rules processing Version Compatibility (upgrade server/clients
separately) KRAD – Next-gen KNS, AJAX, updated tools