
- Directory Configured
- Support for X.400 P3 and P7
- High Performance
- High Availability
Summary
X.400 clients (User Agents) use the X.400 P7 protocol to access a Message
Store. Isode's M-Store X.400 is an X.400 Message Store that supports
X.400 P7, and also uses X.400 P3 to connect to an MTA (Message Transfer
Agent) such as M-Switch X.400.
It serves as an intermediary between User Agents and the Message Transfer
Agent, accepting delivery of messages on the user's behalf and storing
them for subsequent retrieval. The Message Store provides facilities
for searching and listing messages, to optimize retrieval. Messages
may be deleted or retained online in the Message Store. Messages are
submitted from a P7 client to the MTA through the message store (indirect
submission) and M-Store X.400 can be configured to store these messages
in an "out box" for subsequent client access.

Message Store and client configuration management is integrated into
the messaging infrastructure using the LDAP/X.500 directory.
Deployment Targets
The Isode X.400 Message Store is designed for use in situations where
high performance and highly available message storage is required. In
particular it is suitable for:
- EDI deployments.
- Aeronautical deployments following the AMHS standards, which define
an X.400 profile that M-Store X.400 can support.
- Military messaging deployments, following the STANAG 4406 specifications.
M-Store X.400 provides support for the P772 protocol, which is based
on X.400 and defined by STANAG 4406 using X.400 extensions.
Key Benefits
The major benefits of the Isode X.400 Message Store are:
Robust
M-Store X.400 is a robust product that uses the underlying file store
to ensure message and database integrity. Online backup of both submitted
and delivered messages is supported. M-Store X.400 includes support
for failover clustering
and Off Site Hot Standby (Disaster
Recovery).
Flexible Approach/ M-Switch Integration
Use of directory based message store configuration gives a highly flexible
approach, integrated with the configuration of the M-Switch. This allows
for client/server configuration management and sharing of configuration
information between servers.
This configuration is managed with graphical or scripting interfaces,
described in Directory
Based Configuration of the Isode Messaging Servers.
Support of the P3 protocol
The Message Store does not need to be co-located with the message switch,
which means that a single message switch can support many message stores.
This gives a high degree of flexibility.
High Performance
M-Store X.400 provides for fast message access to mailboxes that may
contain hundreds of thousands of messages and high throughput message
submission and delivery with low latency. Performance numbers are given
here.
Cross Platform GUI Management
M-Store X.400 provides client/server GUI management of operations and
configuration, using tools supported on all of Isode’s platforms.
Message Store Functionality
Architecture

The diagram above illustrates the architecture of the Isode X.400 Message
Store and its relationship to P7 client and to its associated X.400
MTA using X.400 P3. An X.400 Message Store is associated with a single
X.400 user. M-Store X.400 uses a single process to support multiple
X.400 clients, retaining separate databases for each X.400 client (UA).
There are two databases (of the same format) for each Message Store
client; an "In Box" that holds messages delivered to the user
and an "Out Box" for messages sent by the X.400 client. Each
message is held as a single file on disk that contains:
- Message Content.
- Message Envelope Information.
- Message Store Sequence Number and Child Sequence Number information.
This file is written once on message delivery (or submission), and
not changed subsequently. The files are named by the parent sequence
number, which is the primary index to the message in the P7 protocol.
By use of the file store, the indexing and integrity mechanisms of the
file store are utilized by M-Store X.400. There is no complex database,
and so problems associated with database corruption are avoided. Some
operations, such as fetch based on sequence number can operate very
efficiently using just this database structure.
In order to support efficient searching and listing of messages, Isode's
M-Vault X.500 directory server is used as an index server for M-Store
X.400. Each message has an entry in the directory, with the message
status (new; listed; processed) and attributes for searching. Reasons
for this choice:
- M-Vault is designed to support high performance searching, with
flexible indexing.
- M-Vault scales well, and can support efficient indexes over tens
of millions of messages.
- The X.400 Message Store information model is very closely aligned
to the X.500 information model, and in particular search filters are
nearly identical. Thus M-Vault X.500 provides exactly the right searching
services.
Note that authoritative message information (apart from message status)
is held in the message databases. The index server can be rebuilt from
the message database, with all messages reverting to state "new".
The M-Store X.400 server is a single process, comprising a number of
modules. The P7 server module supports P7 connections initiated by multiple
P7 clients and will:
- Support Summarize, List, Fetch, Register (auto action) and Delete
operations using the In Box or Out Box databases, and the index server.
- Pass Indirect Submission operations to the P3 Submission module.
- Send auto-alerts to the P7 client, as requested by the P3 delivery
module.
The P3 submission module will initiate a connection to an MTA for indirect
message submission. After the message is submitted, a copy may be stored
in the Out Box database.
The P3 delivery module accepts messages being delivered by an MTA.
This may be over a connection initiated by the MTA or may make use of
a connection initiated by the P3 Submission module. Delivered messages
will be stored in the In Box database, and then registered auto
actions are processed. Auto-forwarded messages are handled through
the P3 Submission module. Auto alerts are passed to the client through
the P7 server module.
After a message is delivered into the In Box database for a user, the
most recent message for that user is cached in memory. In a typical
high performance system, the P7 client will have a registered auto alert
and will fetch the message immediately and thus make use of the memory
cached copy. Clients will generally cache message copies, and in this
case the only further message change will be when it is deleted. Thus
the only disk i/o is that needed to write the message, and set status
in the index server. The message database format is chosen to be efficiently
generated from a P3 delivery. This approach provides for very high volume
and low latency delivery.
Performance Optimization
X.400 P7 is a complex and flexible protocol that can be used in many
ways. While M-Store X.400 supports a wide range of usage, it is optimized
for certain types of use, as described here. Isode's X.400
Client API is designed so that calls will use M-Store X.400 in an
efficient manner. Key optimizations:
- Full message fetch. Few clients make use of the P7 capabilities
to retrieve selected parts of messages.
- Empty mailbox. Many systems operate with a "fetch message;
process message; delete message" model.
- Large mailboxes, that may contain hundreds of thousands of messages,
with most fetched and cached. A common model (for both In Box and
Out Box) is that messages are archived, often for a fixed period (e.g.,
30 days). At the same time, new messages are fetched quickly, so only
new messages are active. There are various optimizations in support
of this model, including
- Listing of new messages (to efficiently determine new messages
in a large mailbox).
- Systematic fetching of all messages in a large mailbox, to
enable restore on local In Box and Out Box messages on a client.
- Searching by message priority (precedence) and message size, which
is useful for clients to control order of processing.
- Delivery to clients using auto-alert and immediate fetch.
It is recommended to consider this information when configuring or
designing clients to use M-Store X.400.
Auto Actions
Auto actions are
an important feature of an X.400 Message Store. An auto action may be
applied to all messages or to selected ones (e.g., to all high priority
messages). M-Store X.400 supports the following auto actions:
- Auto Alert. This sends an alert to the P7 client that a message
has been delivered to the store, enabling the client to immediately
fetch the new message.
- Auto Forward. Message is forwarded on to another recipient, and
the message originator notified with an Inter Personal Notification.
A copy may be kept for the local user, and this variant is sometimes
referred to as Auto Copy.
- Delayed Auto Forward. Message is auto-forwarded if it is not fetched
within a configured period. This mechanism can be useful to ensure
that messages get processed promptly.
Military Messaging
M-Store X.400 provides support for Military Messages as defined in
STANAG 4406.
Precedence Handling
M-Store X.400 is aware of message priority, including six level STANAG
4406 priority (precedence). Many actions are event driven, and so there
is no "ordered queue" to precedence sorted. Clients can search
for messages based on priority, and thus order their work to retrieve
higher precedence messages first.
For message delivery, M-Switch X.400's precedence ordered queuing will
ensure that high precedence messages get delivered ahead of lower precedence
messages. M-Store X.400 auto-alert can immediately notify the client.
Message Ageing
Both In Box and Out Box stores can be configured to delete messages
after a certain period of time. This is useful as a mechanism to automatically
clear out messages, and also in support of mandatory online archiving
requirements, such as the ICAO (Aviation) requirements for two and thirty
day archiving.
Backup
Because M-Store X.400 uses the file store to hold messages (and not
a special database), standard backup techniques may be used on the M-Store
X.400 database. This should be complemented by use of M-Vault X.500
(index server) database backup.
M-Store X.400 also provides built in backup and restore commands, which
can be driven using the SOM protocol described below with a scripting
interface. This backs up all or selected mailboxes to a specified file
store location. Backup and restore can also be requested from XMSConsole
described below.
Management

M-Store X.400 uses directory based configuration, which means that
configuration information is stored in M-Vault X.500. Use of directory
for message store configuration gives a highly flexible approach, integrated
with the configuration of the M-Switch. This allows for client/server
configuration management and sharing of configuration information between
servers. Configuration is managed with the EMMA (Enterprise Messaging
Management and Administration) described in the Directory
Based Configuration of the Isode Messaging Servers.
Operational management makes use of the SOM (Switch Operational Management)
framework, described under M-Switch
Operational Management. This provides a client/server system for
managing M-Store X.400. Management is performed by XMSConsole, which
can manage mailboxes and connections.
XMSConsole: Click for larger image
Features of XMSConsole include:
- Supports management of multiple M-Store X.400 servers from one place.
- Overall status information on connections and mailboxes.
- Monitors unread messages, a key features for environments where
messages contain urgent actionable information (such as the military
or aviation
environments).
- Manages X.400 auto-actions (auto-forward, delayed auto-forward and
auto-alert) - see here
for more information.
- Provides information on each mailbox, and the messages contained
in the mailbox.
- Deletion of messages and mailboxes.
- View the active connections to M-Store X.400 (Uses the SOM protocol
to contact the P7 X.400 Message Store).
M-Store X.400 provides audit logging of key events, and uses Isode
events for errors and operational information. This is described in
here.
M-Store X.400 provides SNMP monitoring of general status and network
connection. Events may also be monitored by SNMP, with alerts using
SNMP Notifications (TRAPs). Further information is given here.
Security
All of the protocols support X.400 simple authentication.
Client Application Integration
M-Store X.400 is good for use with custom applications and clients.
Isode's cross platform X.400
Client API, which can be used to integrate client applications over
X.400 P7.
X.400 P7 Clients & Testing
For testing M-Store X.400, Isode recommends use of XUXA,
which is a demonstration and test P7 Client.
If a general purpose messaging client is needed for general or military
use, Isode recommends the Boldon
James P7 Plug in for Outlook, which enables Microsoft Outlook to
be used with M-Store X.400, and the associated Safemail.mil product
for military messaging.
Interoperability
The Isode X.400 Message Store has been used with many P7 clients from
a number of different vendors.
Conformance
| ITU X.400 |
Message Handling System: System and Service Overview,
ISO/IEC 10021-1, 1988 |
| ITU X.411 |
Message Transfer System: Abstract Service Definition and Procedures,
ISO/IEC 10021-4, 1988 |
| ITU X.413 |
Message Store: Abstract Service Definition,
ISO/IEC 10021-5, 1988 |
| ITU X.420 |
Message Handling Systems (MHS): Interpersonal Messaging System,
ISO/IEC 10021-7, 1988 |
| ACP 123 |
Information Technology: Message Handling System (P772) |
There are two ITU/ISO Protocol Implementation and Conformance Statement
(PICS) documents for M-Store X.400, that give a detailed specification
of the X.400 services and protocol elements supported:
Military Conformance is according to:
- ACP 123, "Common Messaging Strategy and Procedures", August
1997. ACPs (Allied Communications Publications) are issued by the
CCEB (Combined Communications Electronics Board).
- STANAG 4406, Edition 1, Version 3. "Military Message Handling
System", March 1999. STANAG documents are NATO standardization
agreements.
- STANAG 4406, Edition 2. "Military Message Handling System",
March 2005 (to be ratified)
- Annexe A: "Military Message Handling System Extensions"
- Annexe C: "Alpha Profile Set"
Management Conformance
| RFC 1801 |
MHS use of the X.500 Directory to support X.400 MHS Routing, S.
Kille, June 1995 |
| RFC 2294 |
Representing the O/R Address hierarchy in the X.500 Directory Information Tree, S. Kille,
March 1998 |
| ITU X.500 |
The Directory: Overview of concepts, models and services, ISO/IEC
9594-1, 2001 |
| RFC 2788 |
Network Services Monitoring MIB, S. Kille, N. Freed, March 2000 |
Availability
Isode M-Store X.400 is available on Solaris, Windows, Linux and HP-UX. More
details on supported platforms and versions can be found here.