Home - xylamic/lightrail-pubsub-integration-framework GitHub Wiki
Overview
Xylasoft Lightrail is a FULLY distributed enterprise service bus (ESB) that provides integration and communication for loosely coupled applications. It builds on the latest operating system technology to provide top tier performance, a tiny memory footprint, and a zero-configuration deployment model. Lightrail lays the groundwork for your business to move fast and be agile.
Application Discovery
Applications using Lightrail do not need to be configured to talk to each other. There are no addresses, hosts, or servers to configure. Discovery utilizes UDP multicast to locate one another in real-time, then all communication occurs through a reliable TCP, binary protocol. This means systems can be added and removed in a running environment, the changes will be automatically recognized, and Lightrail will reconfigure itself without the user application ever knowing. This allows an infrastructure to become plug-n-play. Applications can be added and removed as necessary without impacting existing, running applications.
Connections between Systems is Dynamic, they are made as they are Present
Publish/Subscribe
Lightrail provides the ability to publish and subscribe messages, creating a one-to-many relationship. This means any publisher can send a message which can be received by any number of subscribers. True event-driven behavior.
- Publishers and subscribers are linked with “Terminal” strings that are matched to one another, similar to a regular expression or topic string.
- Messages are sent directly from publisher to subscriber, there is no server in the middle. This provides enhanced security and performance.
1-to-N Messaging
Request/Response
Lightrail also provides the ability for more traditional request/response messaging. There can be any number of listeners for a given request, where a single responder is selected for fulfilling a given request.
- Requesters and responders are linked, like publish/subscribe, with “Terminal” strings.
- Since multiple listeners can respond to a single request type, there is inherent load-balancing and fault tolerance when multiple listeners are present.
Request & Response Messaging
Security
Lightrail provides message security with the Advanced Encryption Standard (AES) and 256-bit keys. This is provided on a message-by-message basis. A single application can send and receive messages with different encryptions, or no encryption, side-by-side. The AES is a standard recognized for use by the United States federal government and 256-bit encryption is secure enough to be used for Top Secret documents.
Messages
A message that is sent and received between applications is defined as any set of data. A message has no limitation on what it can contain. It can be a string, XML, or binary data. For convenience, Lightrail itself also provides several text encoding options for textual data, such as UTF-8 and UTF-16.
Application Programming Interface (API)
There are currently two APIs for building against Lightrail.
- C++ class interface: A high-performance object-oriented API that has the feel of a modern language.
- .Net interface: An API for use with Microsoft .Net languages, such as C# and VB.Net. (4.0) Both APIs are simplistic enough to start sending and receiving messages in as few as 7 lines of code.