Can I use iBus//MessageBus under Windows 2000 if there is no network interface card?
Yes. Install the Microsoft Loopback Adapter as described at
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q236869
Then modify your quality of service, adding interface=127.0.0.1 to the options for the IPMCAST protocol object.
Why am I getting an error saying the license cannot be found?
Either your CLASSPATH is not set correctly or you did not install any license file.
Make sure you follow the installation instructions carefully.\
Why am I getting an error about a corrupted license file?
Most probably the license file was modified while you saved it to a file.
If the license file was sent to you by e-mail, use "Shift-Click" or "Save As" to copy the attachment to a file.
Do not try to load the license file into an editor as this might corrupt it.
Why am I getting a class not found error?
Most probably your CLASSPATH is not set correctly for iBus//MessageBus.
Make sure you follow the installation instructions carefully. Entering javap javax.jms.Message should dump
the interface of the JMS Message class. If you are getting an error message instead, then you haven't set
up your CLASSPATH correctly.
Can iBus//MessageBus talk to CORBA objects?
Yes. In fact, it is not "iBus" that does need to talk
to CORBA objects, it is your application (client or server side) that may need to access
CORBA objects. This is accomplished by using any Java CORBA ORB, such as JavaIDL from
JDK 1.2 or higher.
Can I use iBus//MessageBus to access legacy code?
Yes. iBus//ANSI-C is designed to work with all
computer languages supporting an ANSI-C interface. Examples are C, C++, Perl or Fortran,
and gateways messages to iBus//MessageBus.
can I use iBus//Message//Bus in multi-threaded application?
Yes, if carefully done: The JMS standard does not require all JMS
implementation classes to be thread-safe. Thus, multi threaded applications must ensure to use as many
Sessions, Publishers etc. as required to guarantee that only one thread uses a particular component.
See details in the Programmer's Manual.
Which programming languages are supported?
Since iBus itself is developed entirely in Java, the Java
language is the natural fit. The iBus//ANSI-C add-on to the iBus//MessageBus or iBus//MessageServer
opens up iBus to any language that can access an ANSI-C library. Examples include C, C++, Fortran, Perl, etc.
Is a tutorial available?
Yes, the iBus//MessageBus Programmer's Manual contains a comprehensive tutorial
which covers all of the major JMS usages (publish/subscribe, point-to-point and synchronous request/reply).
How are typical iBus//MessageBus applications structured?
A typical iBus//MessageBus application uses the asynchronous publish/subscriber
communication model. The distributed application is driven by the producer(s) generating messages, very much like modern
graphical user interface based local applications. An older legacy code that is being retro-fitted into a more decoupled
environment may benefit from using the blocking, synchronous interaction model provided by iBus//MessageBus as well.
My boss wants my blazingly fast iBus//MessageBus application to run even faster. What can I do to speed it up?
There are many factors that determine the speed of a Java application in general,
and an iBus//MessageBus application in particular.
Please consult the iBus//MessageBus Programmer's Manual, chapter "iBus Performance Tuning" and the "iBus//MessageBus Tuning Guide".
Which platforms are supported?
Formally tested platforms are:
Linux on Intel Platforms; Windows 9x, NT and 2000; Sun Solaris (Sparc)
The Softwired iBus//MessageBus requires a Java Virtual Machine 1.2.2 or newer. Java 2 is fully supported but not required.
How is licensing handled?
Technically, licensing is managed by adding a license file to the Java classpath
(e.g. by adding it to the iBus//MessageBus jar file). The license file contains the number of purchased licenses.
For pricing and licensing information, please contact info@softwired-inc.com .
If you downloaded a trail copy of iBus//MessageBus, you should have received the license file by e-mail.
(You did enter your real e-mail address, right?) If you did not receive it, contact support.
Is there support for mobile devices?
Use Softwired's iBus//Mobile product to extend the reach of JMS to any portable device.
Is SSL supported?
Use iBus//MessageServer for SSL Support.
Is XML supported?
Yes, iBus//MessageBus provides an XML message type. This allows you to send and receive XML
expressions or DOM trees. For that purpose, any JAXP compatible XML parser can be
used along with iBus. The sending or receiving application can ask iBus//MessageBus to validate
the XML message against its DTD. XML support enables application developers to create
widely distributed and loosely coupled systems, as required by many e-commerce or m-commerce solutions.
Is iBus//MessageBus really Plug n Play?
Absolutely! The messaging paradigm allows "plug and play" software components.
Since all communication between components is anonymous
and mediated by the middleware, components can join and leave a running
system at any time, without interrupting service of the full system.
It is common practice in a messaging based distributed system to perform
maintenance without stopping the system: A new, upgraded component is
inserted in the environment, while later the old, outdated version is disconnected.
Other participants never detect the change,
thus an application developer can focus of the business logic, instead of on the
management on network and component failures.
What is iBus//MessageBus?
iBus//MessageBus is a highly scalable publish/subscribe enterprise middleware written entirely in Java. It supports the Java Message Service (JMS) standard (see http://java.sun.com/products/jms/). It allows application developers to quickly build robust, scalable distributed applications that share data via reliable IP multicast.
Why should I use iBus//MessageBus?
Application developers will benefit from:
- Greatly reduced development time and cost.
- Reduced complexity in their projects.
- Being able to focus on the application logic, instead of on the communication infrastructure.
- Being able to work on a system in operation: upgrading, adding and fixing components at runtime.
System managers will benefit from:
- Greatly reduced downtime during maintenance phases
- Reduced network load through efficient use of IP multicast.
- Low latency, high throughput message distribution.
- No downtime while adding, upgrading or fixing components and processes in their distributed system.
- Huge savings in time through using iBus//MessageBus.
How does iBus//MessageBus compare with competing products?
iBus//MessageBus offers the performance of products that cost many times more. No comparable product costs less.
When should I use iBus//MessageServer instead of iBus//MessageBus?
- When you use the JMS point-to-point domain for exactly-once processing.
- When you need the safety of a central, persistent message store. iBus//MessageServer serves as a repository for messages that cannot be processed immediately. For instance, e-commerce orders queue up in the server when the order processing system is temporarily unavailable.
- When you need secure Internet access via SSL, or full access control right down to the topic and operation.
- When you want full transactional support for messages in Web Logic.
When should I use iBus//MessageBus instead of iBus//MessageServer?
- When your applications exchange data in real time and need the maximum speed.
- When you need to distribute large amounts of data to many applications without making your network a bottleneck. IP multicast allows each message to be set 1 to 1.2 times regardless of the number of applications processing the data, so it scales better than any hub and spoke architecture.
- When you want to design a system with no single point of failure. Pure peer to peer operation means no central servers.
- When you need group membership features such as high availability.
iBus//MessageBus applications are aware of all other applications publishing or subscribing on the same topic.
This provides the basis for sophisticated reliability features like:
- High availability: an application can play the role of a `hot spare' and take over essential services in case of hardware, software, or network failure.
- Load balancing: since iBus//MessageBus applications are aware of each other, they can agree to split the workload in real time. Your system scales easily by slotting new hosts into your server farm at any time. It continues to run when servers are taken down for maintenance.
- Voting, parallel processing, resource discovery: use the many special algorithms that take advantage of low latency communications among a group of cooperating applications.
- When you need low latency for time-critical data. Direct peer-to-peer communication passes messages via the shortest possible path.
- When you want a loosely coupled interaction using the Observer-Observable design pattern. For instance, multicast operational log messages from many applications to a topic. A standard log processor can run permanently, and each administrator or developer can open his own tool to listen in on the data stream. Special monitor processes can proactively note problems by searching for patterns in the data.
None of the monitored applications need know of the existence of these applications, nor need the tools know of each other.
What kind of applications can I develop using iBus//MessageBus?
The Softwired iBus product line is used to build highly scalable, fault-tolerant distributed applications and is the ONLY fully distributed, serverless JMS product available on the market. It is uniquely designed for local applications requiring a zero downtime, zero administration operation with the highest possible message delivery rate and group coordination features.
Examples include fault-tolerant Web portals, distributed application servers or in-house business logic with a fault-tolerant design.
The Internet Engineering Task Force published a paper (IP Multicast Applications: Challenges and Solutions) categorizing multicast applications into the following taxonomy. See the original for more details.
- One-to-Many
- Scheduled audio/video distribution.
- Push media: news headlines, etc.
- File distribution and caching
- Announcements: network time, configuration updates, etc.
- Monitoring: Stock prices, etc. (Similar to push media, but higher volume).
- Many-to-Many
- Multimedia conferencing
- Synchronized resource: shared databases.
- Concurrent processing: Distributed parallel processing (i.e. use many computers for large computations).
- Collaboration: shared document editing.
- Distance learning.
- Chat groups.
- Distributed interactive simulations.
- Multi-player games.
- Jam sessions: shared audio.
- Many-to-One
- Resource discovery.
- Data collection: e.g. many sensors to one host.
- Auctions.
- Polling.
- Juke box.
- Accounting: basically data collection.
How much does it cost?
Current pricing information is available from sales@softwired-inc.com
Is a trial version available?
The entire Softwired iBus product line is available, fully functional, for a 30 day free trial.
Contact sales@softwired-inc.com.
Is training available?
Yes. Training is available through partner companies. Please send an e-mail to info@softwired-inc.com for more information.
How is licensing handled?
Technically, licensing is managed by adding a license file to the Java classpath (e.g. by adding it to the iBus//MessageBus jar file).
The license file contains the number of purchased licenses. For pricing and licensing information, please contact info@softwired-inc.com.
If you downloaded a trail copy of iBus//MessageBus, you should have received the license file by e-mail.
Is iBus//MessageBus easy to use?
Yes, the messaging paradigm is very easy to understand and use by application developers.
In fact, most application developers have their first iBus application running within an hour.
The iBus//MessageBus is specifically designed to shield the application developer from any network specifics,
such as error recovery, non-delivery failures, temporary network downtime and so on.
See also the easy-to-follow sample applications in the iBus//MessageBus release,
which lead you through increasingly advanced features and techniques.
Is iBus//MessageBus easy to install?
Yes, iBus//MessageBus is installed through a user-friendly install shield, on any Unix, Windows and Linux platforms.
Does iBus//MessageBus require any special hardware?
No, the iBus product line is written entirely in the Java language from Sun Microsystems. Thus, it runs on any hardware that features a Java Virtual Machine. Specifically, this includes Linux, Sun Solaris, other Unix flavors, Windows 9x, NT and 2000.
Do I need a special operating system and router setup to use iBus//MessageBus?
No, in nearly all cases the operating system is ready to support the IP multicast features used by iBus//MessageBus out of the box. Messages sent by iBus//MessageBus have a multicast "time to live" of 1 by default, meaning they should not be forwarded outside the local network. If you want iBus//MessageBus messages to spread further than that, adjust the time to live (see the Programmer's Manual) and configure your routers to allow forwarding of multicast packets.
Are performance numbers available?
We believe iBus//MessageBus is the fastest serverless JMS product on the market - and in version 4.5.0 it got faster again!
We are hesitant to publish performance figures for several reasons:
- Performance is dependent on your exact hardware.
- Performance is dependent on the version of the Java Virtual Machine.
- Performance is dependent on the skilled use of IP Multicast.
However iBus//MessageBus has outstanding performance characteristics (compared to other advertised claims of 'performance') if you use publish/subscribe to a large number of consumers, for which iBus//MessageBus is simply unbeatable. No matter how many subscribers receive messages, the message is transmitted over the network not more than 1.0 to 1.2 times. There is very little overhead imposed by iBus//MessageBus, except to provide reliability on top of the unreliable raw IP Multicast network protocol.
For details and some rough performance numbers, see the "iBus//MessageBus Tuning Guide".
Where can I find out more about multicast?
There are number of good books: we enjoyed Ralph Wittman and Martina Zitterbart's
Multicast Communications (2000), and C. Kenneth Miller's Multicast Networking and Applications (1998).
Does iBus//MessageBus support PGM or PIM?
Pretty Good Multicast is a proprietary multicast protocol for unreliable
delivery of multicast messages over a wide area network. iBus//MessageBus
uses a highly tuned reliable multicast protocol to provide very high performance
in a local area network.
PIM and a host of other protocols are for routing multicast traffic in a
Wide Area Network. iBus//MessageBus is generally used in LAN.
Does iBus//MessageBus support true multicast?
Yes. The Softwired iBus//MessageBus fully exploits IP Multicast.
The reliable IP Multicast implementation is adaptable from comparatively
small IP Multicast groups of e.g. 100 stock traders up to communities on
virtual private networks with members in excess of several 10'000.
Does iBus//MessageBus support synchronous request/reply?
Yes. In compliance with the JMS standard, synchronous request/reply is supported.
In addition, iBus//MessageBus supports synchronous request/reply with multiple replies
and selective time out values.
Is there a limit on message size?
No. Other than operating system and/or hardware limitations (such as available memory),
there is no limitation on message size.
Does iBus//MessageBus provide failure detection and fault tolerance features?
Yes. The iBus//MessageBus features a group coordination API. Members (i.e. producers or consumers)
on topics are detected and reported to user space. The list of members is ordered alphabetically.
Members leaving (regardless of whether they leave controlled or due to a crash) are detected and
reported as well. This feature allows to build powerful fault-tolerant distributed systems, such
as distributed application server logic or web portals.
iBus//MessageBus 4.5.0 enhances the group coordination API with information on whether a member
exited cleanly or crashed. Each member can now distribute a map of key-value pairs to describe its
role or state or provide other information useful in advanced applications.
Is iBus//MessageBus extensible?
Yes. Unlike other middleware, iBus//MessageBus features a "gray box" approach.
While the top level API is fixed (i.e. the JMS API), the interface to the underlying transport
protocol is extensible via a published "protocol composition framework". This allows the
development of new Qualities of Service not available in any other middleware product. Examples include:
Bandwidth management, such as limiting bandwidth to achieve a fair setup for all
topic members.
Support of one-way transport channels, such as a radio broadcast signal to cars.
Support of asymmetrical transport channels, such as broadband, broadcast satellite
downlink with a telephone-based point-to-point uplink for failure management.