RICE - software development simplifiedKuali
 
Why Use KSB?
Ease of Use
Service Based Model
Excellent Spring based integration

What is KSB?

Kuali Service Bus (KSB) is a simple service bus geared towards easy service integration in an SOA architecture. In a world of difficult to use service bus products KSB focuses on ease of use and integration.

KSB Documentation

Documentation is available for each release.

KSB Diagram

KSB Features

Message Driven Service Execution - Bind standard java bean services to messaging queues for message driven beans.
Transactional Asynchronous Messaging - Call services asynchronously to support a 'fire and forget' model of calling services. Messaging participates in any existing JTA transactions, meaning messages are not sent until the current running transaction is committed and are not sent if the transaction is rolled back. Increase performance of service calling code by not waiting for a response.
Synchronous Messaging - Call any service on the bus using a request response paradigm.
Queue Style Messaging - Supports executing java services via message queues. When a message is sent to a queue only one service listening for messages on the queue is given the message.
Topic Style Messaging - Supports executing java services via messaging topics. When a message is sent to a topic all services listening for messages on the topic receive the message.
Quality of Service - Determines how queues and topics handle messages with problems. Time to live is supported, giving the message a configured amount of time to be handle successfully before exception handling is invoked for that message type. Messages can be given a number of retry attempts before exception handling is invoked. An increasing amount of delay separates each calling. Exception handlers can be registered with each queue and topic for custom behavior when messages fail and Quality of Service limits have been reached.
Discovery - Services are automatically discovered along the bus by service name and end-point URLs are not needed to connect to services.
Reliability - Messages sent to services via queues or synchronous calls automatically fail over to any other services bound to the same name on the bus, should problems arise. Services that are not available are removed from the bus, until they come back online, at which time they will be rediscovered for messaging.
Persisted Callback - Callback objects can be sent with any message. This object will be called each time the message is received (think topic vs. queue) with the response of the service. In this way we can deploy services for messaging that actually return values.
Primitive Business Activity Monitoring - If turned on, each call to every service, including the parameters pass into that service are recorded. Can be turned on and off at runtime.
Spring Based Integration - KSB is designed with Spring based integration in mind. A typical scenario is making an existing spring based POJO available for remote asynchronous calls.
Programmatic Based Integration - KSB can be configured programmatically if Spring configuration is not desired. Services can also be added and removed from the bus programmatically at runtime.