Kuali Service Bus (KSB)
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 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. Exception handlers can be registered with each queue and topic for custom behavior when messages fail and Quality of Service limits have been reached.
-
Service Discovery
Services are automatically discovered along the bus by querying against the Service Registry using the service name. There is no need for a KSB client to know the end-point URL of the service it is trying to invoke.
-
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 in the database. This can be useful for debugging.
-
Spring Based Integration
KSB is designed with Spring based integration in mind. A typical scenario is making an existing spring-based service 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.
