The Kuali Rice Charter specifies that the Application Roadmap Committee is responsible for defining the overall Kuali Rice Project Roadmap. That includes defining both functional and technical requirements along with expected timelines for development. Technical enhancements and requirements will be submitted to the ARC from the Technology Roadmap Committee (TRC)to be prioritized among the functional requirements.
This roadmap combines a description of the requirements we plan to support and the release plans for our software development efforts. This first generation roadmap was prepared as a collaborative effort between the ARC, the TRC, the Rice project board, the Rice project team and contributions from other interested parties. These bodies are representative of the Kuali Application projects as well as direct investors in Rice who intend to use Rice as a part of their enterprise architecture independent of the Kuali Applications. We are developing a transparent community process for authoring future versions of the roadmap, so this roadmap should be considered a living document whose next version will be prepared by the new process.
The goal of the Roadmap is to provide the Kuali ecosystem with guidance and visibility on the future directions of the Rice software. An important element in this visibility is that the Roadmap help the Kuali Application Projects (KS, KC, KFS, etc.) in formulating their own product roadmaps. It is expected that the application project teams will utilize this roadmap in the formulation of the individual application projects. As well, organizations building standalone applications using Kuali Rice will depend on the information available in this roadmap for institutional plans.
The roadmap will be presented in varying levels of detail, and will appeal to business users as well as technical users.
In order to preserve iterations of this document while the underlying information evolves over time, it will be frozen in PDF form at various points, elements will be included in powerpoint presentations, and other medium. The living content is organized and maintained in the Kuali community wiki.
Kuali Rice is a set of infrastructure and development tools that enable colleges and universities to construct sophisticated application software. There are many components and technology strategies that work in a coordinated fashion to allow quick development and implementation of application software. The Kuali Rice Project sets forth the following vision statements to guide the evolution of these components:
- First and foremost Kuali Rice is highly valued and supports the needs of the Kuali Applications by providing:
- Foundational middleware that the Kuali Applications are built on
- A software development framework that simplifies, standardizes, and accelerates development and implementation efforts.
- To provide a general-purpose framework and middleware suite than can be used by any institution to build custom applications or custom integrations not specific to any of the Kuali applications. The framework will enable novice programmers and business analysts to easily create new business functionality by using high level design and configuration tools.
- To iterate Kuali Rice toward architecture that follows the principles of service-orientation; re-use of best-of-breed components; and standards. This architecture will support the development of modular, technology neutral applications, that can be integrated with existing systems - where open source, custom developed, and commercial applications can be combined.
- To achieve sustainability through community source distribution and wide spread adoption
The Kuali Rice project originally grew out of the Kuali Financial System (KFS) project when the architects realized that many of the services and middleware components developed for KFS could be leveraged as Kuali grew to develop additional applications. The project was officially chartered in April of 2009 with a board of directors, and new supporting member institutions.
The following diagram is a conceptual representation of Rice. It represents both the application development framework of Rice, as well as the middleware services and components. It is divided into application development "tiers" and middleware "service domains". The blue boxes represent components and features available in the 1.0 version of Rice. The gray boxes represent potential future high level components and features that have been imagined and discussed.
The Kuali Rice Nervous System (KNS) is primarily represented in the application development tiers of Presentation, Controller, and Persistencen as green boxes. KNS has objects and services that help render user interfaces in the Presentation tier, like tag libraries and java server page templates. KNS also includes controller objects for typical user interaction on screens like create, update, delete and read operations on screens. The Persistence layer includes KNS features that make it easy and reliable to store business objects and data that your applications produce. It also includes a key metadata management system in the form of a Data Dictionary component that is used for coordinating services and controllers in the other service tiers.
The KNS also has ease of use features to quickly integrate with the various middleware across all service domains in the Services tier. Services in the Services Tier are divided into five service domain areas:
- Workflow and Messaging Domain - Includes Kuali Enterprise Workflow (KEW) and Kuali Enterprise Notification (KEN) message notification engines. Future work is anticipated in developing additional application integration and system connectors.
- Business Rules Domain - Includes frameworks for business rule development and execution as well as information delivery and analysis. Current strategy is to leverage work done on Kuali Student project that is building a rule engine on top of the open source Drools product.
- Identity and Access Management - Kuali Identity Management (KIM) provides services for authentication and authorization management. It provides plug ins for common authentication systems and robust authorization services for defining and implementing data access control policies and procedures.
- Data Management Services - Includes "Master Data" services for holistic management of common data (persons, organizations, facilities, budgets, etc.) shared across all the applications. Proposed services in this domain include Kuali Organization Management (KOM) and Kuali Entity Management (KEM).
- General / Core Services domain - Includes general purpose utility services for overall system configurations and supporting functionalities like extensible notes and attachments.
In addition to the service domains, Kuali Rice includes a Service Bus (KSB). The service bus provides service management and routing functionalities. It is anticipated that institutions may deploy Kuali applications using other external service buses in addition to, or in replacement of, KSB. A major principle set forth in the Kuali Rice charter is the "not invented here" principle. As Kuali Rice evolves careful consideration will be given on adopting or using already available open source solutions. Replacing the KSB with an acceptable open source alternative is being planned.