ECF introduces the concept of a communications container. Containers represent access to a protocol-specific communications context like TCP/IP Sockets. For connection-oriented communications, an ECF container loosely corresponds to the traditional notion of a communications session, but the more general Container concept is also useful even if the communications are not session-oriented.
ECF containers can represent both point-to-point communications (e.g. client/server) or publish-and-subscribe (group) communications. Container instances can provide access to synchronous communications, asynchronous communications, or both together. This flexibility allows many communication applications to be constructed out of one or more ECF containers...each of which provides access to some specific communications context and some protocol(s) for communicating within that context.
Container instance creation is done via ECF-provided factory APIs. For example, here's code to create and IContainer instance:
IContainer container = getContainerFactory().createContainer(<Container Type>);
|Protocol||Container||Bundle||File Transfer||Shared Object||Datashare||Presence||Discovery|
|HTTP/HTTPS, file, all other protocols supported JRE URLConnection||ecf.base||org.eclipse.ecf,org.eclipse.ecf.provider.filetransfer||X|
|HTTP/HTTPS via Httpclient 3.0.1||ecf.base||org.eclipse.ecf,org.eclipse.ecf.provider.filetransfer.httpclient||X|