Presentation is loading. Please wait.

Presentation is loading. Please wait.

RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles.

Similar presentations


Presentation on theme: "RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles."— Presentation transcript:

1 RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles – University of Washington

2 KUALI RICE COMPONENTS Version 1.0.x KSB - Kuali Service Bus KIM - Kuali Identity Management KEW - Kuali Enterprise Workflow KEN - Kuali Enterprise Notification KNS - Kuali Nervous System Version 2.0.x – (Beta available now!) KRMS – Kuali Rule Management System KRAD – Kuali Rapid Application Development

3 KUALI RICE 2.0 DELIVERABLES Improved Modularity Version Compatibility Kuali Rule Management System (KRMS) Kuali Rapid Application Development (KRAD)

4 MODULARITY

5 MODULARITY – IN THE PAST High level of coupling Code base overly “monolithic” Client perspective Which apis and services should I use? Which ones are internal?

6 MODULARITY – MAKING IT BETTER Leverage Maven separate out different conceptual modules of Rice into multiple Maven modules Enforce internal and external dependencies Packaging Make it clear from package names which classes constitute “apis” and which are for internal use only

7 TYPICAL COMPONENT BREAKDOWN web app implementation framework api

8 THE VISION

9 WHY? Decrease complexity Isolate external dependencies Reduce coupling Allow modules of rice to be developed and tested in isolation Improve the quality of the Rice codebase

10 WHY? Make it explicit what code client apps can use Helps Rice make guarantees on releases Make client upgrades easier Provide more deployment and integration flexibility Version Compatibility

11 DEPENDENCY UPGRADE 2.0: impacting release, time to update dependencies Each dep has been analyzed/upgraded/changed Removed unused/dead deps (oscache, bsf, concurrent backport, htmlunit, oro, standard…) Introduced deps (joda-time, groovy, selenium, jackson, tiles, guava…) Java 6+ and Servlet 2.4+ container

12 CACHING Spring 3.1’s Caching abstraction, ehcache, and the KSB OSCache is gone! alternatives can be used – no code dep on ehcache! jsr 107 with rice via Spring 3.1 Designed to be used by Rice Clients Unofficial documentation https://wiki.kuali.org/x/XgmWEg https://wiki.kuali.org/x/XgmWEg

13 DEPENDENCY UPGRADE OldNew spring 2.5spring 3.1 servlet 2.4servlet 2.5 jsp 2.1jsp 2.2 cxf 2.2cxf 2.3 oscache 3.2ehcache 2.4 xapool* 1.5 (kuali)bittronix 2.1 *xapool can still be used if desired

14 CACHING @Cacheable(value= Group.Cache.NAME, key="'id=' + #p0") Group getGroup(String id) throws RiceIllegalArgumentException; @Cacheable(value= Group.Cache.NAME, key="'principalId=' + #p0 + '|' + 'namespaceCode=' + #p1") List getGroupsByPrincipalIdAndNamespaceCode(String principalId, String namespaceCode) throws RiceIllegalArgumentException; @CacheEvict(value={Group.Cache.NAME, GroupMember.Cache.NAME}, allEntries = true) Group updateGroup(Group group) throws RiceIllegalArgumentException;

15 CRITERIA API Rich API for constructing queries Used for Services, Lookups, etc. Predicate apiAuthors = and( like("display", "*Eric*"), greaterThan("birthDate", gtBirthDate), lessThan("birthDate", ltBirthDate), or(equal("name.first", "Travis"), equal("name.last", "Schneeberger"))) QueryByCriteria.Builder.fromPredicates(apiAuthors);

16 VERSION COMPATIBILITY Concerned primarily with client-server communication with Kuali Rice services We call this “middleware” compatibility Applications written against different versions of the Rice middleware services need to be able to interoperate Should be able to upgrade middleware services without requiring every client to upgrade at the same time

17 CURRENT SITUATION

18 DESIRED SITUATION Lifespan Summary: Patch Release – as needed Minor Release – every 6 months Major Release – every 2-3 years

19 EXISTING COMPATIBILITY CHALLENGES Service contracts not always well defined Difficult for clients to know which code constitutes apis that they should be using Use of Java Serialization over HTTP Direct connections from client applications into the Kuali Rice database Project moving quickly the last few years, lots of change Verifying and enforcing compatibility

20 PATH TO COMPATIBILITY Reduce client interaction with Rice database Move public services apis to “api” modules Create package structures that reflect modularity Use SOAP for service integration Design message formats to allow for evolution across versions Version information in KSB service registry

21 ENFORCING COMPATIBILITY Define a set of rules for service evolution Only add operations and data elements Deprecate, don’t remove Create new services for major changes Automated testing against different versions Operationalize a service governance process

22 KUALI RULE MANAGEMENT SYSTEM (KRMS) KRMS is a new module in Rice 2.0 Implements a Business Rule Management System (BRMS) BRMS - a system used to define, deploy, execute, monitor and maintain business rules Business Rules – decision logic that is used by operational systems within an organization or enterprise

23 MOTIVATIONS – KUALI COEUS Functional equivalence with MIT Coeus Workflow Rules Notification Rules Validation Rules Questionaire Rules GUI for maintaining rules Integrates with data in Coeus database Supports custom KC “Functions”

24 MOTIVATIONS – KUALI STUDENT Kuali Student also has needs for a BRMS Course Prerequisites Student needs courses Student needs a minimum GPA of Student must have permission from advisor Etc. Workflow Routing Already implemented a repository for rules, but needed an execution engine

25 REQUIREMENTS General enough to be used in many different cases But must satisfy at least KC and KS requirements Rule Repository Execution Engine Must be able to track execution plan and provide information back to caller for decision support Maintenance GUI Extensible and Pluggable

26 TERMINOLOGY Proposition – a function that resolves to true or false amount > $1000 Compound Proposition – a kind of proposition that groups other propositions joined by AND or OR operator ((amount > $1000) AND (category = “other”) AND …) Action - Executed if a rule evaluates to “true” Notify unit coordinater Route an approval request Generate a validation error

27 TERMINOLOGY Rule – a proposition linked with a list of actions to execute if proposition evaluates to “true” Agenda – execution plan for a set of rules Controls the execution flow of rules in the agenda when it is executed Can optionally contain conditional branching Term – a pieces of business data that can be used in the construction of propositions Fact – an instance of a term Context – a domain in which rules run

28 KRMS UI: RULE EDITOR

29 KRMS - ARCHITECTURE

30 INTEGRATION Kuali Student KS will be integrating with their pre-existing “Statement Service” Kuali Coeus will build custom integration with their questionnaire component Integrate KRMS with other Rice components via custom “actions” KEW KEN KRAD (for validation)

31 KUALI RAPID APPLICATION DEVELOPMENT (KRAD)

32 WHY KRAD? KNS is Struts 1.x based Very little built-in rich user interface support User experience is designed more for administrative users Only has built-in support for a small set of screen types Note however, most of the core concepts from KNS are still relevant in KRAD

33 WHY KRAD? Kuali Student has a wider variety of UX (user experience) requirements Need better support for “self-service” screens for which the KNS is not well suited A need for Web 2.0 and other Rich Internet Application features Support for more complex types of screens and layouts

34 KRAD – RICH UI LAUNDRY LIST

35 KRAD TECHNOLOGY Spring MVC as the model-view-controller framework for KRAD Apache Tiles as the templating engine Fluid Skinning System for CSS jQuery as the javascript library Including jQuery UI And other plugins providing functionality like AJAX

36 SAMPLE KRAD SCREENS – KNS LOOK AND FEEL

37 SAMPLE KRAD SCREENS – KS LOOK AND FEEL

38 SAMPLE KRAD SCREENS – ADMIN LOOK AND FEEL

39 KRAD IN ACTION! For more information on KRAD, an in-depth session will be held tomorrow from 2:30 – 4:45 Will include a demonstration on how to build KRAD applications

40 AFTER RICE 2.0 Kuali Rice has a roadmap committee which works with project investors to assemble and maintain the Kuali Rice Roadmap Kuali Rice 2.1 More KRAD!

41 AFTER RICE 2.1 Data Migration Tools Workflow engine escalation Graphical workflow process designer Additional RAD Tools for application development Much more! Attend the Kuali Rice Roadmap session tomorrow at 1:15 PM


Download ppt "RAD, RULES, AND COMPATIBILITY: WHAT'S COMING IN KUALI RICE 2.0 Eric Westfall – Indiana University Travis Schneeberger – Dechen Consulting Group Peter Giles."

Similar presentations


Ads by Google