Lingo is a lightweight POJO based remoting and messaging library based on Spring's Remoting which extends it to support JMS. Lingo can support a wide range of message exchange patterns including both synchronous and asynchronous message exchange.
Lingo is an ideal technology to cluster your POJO services to achieve load balancing across many servers and automatic failover. Lingo is high performance and works great in server centric environments as it can work with JCA to cleanly integrate with thread, connection and session pooling as well as handing of transactions, retry and exception handling.
Current supported message exchange patterns include
- synchronous request-response (like RMI)
- one way messaging (asynchronous invocation - like a JMS publish)
- asynchronous consumption (like a JMS subscribe)
- asynchronous request-reply (allowing the server side to asynchronously send one or more replies as the data becomes available).
You can think of Lingo as being conceptually similar to both Microsoft Indigo and JSR 181 in that it allows asynchrnous method execution, remoting and asynchronous messaging to be bound to existing POJOs (classes or interfaces) though it has no particular dependency on Web Services infrastructure.
Lingo supports pluggable messaging bindings; the first binding is an efficient JMS implementation. Over time we'll be adding other bindings to web services frameworks and other transports.
There's a great article by Sanjiv Jivan on Asynchronous calls and callbacks with Lingo and ActiveMQ
We've moved the Lingo source repository over to Subversion now so you can access the repository easily using HTTP or HTTPS for committers. For more details see how to access the Source
We're pleased to announce the Lingo 1.0 Release
New and noteworthy
- support for JMSType, JMSPriority, JMSExpiration to be specified on the request messages
- allow custom JMS headers to be specified on the request message
- provide a message selector to the JmsServiceExporter
- various bug fixes