The exchange of events based messaging data is an important function of business enterprises. Messaging comprises of communication between software applications or between objects in distributed system.
Fiorano's messaging solution is based on JMS 1.1 standards for enterprise messaging.
FioranoMQ® (FMQ) is a high-performance, stable, and secure Java implementation of JMS. Fiorano's messaging solution reduces the development time of applications requiring a messaging infrastructure. The automatic store-and-forward capability of Fiorano's messaging solution across multiple servers ensures high scalability, high availability as well as high performance of message delivery across the faulty networks.
Distributed transaction support within FioranoMQ ensures high levels of consistency and reliability of message delivery; this aids the process of developing and deploying internet, intranet and extranet applications.
FioranoMQ is JMX-enabled making it easy for administrators to manage and monitor its server. FioranoMQ includes libraries written in C, C++ and C# for all major platforms. These native runtime libraries allow non-java clients to talk directly to the java server and exchange information with JMS-compliant clients.
FioranoMQ security includes integrated JSSE support. The Java Secure Socket Extension (JSSE) enables secure internet communication using Java Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols. Developers can, therefore, enable secure data transfer between client and server.
Go through the sections below to read through the Fiorano MQ features on a high level:
High Availability
Financial systems that require near-zero downtime require high availability solutions. FioranoMQ HA deployment allows JMS clients to switch to a secondary MQ Server upon failure of a Primary Server.
Client applications have the capability to store and forward messages with automatic re-connection to the backup server. In the event of fault or failure, entire information in the primary server is made available on the backup server so that applications can continue to access this information. This provides applications with automatic fault-tolerance capabilities.
Clustering
Clustering consists of multiple server instances, running concurrently, to provide increased scalability and reliability. The clustering function enables clients connected on different FioranoMQ Servers to exchange information without limiting one client to connect to the server at any given point of time. FioranoMQ provides clustering support with the help of three components: the Dispatcher, the Repeater, and the Bridge.
Fiorano's load balancing architecture involves the use of a Dispatcher-enabled server, to route the incoming client connections to the least loaded server within a cluster. The dispatcher component is connected to multiple FioranoMQ Servers. All these servers become part of the cluster that is served by the dispatcher. The repeater and the bridge components are used for Server-to-Server Communication.
XA Support
Real-world applications require transactions involving multiple resource managers. Such transactions are known as distributed or global transactions. Implementation of distributed transactions involves following the JTA standards. FioranoMQ supports both local and global transactions. If a global transaction is active, all activities performed become part of this transaction, or else they operate locally.
Scalability
The load balancing and failover protection architecture allow high scalability in terms of the number of concurrent client connections allowed by a FioranoMQ Server.
Application Server Integration
FioranoMQ integrates seamlessly with several popular J2EE application servers including, WebsphereMQ, JBoss, and WebLogic among others.
Native Runtime Support
FioranoMQ includes client libraries written in C, C++, and C#. These native runtime libraries allow non-java clients to talk directly to the java server as well as exchange information with other JMS clients.
Security
The security implementation includes integrated JSSE support. The Java Secure Socket Extension (JSSE) enables secure internet communications. It implements a Java version of SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols and includes functionality for data encryption, server authentication, message integrity, and optional client authentication. Developers can, therefore, provide secure channels for data transfer between clients and servers.
Durable Connections
Durable Connection support provides client applications with a fault-tolerant connection mechanism. If an application creates a durable connection, it needs not to worry about re-connecting back to the server in case of fault or failure. This is automatically handled by FioranoMQ's runtime library. If a message is sent during the disconnected phase, it is stored in a local repository of the client machine.
Large Message Support
FioranoMQ enables applications to transfer large messages employing the point-to-point model or the publish-subscribe model. The implementation takes care of resuming data transfer from the point of failure, if any, during the transmission process.
Hierarchical Topics
Destinations with hierarchical dotted naming convention are supported. For instance, a Topic or Queue can be named as enterprise.finance.admin or enterprise.finance.analysts. Users can then address multiple destinations using wildcards after a '.' in the hierarchy. Topics can thus be broken down into parent and child hierarchies.
HTTP Support
To provide users secure access, FioranoMQ provides Hypertext Transfer Protocol (HTTP) over Secure Sockets Layer (SSL).
Logging Facilities
FioranoMQ has tracing and logging facilities for easy detection of the location of errors in the messaging system. The FioranoMQ Administrator has the option of setting different tracing levels for each individual FioranoMQ component.
Message Snooping
Administrators can view messages published on topics as well as on queues. The ability to snoop about/around messages allows the administration, management, testing, and debugging of JMS applications.
Dead Message Queue
A message can be associated with a timeout period within which it is to be received. A dead message queue stores messages that have timed out.
Encryption, Compression Support
Encryption and compression support can be applied for a single message or for all messages to be sent to a particular destination. The default encryption of a message is based on DES. The default implementation of compression is based on Zlib implementation.
The subsections below explains the key features of FioranoMQ such as Internet Ready, Location Transparency, and Event-based Communication System. In addition, it explains the JMS communication models and FioranoMQ System Architecture in detail.
- Component Model and Configuration Concepts
- Messaging features
- Connection features
- Destination features
- Consumer features
- Producer features
- Monitoring and Management features
- Persistence features
- Security features
- Clustering and High Availability features
- Troubleshooting features
- Miscellaneous Features