Description

Project Goals

The goal of the ECF Project is to provide an open source framework to
support the creation of communications applications on the Eclipse platform.
The framework will consist of Eclipse plugins that provide high-level
APIs to support asynchronous and real-time messaging for human-to-human,
human-to-component, and component-to-component communications and collaboration.

ECF-Enabled Applications

A wide variety of Eclipse applications will be easily creatable within
this framework:

As part of the framework develoment and testing, the ECF team will implement
a reference subset of applications to demonstrate the utility, and usability
of the framework. We will also work with plugin developers, application
developers, and the Eclipse community to support the creation of other
applications that use this framework. Our ultimate goal is that plugin
developers use and/or extend this framework to allow them to build compelling
communications applications with the Eclipse platform.

Technical Goals

Communication Components

The framework will provide a small set of high-level communications abstractions.
Rather than provide yet another messaging API, the ECF project will look
to provide plugin programmers with a component API for communications
applications so that high-level communications components (e.g. real-time
IM/chat, presence, file sharing, audio/video conferencing, etc) may be
reused in multiple application contexts and with multiple user interfaces.

Interoperability

The framework will provide a simple API for accessing multiple IP-based
protocols, allowing plugin developers to focus on providing application-level
integration of communications features and the rapid composition of distributed
applications.

To allow interoperability with existing servers and clients, ECF APIs
will provide extension points so that multiple protocols may be plugged
in to the framework, allowing Eclipse-based applications to interoperate
with other clients via standard protocols such as XMPP, SIP/SIMPLE and
others, while also being able to easily support communications with legacy
and proprietary systems.

Security

The ECF framework will provide for application-level flexibility in the
use of authentication, user and component identity, encryption, and authentication.
The framework will allow third parties to substitute alternative open
source and/or proprietary implementations of any/all of these security
mechanisms to support integration with existing security systems, and
the satisfaction of application-specific security requirements.

ECF will also provide security mechanisms for authorization and runtime
restriction of fine-grained components for controlling the behavior of
potentially untrusted components.

Application Extensibility

The framework will support the runtime distribution of components and
dynamic introduction of new protocols to allow for dynamic composition
of communication and collaboration applications.

In summary, the major technical goals of ECF will be:

Simple-Yet-General Communications Abstractions: To support
both peer-to-peer and client-server applications

Interoperability: Through the use of open, layered, replaceable
protocols

Security: Identity/Authentication, Encryption, and Authorization
for applications and fine-grained components

Application Extensibility: Via dynamic distribution of components

Component/Plugin Architecture Integrated with Eclipse 3.0:
Use of the OSGI Component and Service Models Present in Eclipse 3.0

People

The project expects to have commiters from Composent, Inc., Parity Communications,
and others. We are looking for others to participate in all aspects of
this project. If you are interested in participating, please contact one
of these team members and contribute to the mailing list.
The initial set of commiters will be:

John Beatty

Scott Lewis (project lead)
Composent, Inc.

Pete MackieSeaquest Software

Peter Nehrer
S1 Corporation

Rhett Savage

Paul Trevithick
Parity Communications

Status

The project has been formally proposed and is in the Creation Review
stage. It will be placed in the Technology PMC as an incubator project
to develop this framework, reference applications, and supporting tools.

Platforms

ECF plugins will be built in Java and will be portable to any platform
supported by Eclipse. For components that might not run on Eclipse (e.g.
servers), all ECF-created code will be built to depend only upon pure
Java Standard Edition (1.4+). We also will look to support OSGI Foundation
as a minimum runtime platform.

Development plan

The plan for the ECF project is still being developed.

We plan to follow a milestone based delivery schedule with incremental
progress visible in each milestone. Here is a rough outline of the time
line we expect to follow for milestones:

M2 - Q1 2005
Deploy initial set of demonstration applications upon the communications
framework. Finalize APIs and extension points for identity/authentication,
asynch communication, and component abstraction after community usage
and review