Chapter 1. Global

Table of Contents

Rice Client Overview
Embedded
Bundled
Thin Java Client
Web Services
Global Configuration Parameters
Rice Service Architecture and Configuration Overview
Overview
Implementation Details
Accessing Rice Services and Beans Using Spring
Eclipse and Rice
Overview
Download the Tools
Import rice into Eclipse as a project (Source distribution only)
Check out the Rice code (Non-source SVN distribution only)
Set up database drivers
Set up Eclipse for Maven
Rebuild Rice
Install the database
Installing the appropriate configuration files
Run the sample web application
Changing Rice project dependencies
Other Notes
Creating Rice Enabled Applications
Creating a Rice Client Application Project Skeleton
Reorder Eclipse Classpath
Rice Configuration System
Data Source and JTA Configuration

Rice Client Overview

You can integrate your application with Rice using several methods, each described below.

Embedded

This method includes embedding some or all of the Rice services into your application. When using this method, a standalone Rice server for the Rice web application is still required to host the GUI screens and some of the core services.

To embed the various Rice modules in your application, you configure them in the RiceConfigurer using Spring. For more details on how to configure the RiceConfigurer for the different modules, please read the Configuration Section in the Technical Resource Guide for the module you want to embed.

Figure 1.1. Diagram of a sample embedded implementation

Diagram of a sample embedded implementation

Advantages

  • Integration of database transactions between client application and embedded Rice (via JTA)

  • Performance: Embedded services talk directly to the Rice database

  • No need for application plug-ins on the server

  • Great for Enterprise deployment: It’s still a single Rice web application, but scalability is increased because there are multiple instances of embedded services.

Disadvantages

  • Can only be used by Java clients

  • More library dependencies than the Thin Client method

  • Requires client access to the Rice database

Bundled

This method includes the entire Rice web application and all services into your application. This method does not require a standalone Rice server.

Each of the Rice modules provides a set of JSPs and tag libraries that you include in your application. These are then embedded and hooked up as Struts Modules. For more details on how the web portion of each module is configured, please read the Configuration Guide for each of the modules.

Figure 1.2. Diagram of a sample bundled implementation

Diagram of a sample bundled implementation


Advantages

  • All the advantages of Embedded Method

  • No need to deploy a standalone Rice server

  • Ideal for development or quick-start applications

  • May ease development and distribution

  • Can switch to Embedded Method for deployment in an Enterprise environment

Disadvantages

  • Not desirable for Enterprise deployment when more than one application is integrated with Rice

  • More library dependencies than the Thin Client method and the Embedded Method (since it requires additional web libraries).

Thin Java Client

This method utilizes some pre-built classes to provide an interface between your application and web services on a standalone Rice server.

Many of the Rice services are exposed by the KSB as Java service endpoints. This means they use Java Serialization over HTTP to communicate. If desired, they can also be secured to provide access to only those callers with authorized digital signatures.

Figure 1.3. Diagram of a sample Thin Java Client implementation

Diagram of a sample Thin Java Client implementation


Advantages

  • Relatively simple and lightweight configuration

  • Fewer library dependencies

Disadvantages

  • No transactional integration between client and server

  • Plug-ins must be deployed to the server if custom Rice components are needed

Web Services

This means directly using web services to access a standalone Rice server. This method utilizes the same services as the Thin Java Client, but does not take advantage of pre-built binding code to access those services.

Advantages

  • Any language that supports SOAP web services can be used

Disadvantages

  • No transactional integration between client and server

  • Plug-ins must be deployed to the server if custom Rice components are needed

  • Web Services can be slower than other integration options