blob: a67484efdf3895450200e3eca27563102abf9dd8 [file] [log] [blame]
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ECF New and Noteworthy</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF">
<table border=0 cellspacing=5 cellpadding=2 width="100%">
<tbody>
<tr>
<td width="69%" class="bannertext">
<font class="indextop style">eclipse communication framework</font>
<br><br>
<font class="indexsub">an eclipse runtime project</font>
<br><br>
<font class="indextop style2">New and Noteworthy</font><br>
3.3.0 Release</font>
<br>
<br><br>
Return to <a href="downloads.php">ECF download page</a></br>
<br><br>
<a href="NewAndNoteworthy_3.2.0.html">New and Noteworthy for 3.2.0</a><br>
<a href="NewAndNoteworthy_3.1.0.html">New and Noteworthy for 3.1.0</a><br>
<a href="NewAndNoteworthy_3.0.0.html">New and Noteworthy for 3.0.0</a><br>
<br><br>
</td>
<td width="31%">
<div align="center">
<img src="images/Idea.jpg" width="120" height="86" hspace="50" align="middle">
</div>
</td>
</tr>
</tbody>
</table>
<hr>
<table>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://wiki.eclipse.org/Zookeeper_Based_ECF_Discovery">Zookeeper Based ECF Discovery</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>ECF 3.3 contains Apache Zookeeper based Discovery provider. <a href="http://hadoop.apache.org/zookeeper/">Apache Zookeeper</a> is a centralized service for maintaining configuration information, naming, providing
distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by Check the <a href="http://wiki.apache.org/hadoop/ZooKeeper/PoweredBy" target="blank">distributed applications</a>.
ZooDiscovery is a discovery mechanism that runs as an OSGi service. It leverages Apache ZooKeeper robustness and implements Eclipse ECF Discovery API. For more details on Zookeeper based Service Discovery, please
check <a href="http://wiki.eclipse.org/Zookeeper_Based_ECF_Discovery" target="_blank">Eclipse Wiki</a>. ECF 3.3 contains helloworld examples explaining how to use Zookeeper for your distributed application development.
</p>
<p><table width="90%" border="0">
<tr>
<td><img src="images/zookeeper_small.gif"></td>
<td><img src="images/zkservice.jpg"></td>
</tr>
</table>
</p>
<br>
<br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-and-ecf.html">Asynchronous Implementation of OSGi Remote Services.</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>ECF 3.2 provided the initial implementation of the Remote Services in OSGi 4.2 specification. This specification provides destils for Synchrnous Remote Services but not for Asynchrnous Remote Services. The main
issue in the synchronous Remote Services is, in distributed applications the time for method calls over network might have a large performance variability due to unpredictable behaviour of underlying network, etc. So
the response time for a Synchronous Remote Service call might take a longer time than expected when the network traffic is high. Therefore the Thread which is responsible of handling the Remote Service call might be
blocked for a very long time due to the blocking feature of synchronous systems. In order to avoid these types of problems, we need to use non blocking Asynchronous Remote Services where the result is sent back to the
caller using a callback handler. Hence ECF provides the ability to create Asynchronous Remote Services as well. This support is added with the OSGi 4.2 initial implementation. Now there are several examples and documentation
guides for the users on Asynchronous Remote Services. Please visit <a href="http://eclipseecf.blogspot.com/2010/02/osgi-remote-services-and-sync-vs-async.html" target="_blank">OSGi Remote Services and Sync vs. Async</a>,
<a href="http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-and-ecf.html" target="_blank">OSGi Remote Services and ECF - Asynchronous services</a>, <a href="http://eclipseecf.blogspot.com/2010/04/asynchronous-remote-services-part-2.html" target="_blank">Asynchronous Remote Services - part 2</a>
and <a href="http://eclipseecf.blogspot.com/2010/04/asynchronous-remote-services-future-or.html" target="_blank">Asynchronous Remote Services - The future or the callback </a> in the <a href="http://eclipseecf.blogspot.com/" target="_blank">Eclipse Blog</a> for more infomation.
</p>
<br>
<br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=307360">Inclusion of ECF Remote Services in SOA Package</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p> ECF has provided the support for OSGi 4.2 remote services in the ECF 3.2 release. Now ECF has created a new feature, org.eclipse.ecf.remoteservice.sdk.feature.
This feature is a part of the org.eclipse.ecf.core and it feature includes around 10 other features that break up the ECF remoteservice implementation logically (i.e.
discovery api, remote service api, osgi 4.2 implementation, various providers for apis, etc). This new feature is now hosted at the Helios contribution repository for
ECF. The repository location is <a href="http://download.eclipse.org/rt/ecf/3.3/helios/site.p2" target="_blank">http://download.eclipse.org/rt/ecf/3.3/helios/site.p2</a>.
Eclipse community had strongly supported the idea of including ECF OSGi 4.2 Remote Services in the SOA-IWG package. So with the consent of the SOA committers, ECF Remote
Services feature ( org.eclipse.ecf.remoteservice.sdk.feature) is now a part of the SOA-IWG package and ECF Remote Services are distributed with SOA package as well.
</p>
<br>
<br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://wiki.eclipse.org/ECF#New_Stuff">Remote Services Examples and Documentations</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>ECF 3.3 release contains a new set of examples and documetation guides for Remote Services. <a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_OSGi_Remote_Services_Implementation" target="_blank">Getting Started with ECF's OSGi Remote Services Implementation</a>,
<a href="http://wiki.eclipse.org/Asynchronous_Proxies_for_Remote_Services" target="_blank">Asynchronous Proxies for Remote Services</a>,<a href="http://wiki.eclipse.org/Using_Spring_with_ECF_Remote_Services" target="_blank">Using Spring with ECF Remote Services</a>,
<a href="http://wiki.eclipse.org/Load_Balancing_Remote_Services" target="_blank">Load Balancing Remote Services</a> are some of the new additions to the ECF. Please visit <a href="http://wiki.eclipse.org/ECF" target="_blank">ECF Wiki</a> for moer information.
</p>
<br>
<br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="https://ecf2.osuosl.org/hudson/">Hudson Continuous Server for ECF</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>ECF now mainstains a Hudson Continuous Integration Server which is running at Origon State University Open Source Lab (OSUOSL). ECF Hudson CI Server runs an instance of Eclipse Buckminster to build the Eclipse Plugins and
Eclipse Buckminster Project is developed with the aim of providing Component Assembly for Eclipse. Buckminster is a component resolution & materialization framework. Hudson CI server is one of the widely used CI server in the
software industry today. Hudson Server runs in a servlet container and supports SCM tools such as CVS, Subversion, Git and Clearcase. Not only these SCM integrations but also it supports Apache Ant and Apache Maven project executions.
Hudson is capable of executing the Windows Batch scripts and Shell scripts as well. It provides users to build system automatically without human intervention upon set of triggers such as SCM commits using post commit hooks,
time based triggers such as nightly builds. Currently several ECF committers working on ECF Hudson Server. The location of the ECF Hudson Server is <a href="https://ecf2.osuosl.org/hudson/" target="_blank">https://ecf2.osuosl.org/hudson/</a> and you can access this server to download latest build artifacts of ECF.
</p>
</P>
<br>
<br>
</td>
</TR>
<!-- This is the start of 3.2 section -->
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html">OSGi 4.2 remote <br>services standard </a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>
ECF 3.2 has support for the <a href="http://www.osgi.org/Specifications/HomePage">OSGi 4.2 remote services specification</a> which is specified in chapter 13 in compendium section. This is the initial mplementation of this specification. The notable features of this ECF's implementation are
Transport Independence, Lightweight, Standard Open Source Open Team Open Process, Extensibility and etc. See <a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html">ECF Blog</a>, <a href="http://wiki.eclipse.org/OSGi_4.2_Remote_Services_and_ECF">ECF Wiki on OSGi 4.2 and ECF</a> and <a href="http://wiki.eclipse.org/Getting_Started_with_ECF's_OSGi_Remote_Services_Implementation">ECF Wiki on Getting started with OSGi Remote Services</a> for more details about this.
</p>
<p><img src="images/Distributedosgi1.png"></p>
<br>
<br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://eclipseecf.blogspot.com/2010/01/soap-rest-and-ecf-remote-services.html">SOAP and REST APIs for Remote services</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>ECF 3.2 is consists of SOAP based provider support for remote services. REST based remote service support was added to the ECF 3.1 release and ECF 3.2 now have OSGi 4.2 remote services implementation along with SOAP based remote services support.
SOAP is not a protocol but it is a rpc style and it works as a serialization format as well. Hence ECF's does not have a single SOAP provider. Instead of a single implementation of a SOAP provider ECF 3.2 has included some utility and implementation
classes for creating SOAP based providers. See <a href="http://wiki.eclipse.org/SOAP-based_Providers">ECF Wiki</a> and <a href="http://eclipseecf.blogspot.com/2010/01/soap-rest-and-ecf-remote-services.html">ECF blog</a> for more details.</p>
<p>REST API support for Remote Services was initially added to the ECF 3.1 release and See <a href="http://wiki.eclipse.org/REST_abstraction_for_ECF">ECF Wiki</a> and <a href="http://eclipseecf.blogspot.com/2009/11/ecf-provides-some-additional-rest.html">ECF Blog</a>
for more details about the ECF REST support for Remote services.
</p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://wiki.eclipse.org/Load_Balancing_Remote_Services">Load Balancing for Remote Services</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>ECF remote services API allows arbitrary services to be exposed for remote access and invocation. Some of these services are long running and/or computationally intensive. So it is a good practice to use multiple servers to execute these services. Dynamic load balanacing among these servers helps to prevent servers being overloaded. ECF now has dynamic load balancing
example that uses a JMS Queue via <a href="http://ecf1.osuosl.org/">ECF ActiveMQ provider</a> implementation of JMS to do dynamic load balancing for ECF remote service method/request invocations.
See <a href="http://wiki.eclipse.org/Load_Balancing_Remote_Services">ECF Wiki</a> for more details.
</p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="http://wiki.eclipse.org/ECF">Remote Services Examples</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>Remote services API is an major API in the ECF and it has been there for a quite long time. Though the API was there, number of exmaples existed in the ECF was very few. So in this ECF 3.2 release a set of examples for ECF remote services being included. These examples
give a thorough knowledge on using ECF Remote Rervices API. See <a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API">ECF Wiki</a> for more.
</p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="15%">
<P align=left>
<B><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=280347">Google Wave Provider</a></B>
</P>
</TD>
<TD vAlign=top width="85%">
<p>Google's wave protocol is an emerging server-to-server protocol for real-time updates and replicated state synchronization. The protocol is being specified and developed in the open at www.waveprotocol.org.
Using the following 3 ECF characteristics <br><br> 1) ECF's provider architecture <br>2) the ECF sync API for implementing operational transformation and<br>3) Our existing XMPP provider <br><br>
it is straightforward to implement a Wave provider in ECF, allowing
Equinox-based runtimes to both host Waves/wavelets, and participate in waves/wavelets hosted by google and by other implementers.
</p>
<p>Currently the implementation is not completed and it is under construction. See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=280347">ECF Bug request</a> for more details.</p>
<br>
<br>
</td>
</TR>
<!-- End of 3.2 section -->
<!-- Start of 3.1 section -->
<TR>
<TD vAlign=top align=left width="30%">
<P align=left>
<B><a href="http://wiki.eclipse.org/REST_abstraction_for_ECF">Representational State Transfer (REST) API</a></B>
</P>
</TD>
<TD vAlign=top width="70%">
<p>
ECF 3.1 has support for creating REST-based remote services. ECF's existing <a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API">remote services API</a> has been extended to specifically
support the access of REST-based services (such as the Twitter API). See <a href="http://wiki.eclipse.org/REST_abstraction_for_ECF">ECF REST API wiki page</a> for more details and examples.</p>
<p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="30%">
<P align=left>
<B><a href="http://wiki.eclipse.org/Distributed_EventAdmin_Service">Distributed EventAdmin</a></B>
</P>
</TD>
<TD vAlign=top width="70%">
<p>OSGi 4.1 defines an EventAdmin service for delivering events asynchronously or synchronously to an arbitrary set of listeners. ECF
has created a distributed version of the EventAdmin service, which uses publish and subscribe to deliver Events to remote listeners. The
This implementation uses the abstract <a href="http://wiki.eclipse.org/ECF_API_Docs#Shared_Object_API">ECF shared object API</a>, which abstracts publish/subscribe
communication above the transport, so that that the use the Distributed EventAdmin service may be bound at runtime to a selected message bus. For example, ActiveMQ/JMS may
be used as the message bus, or ECF generic groups, or JavaGroups/reliable multicast, or other transports. See the <a href="http://wiki.eclipse.org/Distributed_EventAdmin_Service">Distributed EventAdmin wiki page</a>
for documentation and examples.
</p>
<p>
<img src="http://wiki.eclipse.org/images/a/a9/Distributedeventadmin.png">
</p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="30%">
<P align=left>
<B><a href="http://wiki.eclipse.org/newsreader">Salvo, the Eclipse Newsreader</a></B>
</P>
</TD>
<TD vAlign=top width="70%">
<p>
Committer work is underway on a NNTP Newsreader client (called Salvo) together with an ECF Container implementing the NNTP protocol. For details of this work, and to participate, see <a href="http://wiki.eclipse.org/newsreader">here</a>.
</p>
<p>
Here is a screen shot from a recent version of the Salvo work
</p>
<p>
<img src="images/Salvo1.gif">
</p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="30%">
<P align=left>
<B><a href="http://wiki.eclipse.org/TweetHub">TweetHub</a></B>
</P>
</TD>
<TD vAlign=top width="70%">
<p>
Community-initiated work is underway on a Twitter client (called TweetHub) that uses ECF APIs,
as well as Eclipse RCP user interface technologies. For details of this work, and to participate, see <a href="http://wiki.eclipse.org/TweetHub">here</a>.
</p>
<p>
Here is a screen shot from a recent version of the TweetHub work
</p>
<p>
<img src="images/TweetHub1.png">
</p>
<br><br>
</td>
</TR>
<TR>
<TD vAlign=top align=left width="30%">
<P align=left>
<B><a href="http://wiki.eclipse.org/File-based_Discovery">File-based Discovery</a></B>
</P>
</TD>
<TD vAlign=top width="70%">
<p>
As part of the ECF RFC119/Distributed OSGi implementation in ECF 3.0/Galileo, two discovery providers were previously released: one based upon
jSLP (Service Location Protocol aka RFC 2608) and the other based upon Apple's Bonjour/zeroconf protocol. File-based discovery
provides a way to publish and discover remote service endpoints without using a network protocol at all (or in addition to a network protocol), but
rather using an XML file that describes the endpoints of the remote services available. See the <a href="http://wiki.eclipse.org/File-based_Discovery">File-based Discovery</a>
wiki page for documentation and examples.
</p>
<br><br>
</td>
</TR>
</table>
</body>
</html>