Small code size.
FTm has been implemented so that it requires as
little as 100 KB of code size. Depending on the features used, this
can be even smaller.
• Software Portability.
FTm is implemented in standard ANSI C. Any system
with a standards based C compiler can easily run FTm.
• Network flexibility.
FTm can run over any networking fabric. It currently
supports TCP, UDP, and raw Ethernet. Most fabrics can be rapidly
Integrating component based middleware solutions typically requires
selecting a particular scheduling infrastructure that all components
support. FTm can provide this capability and it is simple to incorporate
into other scheduling approaches.
• FTm’s heartbeating
protocols are configurable, have low CPU requirement, and
are extremely scalable so that as the system grows the CPU and network
load does not increase at the same rate. Failure detection is implemented
independently of other mechanisms, such as TCP, to ensure consistent
• Zero copy messaging.
FTm provides a state of the art communication
infrastructure. One of the elements of this is support for zero
copy messaging objects. This eliminates copying of message data
in the protocols and allows sharing of messages for buffering purposes.
• Automatic Discovery Protocols
are used so that FTm is able to separate
the notions of physical and logical addresses. Applications use
logical addresses when interacting with FTm
and FTm translates these into physical
addresses as necessary. This approach allows applications to be
independent of the fabric they are initially implemented on.
• Designed for Testability.
Many years of experience designing and implementing mission critical
distributed systems has taught the importance of thorough testing.
In addition to comprehensive unit testing and internal consistency
checking, FTm makes use of a simulation
harness designed to exercise all networking situations.
• Fragmentation and Reassembly
protocols are used to allow large messages to be automatically fragmented
and reassembled when they arrive at their destination. There is
no limit on the size of messages supported, regardless of the underlying
FTm utilizes protcols that scale to 100's of machines without the
use of any external protocol servers.
Optional protocols are provided for guaranteeing secure authentication
and/or privacy of communication.
• Flexible protocol engine.
FTm makes use of VNi’s
powerful and flexible Pulse protocol engine. Pulse's default configuration
is adequate for most configurations. However, its modular design
allows the protocols to be rapidly extended for particular applications.
• Integrated messaging and
FTm coordinates failures with messaging
so that strange corner cases are eliminated.
• Reliable Messaging protocols
are used to coordinate message delivery with system configuration
• Broadcast messages.
Efficient broadcasting of messages to multiple endpoints is supported.
• Flow Control protocols are used so that
FTm can provide guidance to the application
when one or more communication channels in the system are becoming
overloaded as well as when the overload has cleared up.
Network Fabrics: Ethernet (including 802.11b & g), UDP, TCP;
Programming Language: C; Memory Requirements: 100 – 200 KB
Object Size; Operating Systems: Linux, BSD (Microsoft Windows and
Wind River's VxWorks to come).