Wikis > FTP BC

What is the FTP BC?

Binding components are used to send and receive messages via particular protocols and transports. They serve to isolate the JBI environment from the particular protocol by providing normalization and denormalization from and to the protocol-specific format, allowing the JBI environment to deal only with normalized messages – JBI Specification 1.0 (JSR 208).

Open ESB FTPBC is JSR 208 compliant, it provides a message transportation via FTP protocol so that services (which comprise operations) can be defined using WSDL and bound to FTP as its underlying message transportation protocol, other components in a JBI environment (for example, an SE can further orchestrate the services consumption and provision).

FTP BC implements all required BC interfaces in JBI specification so that it can be deployed and run in any JBI compliant target environment.

To facilitate the process of service definition and binding, the implementation also comes with a design-time component, a NetBeans module which makes WSDL authoring and FTP binding a convenient process in NetBeans IDE.

Using the FTP BC


  • Regular and Secured FTP
    • FTP (RFC 959)
    • Transport Security
      • FTP/TLS (RFC 2228 + RFC 4217) – Explicit SSL (RFC 2228  + RFC 4217 )
      • FTP/TLS – Implicit SSL – FTP on SSLSocket
  • Connection Pooling
  • Clustering Support How To
  • Qualities of Services
    • Component Logging Systemic Quality
    • Application Variable and Application Configuration How To 
    • Runtime Monitoring (MBean)
    • Re-Delivery How To 
    • Throttling
    • FTPBC Defined Normalized Message Properties FTP BC Defined NM properties
    • Dynamic Addressing How To
    • Recovery (at least once delivery) How To
  • Message Type Enhancement
    • Support Binary Message Content and Message As Attachment
    • Support Configurable Character Encoding for message content
  • Message Sequence Numbering
    • Local Message Sequence Type 1
    • Transient Message Sequence
  • WSDL Extensibility Elements:
    • ftp:transfer – specify message transportation involving a sending party and a receiving party via FTP
    • ftp:message – specify message transportation between a service consumer and a service provider via FTP
    • ftp:address – specify endpoint for message transportation via FTP
    • ftp:binding – specify a FTP binding indication
    • ftp:operation – specify a FTP operation indication
  • Synchronous Request-Response: a file name tagging scheme that is implemented by the BC to help correlating the request with the response for a synchronous service invoke, user can enabled to by configuring an attribute value for one of the transfer extensibility elements (ftp:transfer, ftp:message)
  • Directory Listing Styles
    • UNIX
    • NT 4.0
    • VMS
    • AS400
    • AS400-UNIX
    • UNIX (SJIS)
  • User Defined FTP Directory Listing Style
  • Proxies
    • SOCKS4
    • SOCKS5
  • Pre and Post Operations
    • DELETE – for post GET operation
    • COPY – for post GET operation
    • RENAME – for pre GET, post GET, and post PUT operation

System requirements and dependencies

No special requirements


Please post questions on the OpenESB mailing list. File bugs in the OpenESB issue tracker; use the FTP BC category.

 Evolution of the FTP BC

What is new?

The FTP BC was released with GlassFish ESB v2, v2.1

To Do’s

  • Transactional Messaging
  • Message Level Security
  • Humongous Message Processing, Streaming
  • Message Sequence Numbering
    • Local Message Sequence Type 2
    • Global Message Sequence
  • SFTP Support (draft-ietf-secsh-filexfer)


  • Developers working on the FTP BC: Jim Fuqian (jfu@dev.java.net)


 Developing the FTP BC