Supported APIs

The following APIs are available for use with the trading engine:

  • Onboarding APIs. Enable configuration of communities, partners, and exchanges. Partner services, agreements and components are also detailed.
  • Pluggable transport. Enables the trading engine to integrate with any other system.
  • Pluggable embedded server. You can implement a custom embedded server for consuming messages.
  • Pluggable splitter. Enables you to implement your own EDI splitter for use by the trading engine.
  • In-line processing. Enables the trading engine to apply custom processing to documents in process.
  • Startup services. Enables the trading engine to host user-defined background tasks.
  • Web services. These enable remote operations to submit, resubmit and query messages and to add or remove CPAs.

Other supported functionality

The following functionality is also supported. Information about these advanced features is included in this guide because a developer's help is required for implementation.

  • Web services message protocol. Allows sending and receiving SOAP messages with payloads in the SOAP body or as MIME attachments. Included is support for WS-Security and WS-Addressing.
  • FTP client scripting interface. Describes a scripting interface to accommodate non-standard interaction with FTP servers.

Developing custom extensions

The following steps describe the process and roles for developing custom extensions for the trading engine:

  1. An analyst identifies a business or technical need and determines the type of functionality required to meet it.
  2. A software developer who has received training in the trading engine APIs writes and tests code for the desired functionality and documents how to deploy and configure it.
  3. A system administrator uses the documentation to install the new functionality in the trading engine.
  4. If needed, an application administrator configures the newly added functionality to solve a business need. For example, the application administrator can create a pluggable transport exchange point or configure an in-line processor through the user interface.

Development guidelines

The following are guidelines when developing in a distributed, clustered, multi-threaded, multi-node and multi-machine environment:

  • Synchronize shared resources as necessary.
  • Avoid long running processes.
  • Custom code can run more than once when messages are resubmitted.
  • Properly use memory resources. Message payloads may be large.
  • Make sure processing is thread-safe, as messages are processed in parallel.
  • Messages processed on one machine can be re-processed by a different node at a later time.
  • Be careful when accessing resources of a particular machine (for example, file system, queue server, network access). A message can be re-processed or accessed from another machine in the cluster.
  • Java objects representing custom extensions are dynamically created each time they are used. Avoid lengthy initialization procedures. Consider putting initialization sequences into static initializers or external singletons.

Related Links