Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher...

19
Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1

Transcript of Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher...

Page 1: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Building a production quality Rice Application at SJDC

Kuali Days VI, Chicago

Christopher Kirschenman – San Joaquin Delta

Anthony Potts - rSmart

1

Page 2: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

About San Joaquin Delta College

Large community college in Stockton, CA

~13,000 Students per semester

~1,000 employees

Currently 6 developers (2 primarily Java)

Developed Student and HR System in Smalltalk

2

Page 3: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

About rSmart

Provider of support and services for OSS in higher education

• Sakai CLE

• Kuali Financials

• Kuali Rice

• Kuali KRA (soon)

• Kuali Student (not so soon)

• Founding Partner of Kuali

• Founding partner of Open Source Portfolio Initiative

• Sakai Partner and board member

3

Page 4: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

The Problem

• Current process highly manual• Thousands of timesheets printed each month• Errors common, lost papers, etc• Workflow goes through single person

(single point of failure!)

4

Page 5: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Previously Attempted Solution

Kronos:

• Many more features than required

• Chosen for the wrong reason

• Hard to integrate with existing system

• Project was passed around until it withered

5

Page 6: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Requirements

• Replicate current process (simplify!)

• Integrate with homegrown SIS/HR system

• Integrate with CAS / LDAP

• Implement workflow

6

Page 7: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Rice Framework Features

• Maintenance Documents

• Transactional Documents

• Workflow

• Web Services

• Quartz batch processes

7

Page 8: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Maintenance Documents

• XML-based

• Used for maintaining individual business objects

• Fully rules and workflow capable

• No HTML or JSP page

8

Page 9: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

<dictionaryEntry>

<maintenanceDocument>

<businessObjectClass>org.kuali.contrib.timekeeping.bo.TimecardType</businessObjectClass>

<maintainableClass>org.kuali.core.maintenance.KualiMaintainableImpl</maintainableClass>

<documentAuthorizerClass>org.kuali.core.document.authorization.MaintenanceDocumentAuthorizerBase</documentAuthorizerClass>

<authorizations>

<authorization action="initiate">

<workgroups>

<workgroup>TIMEKEEPING_DEFAULT</workgroup>

</workgroups>

</authorization>

</authorizations>

<documentTypeName>TimecardTypeMaintenanceDocument</documentTypeName>

<label>Timecard Type Maintenance Document</label>

<maintainableSections>

<maintainableSection title="Edit TimecardType">

<maintainableItems>

<maintainableField name="name" required="true" />

<maintainableField name="description" required="true" />

</maintainableItems>

</maintainableSection>

</maintainableSections>

</maintenanceDocument>

</dictionaryEntry>

9

Page 10: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Transactional Documents

• Transient documents that may modify one or more business objects

• More coding than Maintenance Documents

• Question framework

• Extremely capable = potential for complexity

10

Page 11: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Workflow

• Keep it simple

• Easy to over engineer

• BSF:Groovy -> Java -> Web Service

11

Page 12: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Document XML <routePaths>

<routePath>

<start name="Adhoc Routing" nextNode="Assignment Manager Approval" />

<requests name="Assignment Manager Approval" nextNode="Assignment Supervisor Approval" />

<requests name="Assignment Supervisor Approval" />

</routePath>

</routePaths>

<routeNodes>

<start name="Adhoc Routing">

<activationType>S</activationType>

<mandatoryRoute>false</mandatoryRoute>

<finalApproval>false</finalApproval>

</start>

<requests name="Assignment Manager Approval">

<activationType>S</activationType>

<ruleSelector>Named</ruleSelector>

<ruleName>AssignmentManagerApproval</ruleName>

</requests>

<requests name="Assignment Supervisor Approval">

<activationType>S</activationType>

<ruleSelector>Named</ruleSelector>

<ruleName>AssignmentSupervisorApproval</ruleName>

</requests>

</routeNodes>

12

Page 13: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Rule XML

<rule>

<name>AssignmentManagerApproval</name>

<documentType>TimekeepingDocument</documentType>

<description>This rule requires an approval by manager</description>

<expression type="BSF:groovy">

import org.kuali.contrib.timekeeping.workflow.TimekeepingWorkflowUtils;

return TKWorkflowUtils.constructManagerApproval(routeContext, rule);

</expression>

</rule>

13

Page 14: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Real-time integration

• Direct Access to legacy database through BOs

• Database schema extremely limited

• permissions kept to a minimum, read-only

• Access to business logic through web services

Issues:

• Legacy database not normalized

• Database not necessarily accurate

• Security

14

Page 15: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Batch Integration

• Nightly Jobs

• Take advantage of idle servers

• Timecard Initialization

• Notification

• Finalization

15

Page 16: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Deployment Choice

• Embedded Rice– Simple Java access to Rice functions

• Separate database for Rice • Minimize number of tables added to application

database• Faster development cycle• Option to move to thin client at later date

16

Page 17: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Timecard ApplicationTimecard

Application

Legacy DBLegacy DB Rice DBRice DB

Rice Server (future)

Rice Server (future)KEWKEW

Legacy SIS/HR System

Web Services

17

KNSKNS

Page 18: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Future Plans for Rice at Delta

• Bringing on Kuali Financial and eventually Kuali Student

• Parts of Rice moved from embedded to standalone

• Legacy application integration with standalone rice

18

Page 19: Building a production quality Rice Application at SJDC Kuali Days VI, Chicago Christopher Kirschenman – San Joaquin Delta Anthony Potts - rSmart 1.

Timecard Application Future

• Source code going to be released to community

• Another sample application for Rice

• Community involvement should result in a better product over time.

19