Jump to: navigation, search

Difference between revisions of "ECF/Providers"

< ECF
(Remote Services (org.eclipse.ecf.remoteservice))
 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
The [[Eclipse Communication Framework Project|Eclipse Communication Framework]] defines a number of [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/ APIs] that can be implemented by adopters and add-in providers. The project itself provides implementations of some existing networking protocols. This page is intended to list all known providers, official or third-party, along with some basic information about the provider such as its runtime requirements and licensing.
 
The [[Eclipse Communication Framework Project|Eclipse Communication Framework]] defines a number of [http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/ APIs] that can be implemented by adopters and add-in providers. The project itself provides implementations of some existing networking protocols. This page is intended to list all known providers, official or third-party, along with some basic information about the provider such as its runtime requirements and licensing.
 +
==Providers==
 +
There is a table of providers, along with factory names, available for [http://www.eclipse.org/ecf/documentation.php#devcontainers dev.eclipse.org here], and for the containers available at
 +
[http://www.eclipse.org/ecf/documentation.php#osuoslcontainers OSU Open Source Lab here].
  
==Telephony(org.eclipse.ecf.telephony.call)==
+
==[[ECF_API_Docs#Discovery_API | Discovery (org.eclipse.ecf.discovery)]]==
 
+
===Skype===
+
See [[Skype_Provider|Skype Provider]]
+
 
+
==Discovery (org.eclipse.ecf.discovery)==
+
  
 
===Zeroconf/aka Bonjour/Rendevous===
 
===Zeroconf/aka Bonjour/Rendevous===
Line 25: Line 23:
 
*org.osgi.util.tracker
 
*org.osgi.util.tracker
  
'''Download:''' Included with ECF as of 1.0.0M6.
+
'''Download:''' Included with [http://www.eclipse.org/ecf/download.php ECF core feature]
  
 
'''Execution Environment:''' J2SE-1.3
 
'''Execution Environment:''' J2SE-1.3
  
 
'''Original Implementation:''' Eclipse.org
 
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.discovery.jmdns
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Discovery_API | Discovery]]
  
 
'''Notes''': None.
 
'''Notes''': None.
  
===jSLP aka SLP/rfc2608===
+
===jSLP aka SLP/RFC2608===
  
jSLP is a java-based open source implementation of the [http://tools.ietf.org/html/rfc2608 Service Location Protocol] protocol.  This provides an implementation of the ECF Discovery API.
+
[http://jslp.sourceforge.net/ jSLP] is a java-based open source implementation of the [http://tools.ietf.org/html/rfc2608 Service Location Protocol] protocol.  This provides an implementation of the ECF Discovery API.
  
 
'''Bundle Name:''' org.eclipse.ecf.provider.jslp
 
'''Bundle Name:''' org.eclipse.ecf.provider.jslp
Line 54: Line 56:
 
*org.osgi.util.tracker
 
*org.osgi.util.tracker
  
'''Download:''' Included with ECF hopefully with the next milestone 2.0.0M5.
+
'''Download:''' Included with [http://www.eclipse.org/ecf/download.php ECF core feature]
  
 
'''Execution Environment:''' CDC-1.1/Foundation-1.1, J2SE-1.4
 
'''Execution Environment:''' CDC-1.1/Foundation-1.1, J2SE-1.4
  
 
'''Original Implementation:''' Eclipse.org
 
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.discovery.jslp
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Discovery_API | Discovery]]
  
 
'''Notes''': None.
 
'''Notes''': None.
  
==File Transfer (org.eclipse.ecf.filetransfer)==
+
==[[ECF_API_Docs#File_Transfer_API |File Transfer (org.eclipse.ecf.filetransfer)]]==
  
 
===URL/URLConnection Protocols (file retrieval)===
 
===URL/URLConnection Protocols (file retrieval)===
Line 90: Line 96:
  
 
'''Original Implementation:''' Eclipse.org
 
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.base
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#File_Transfer_API |File Transfer]]
  
 
'''Notes''': None.
 
'''Notes''': None.
Line 119: Line 129:
  
 
'''Original Implementation:''' Eclipse.org
 
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.base
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#File_Transfer_API |File Transfer]]
  
 
'''Notes''': None.
 
'''Notes''': None.
Line 146: Line 160:
  
 
'''Original Implementation:''' Eclipse.org
 
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.filetransfer.bittorrent
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#File_Transfer_API |File Transfer]]
  
 
'''Notes''': None.
 
'''Notes''': None.
Line 155: Line 173:
 
See [[#XMPP|XMPP below]] for XMPP provider information.
 
See [[#XMPP|XMPP below]] for XMPP provider information.
  
==Presence (org.eclipse.ecf.presence)==
+
==[[ECF_API_Docs#Presence_API | Presence (org.eclipse.ecf.presence)]]==
 
===IRC===
 
===IRC===
 
The IRC protocol is a popular chatting protocol that allows a group of people to discuss about something together as well as one-to-one communication via private messages.
 
The IRC protocol is a popular chatting protocol that allows a group of people to discuss about something together as well as one-to-one communication via private messages.
Line 179: Line 197:
  
 
'''Original Implementation:''' [http://moepii.sourceforge.net/ IRClib]
 
'''Original Implementation:''' [http://moepii.sourceforge.net/ IRClib]
 +
 +
'''Container Factory Names:''' ecf.irc.irclib
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Presence_API | Presence]]
  
 
'''Notes''': None.
 
'''Notes''': None.
Line 203: Line 225:
  
 
'''Original Implementation:''' [http://www.hantsuki.org Gokigenyou]
 
'''Original Implementation:''' [http://www.hantsuki.org Gokigenyou]
 +
 +
'''Container Factory Names:''' ecf.msn.msnp
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Presence_API | Presence]]
  
 
'''Notes''': While the bundle itself will compile under a CDC-1.0/Foundation-1.0 environment, the library itself will actually not work out of the box as the library needs to make an HTTPS connection. No implementations of the HTTPS protocol is included with the CDC-1.0/Foundation-1.0 runtime environment by default. This library will run in a CDC-1.1/Foundation-1.1 runtime environment provided that the optional security classes has been added to the classpath.
 
'''Notes''': While the bundle itself will compile under a CDC-1.0/Foundation-1.0 environment, the library itself will actually not work out of the box as the library needs to make an HTTPS connection. No implementations of the HTTPS protocol is included with the CDC-1.0/Foundation-1.0 runtime environment by default. This library will run in a CDC-1.1/Foundation-1.1 runtime environment provided that the optional security classes has been added to the classpath.
Line 234: Line 260:
  
 
'''Original Implementation:''' [http://www.igniterealtime.org/projects/smack/index.jsp Smack]
 
'''Original Implementation:''' [http://www.igniterealtime.org/projects/smack/index.jsp Smack]
 +
 +
'''Container Factory Names:''' ecf.xmpp.smack, ecf.xmpps.smack
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Presence_API | Presence]], [[ECF_API_Docs#Datashare_API | Datashare]], [[ECF_API_Docs#File_Transfer_API | File Transfer]], [[ECF_API_Docs#Remote_Services_API | Remote Services]], [[ECF_API_Docs#Shared_Object_API | Shared Object]]
  
 
'''Notes''': None.
 
'''Notes''': None.
Line 241: Line 271:
 
See [[Bot Framework]]
 
See [[Bot Framework]]
  
==Remote Services (org.eclipse.ecf.remoteservice)==
+
==[[ECF_API_Docs#Remote_Services_API | Remote Services (org.eclipse.ecf.remoteservice)]]==
  
 
===ECF Generic===
 
===ECF Generic===
Line 262: Line 292:
 
*org.osgi.util.tracker
 
*org.osgi.util.tracker
  
'''Download:''' Included with ECF as of 1.0.0M6.
+
'''Download:''' Included with ECF SDK.
  
'''Execution Environment:''' J2SE-1.3
+
'''Execution Environment:''' J2SE-1.4, CDC Foundation 1.1
  
 
'''Original Implementation:''' Eclipse.org
 
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.generic.client, ecf.generic.server
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Datashare_API | Datashare]], [[ECF_API_Docs#Remote_Services_API | Remote Services]], [[ECF_API_Docs#Shared_Object_API | Shared Object]]
 +
 +
'''Notes''': None.
 +
 +
===r-OSGi===
 +
 +
r-OSGi is based upon a TCP-based protocol.  Both client and server implementations are included in the org.eclipse.ecf.provider bundle. 
 +
 +
'''Bundle Name:''' org.eclipse.ecf.provider.r_osgi
 +
 +
'''License:''' Eclipse Public License 1.0
 +
 +
'''Required Bundles:'''
 +
*[[ECF Core Bundle|org.eclipse.ecf]]
 +
*[[ECF Shared Object API Bundle|org.eclipse.ecf.sharedobject]]
 +
*org.eclipse.ecf.provider
 +
*org.eclipse.equinox.common
 +
*ch.ethz.iks.r_osgi.remote (r-OSGi)
 +
 +
'''Imported Packages:'''
 +
*org.osgi.framework
 +
*org.eclipse.osgi.util
 +
*org.osgi.util.tracker
 +
 +
'''Download:''' Included with ECF SDK.
 +
 +
'''Execution Environment:''' CDC-1.0/Foundation-1.0, J2SE-1.3
 +
 +
'''Original Implementation:''' Eclipse.org
 +
 +
'''Container Factory Names:''' ecf.r_osgi.peer
 +
 +
'''Container Adapter APIs:''' [[ECF_API_Docs#Remote_Services_API | Remote Services]]
  
 
'''Notes''': None.
 
'''Notes''': None.
Line 274: Line 340:
 
[http://eclipseecf.blogspot.com/2007/07/remote-osgi-over-xmpp.html Scott Lewis has recently blogged] about using the remote services API over XMPP
 
[http://eclipseecf.blogspot.com/2007/07/remote-osgi-over-xmpp.html Scott Lewis has recently blogged] about using the remote services API over XMPP
  
===Enterprise Messaging/JMS===
+
===HTTP REST===
 +
 
 +
See [[ECF/REST_abstraction]].
 +
 
 +
==[[ECF_API_Docs#Telephony_API |Telephony(org.eclipse.ecf.telephony.call)]]==
 +
 
 +
===Skype===
 +
See [[Skype_Provider|Skype Provider]]
 +
 
 +
==Enterprise Messaging/JMS==
  
 
====IBM Websphere Community Edition/ActiveMQ JMS====
 
====IBM Websphere Community Edition/ActiveMQ JMS====
Line 292: Line 367:
  
 
Development is just being completed (8/10/2007) on a remote services implementation based upon JMS.
 
Development is just being completed (8/10/2007) on a remote services implementation based upon JMS.
 +
 +
{{ECF}}
 +
 +
[[Category:Eclipse Communication Framework]]
 +
[[Category:ECF]]

Latest revision as of 08:58, 22 December 2010

The Eclipse Communication Framework defines a number of APIs that can be implemented by adopters and add-in providers. The project itself provides implementations of some existing networking protocols. This page is intended to list all known providers, official or third-party, along with some basic information about the provider such as its runtime requirements and licensing.

Providers

There is a table of providers, along with factory names, available for dev.eclipse.org here, and for the containers available at OSU Open Source Lab here.

Discovery (org.eclipse.ecf.discovery)

Zeroconf/aka Bonjour/Rendevous

JmDNS is a java-based open source implementation of the zeroconf protocol. This provides an implementation of the ECF Discovery API.

Bundle Name: org.eclipse.ecf.provider.jmdns

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.osgi.framework
  • org.osgi.util.tracker

Download: Included with ECF core feature

Execution Environment: J2SE-1.3

Original Implementation: Eclipse.org

Container Factory Names: ecf.discovery.jmdns

Container Adapter APIs: Discovery

Notes: None.

jSLP aka SLP/RFC2608

jSLP is a java-based open source implementation of the Service Location Protocol protocol. This provides an implementation of the ECF Discovery API.

Bundle Name: org.eclipse.ecf.provider.jslp

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • ch.ethz.iks.slp orbit
  • org.eclipse.core.runtime
  • org.eclipse.core.runtime.jobs
  • org.eclipse.osgi.util
  • org.osgi.framework
  • org.osgi.util.tracker

Download: Included with ECF core feature

Execution Environment: CDC-1.1/Foundation-1.1, J2SE-1.4

Original Implementation: Eclipse.org

Container Factory Names: ecf.discovery.jslp

Container Adapter APIs: Discovery

Notes: None.

File Transfer (org.eclipse.ecf.filetransfer)

URL/URLConnection Protocols (file retrieval)

There is a base ECF file transfer provider based upon the JRE URL/URLConnection classes, which will allow the file transfer API to be used based only upon the JRE-built-in URL/URLConnection protocol handlers.

Bundle Name: org.eclipse.ecf.provider.filetransfer

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.eclipse.core.runtime.jobs
  • org.eclipse.osgi.util
  • org.osgi.framework
  • org.osgi.service.url
  • org.osgi.util.tracker
  • org.osgi.service.log

Download: Included with ECF as of 1.0.0M6.

Execution Environment: J2SE-1.3

Original Implementation: Eclipse.org

Container Factory Names: ecf.base

Container Adapter APIs: File Transfer

Notes: None.

Apache Httpclient for HTTP/HTTPS

Bundle Name: org.eclipse.ecf.provider.filetransfer.httpclient

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.eclipse.core.runtime.jobs
  • org.eclipse.osgi.util
  • org.osgi.framework
  • org.osgi.service.url
  • org.osgi.util.tracker
  • org.osgi.service.log

Download: Included with ECF as of 1.0.0M6.

Execution Environment: J2SE-1.3

Original Implementation: Eclipse.org

Container Factory Names: ecf.base

Container Adapter APIs: File Transfer

Notes: None.

BitTorrent (file retrieval)

The BitTorrent protocol is a peer-to-peer protocol that uses the upload speed of the people currently downloading a file so that pieces of the file can be distributed among the various parties as quickly and as efficiently as possible.

Bundle Name: org.eclipse.ecf.provider.bittorrent

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.eclipse.osgi.service.datalocation (1.0.0)
  • org.eclipse.osgi.util
  • org.osgi.framework
  • org.osgi.service.url
  • org.osgi.util.tracker

Download: Included with ECF as of 1.0.0M6.

Execution Environment: J2SE-1.4

Original Implementation: Eclipse.org

Container Factory Names: ecf.filetransfer.bittorrent

Container Adapter APIs: File Transfer

Notes: None.

XMPP (peer-to-peer file sending)

The XMPP protocol has an extension for peer-to-peer file transfer (XEP-0096).

See XMPP below for XMPP provider information.

Presence (org.eclipse.ecf.presence)

IRC

The IRC protocol is a popular chatting protocol that allows a group of people to discuss about something together as well as one-to-one communication via private messages.

Bundle Name: org.eclipse.ecf.provider.irc

License: Eclipse Public License 1.0, implementation code is under the Apache License 2.0

Required Bundles:

Imported Packages:

  • org.eclipse.osgi.util (1.0.0)
  • org.osgi.framework (1.3.0)
  • org.osgi.service.log (1.3.0)
  • org.osgi.util.tracker (1.3.2)

Download: Included with ECF as of 0.9.0

Execution Environment: J2SE-1.4

Original Implementation: IRClib

Container Factory Names: ecf.irc.irclib

Container Adapter APIs: Presence

Notes: None.

MSN

The MSN protocol is the protocol used by Microsoft's Windows Live Messenger instant messaging application.

Bundle Name: org.eclipse.ecf.provider.msn

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.osgi.framework (1.3.0)

Download: Included with ECF as of 1.0.0M6.

Execution Environment: CDC-1.0/Foundation-1.0 (see Notes)

Original Implementation: Gokigenyou

Container Factory Names: ecf.msn.msnp

Container Adapter APIs: Presence

Notes: While the bundle itself will compile under a CDC-1.0/Foundation-1.0 environment, the library itself will actually not work out of the box as the library needs to make an HTTPS connection. No implementations of the HTTPS protocol is included with the CDC-1.0/Foundation-1.0 runtime environment by default. This library will run in a CDC-1.1/Foundation-1.1 runtime environment provided that the optional security classes has been added to the classpath.

XMPP

XMPP is an open standards protocol that allows for the exchanging of messages and presence information in real-time. Google Talk is an example of an application that uses XMPP.

Bundle Name: org.eclipse.ecf.provider.xmpp

License: Eclipse Public License 1.0, implementation code is under the Apache License 2.0

Required Bundles:

Imported Packages:

  • org.eclipse.core.runtime.jobs,
  • org.eclipse.osgi.util (1.0.0)
  • org.osgi.framework (1.3.0)
  • org.osgi.service.log (1.3.0)
  • org.osgi.util.tracker (1.3.2)

Download: Included with ECF

Execution Environment: J2SE-1.4

Original Implementation: Smack

Container Factory Names: ecf.xmpp.smack, ecf.xmpps.smack

Container Adapter APIs: Presence, Datashare, File Transfer, Remote Services, Shared Object

Notes: None.

Bot (org.eclipse.ecf.presence.bot)

See Bot Framework

Remote Services (org.eclipse.ecf.remoteservice)

ECF Generic

ECF Generic is a TCP-based protocol. Both client and server implementations are included in the org.eclipse.ecf.provider bundle. The ECF Generic provider implements the ECF Shared Object API.

Bundle Name: org.eclipse.ecf.provider

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.osgi.framework
  • org.eclipse.osgi.util
  • org.osgi.service.log
  • org.osgi.util.tracker

Download: Included with ECF SDK.

Execution Environment: J2SE-1.4, CDC Foundation 1.1

Original Implementation: Eclipse.org

Container Factory Names: ecf.generic.client, ecf.generic.server

Container Adapter APIs: Datashare, Remote Services, Shared Object

Notes: None.

r-OSGi

r-OSGi is based upon a TCP-based protocol. Both client and server implementations are included in the org.eclipse.ecf.provider bundle.

Bundle Name: org.eclipse.ecf.provider.r_osgi

License: Eclipse Public License 1.0

Required Bundles:

Imported Packages:

  • org.osgi.framework
  • org.eclipse.osgi.util
  • org.osgi.util.tracker

Download: Included with ECF SDK.

Execution Environment: CDC-1.0/Foundation-1.0, J2SE-1.3

Original Implementation: Eclipse.org

Container Factory Names: ecf.r_osgi.peer

Container Adapter APIs: Remote Services

Notes: None.

XMPP

Scott Lewis has recently blogged about using the remote services API over XMPP

HTTP REST

See ECF/REST_abstraction.

Telephony(org.eclipse.ecf.telephony.call)

Skype

See Skype Provider

Enterprise Messaging/JMS

IBM Websphere Community Edition/ActiveMQ JMS

See here to access.

BEA Weblogic JMS

See here to access.

JavaGroups Reliable Multicast

See here to access. JGroups is here.



Development is just being completed (8/10/2007) on a remote services implementation based upon JMS.

Eclipse Communication Framework
API
API DocumentationJavadocProvidersECF/Bot Framework
Development
Development GuidelinesIntegrators Guide