EDI (electronic data interchange) is the direct, application-to-application transmission of business documents such as purchase orders, invoices and remittance advices. EDI is a critical component of many e-commerce solutions. Isode does not provide software to manage EDI formats or business integration, but does provide components for transfer of EDI documents. This page describes Isode's EDI solution components.
EDI defines messages and rules for exchanging business information. EDI requires a transport mechanism to exchange messages, which can operate client/client, client/server or server/server. X.400 is a common choice for transferring EDI messages as it offers:
- High reliability
- Good audit logging, security and management
- Two levels of end to end acknowledgement as standard features
- Can build store and forward networks in desired configurations, including mesh and star
The above diagram shows an overall architecture for how X.400 servers and protocols are used to build an X.400 EDI infrastructure which enables the exchange of EDI messages. The two core Isode products used to provide this service are:
- M-Switch X.400 is a high performance X.400 MTA (Message Transfer Agent), suitable for high volume backbone operation. M-Switch X.400 provides a flexible, secure and robust MTA solution.
- M-Store X.400 is an X.400 Message Store supporting client access using the X.400 P7 protocol, and accepting messages from an MTA using X.400 P3.
EDI applications can connect to an X.400 Infrastructure in two ways:
- By use of X.400 P7, connecting to an X.400 Message Store such as M-Store X.400. This is a client server protocol to access delivered messages, and to submit new messages. This is appropriate for small end user EDI applications, and might typically be used by someone running an EDI application on a PC.
- By use of X.400 P3, connecting to an X.400 Message Transfer Agent such as M-Switch X.400. This is appropriate for server applications, that do not require the X.400 infrastructure to store messages. It provides a submission and delivery service.
Service Provider Options
End user EDI organizations will often connect to each other using a service provider, providing connectivity between EDI organizations, and acting as a transaction broker (as with a traditional EDI VAN (Value Added Network). This model is shown below.
The core component for a service provider will be one or more X.400 Message Transfer Agents (M-Switch X.400) which provide X.400 switching connectivity between the EDI end user organizations, who are the customers of the EDI . Where the EDI service provider wishes to support small end users, it will also operate an X.400 Message Store (M-Store X.400) in order to provide X.400 P7 client server access.
EDI End User Organization Options
An EDI end user organization typically has two connectivity choices. The first is to connect using X.400 P7 to an EDI service provider. This is a good choice for a small organization that does not require to operate its own X.400 servers. Use of X.400 P3 could in principle be an alternate option for such organizations, but in practice most EDI service providers have chosen to offer X.400 P1 and P7 services, but not P3.
The second choice is for an end user organization to operate an X.400 Message Transfer Agent (M-Switch X.400) and to connect using X.400 P1 (server to server). This is appropriate for an organization with higher volumes of traffic to connect to an EDI service provider, or for two end user organizations to interconnect directly without using and EDI service provider. In this configuration, the EDI end user organization has two choices to connect users to the X.400 Message Transfer Agent:
- Direct connection of end users, using X.400 P3.
- Operate a local X.400 Message Store (M-Store X.400) and connect end users using X.400 P7.
EDI Application Integration
EDI applications using an X.400 infrastructure need to be able to connect using X.400 P3 or P7. While some EDI applications have integrated X.400 support, in most cases this needs to be added. Isode provides an EDI Client API product, which is a cross-platform simple API, which enable an EDI application to operate over either a P3 or P7 connection. This API is ideal for applications and special purpose clients that require to be connected to an X.400 infrastructure with a minimum of intervening software. Benefits of the Isode EDI Client API:
- Support of both P3 and P7, means that the EDI application can be deployed in either of the scenarios shown above, without code changes.
- API provides a simple abstraction and sample applications, which enable very rapid development.
- API enables generation of X.400 Inter Personal Notifications (IPNs) to acknowledge EDI message receipt.
- Use of a programmatic API ensures robust message handling, and a straightforward approach to dealing with error conditions.
- API supported in Java and 'C', as popular programming languages.
- API supported in Tcl scripting language, which enables flexible testing and easy integration.
In most situations, EDI integration with X.400 is best achieved as an end user integration using X.400 P3 or P7 as described above. In this model each instance of the EDI application is an X.400 end user that sends and receives EDI messages. There are more complex scenarios, where there is a need to integrate X.400 transfer with other transfer mechanisms, where this simple model does not work. If there is a need to map large numbers of addresses, and to map transport errors between X.400 and the remote system, then a gateway model is appropriate. Isode offers two EDI gateway approaches, described below.
Direct EDI Gateway
Isode provides an X.400 Gateway API which is co-resident with M-Switch X.400. This API enables an EDI gateway to get at the full message transfer capabilities of X.400, and can support generic integration between an external EDI transfer infrastructure and X.400. In particular, the gateway can receive messages to be delivered to multiple recipients, and can generate X.400 delivery reports (which is not possible with X.400 P3 or P7). While offering full generality, this API is designed to be easy to use.
Indirect EDI Gateway using X.400/Internet Conversion
EDI is often operated over the Internet using SMTP (Simple Mail Transfer Protocol). This can lead to a requirement to convert between EDI/X.400 and Internet Mail. The MIXER specifications are a good basis to achieve this. Isode offers a solution for this with its M-Switch MIXER product. This provides a flexible mapping between MMHS and Internet Email, including full directory based configuration of the mappings. M-Switch MIXER also includes flexible authorization, which can control use of the MIXER gateway and control who can send messages.
In some situations this basic mapping is sufficient. Where additional mapping is needed, such as conversion to XML formats, this architecture can be extended to use SMTP to connect to an EDI Gateway. This architecture has the advantage of using the popular SMTP protocol, but does mean that some X.400 services are not available as a consequence of the MIXER translation. If access to all X.400 services is needed, the direct EDI Gateway approach is recommended.