<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-20358640</id><updated>2012-01-19T04:43:23.323-08:00</updated><category term='osgi'/><title type='text'>Eclipse Communication Framework</title><subtitle type='html'>Blog for the Eclipse Communication Framework Project (ECF)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>71</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20358640.post-1583658173107614380</id><published>2011-12-30T12:22:00.000-08:00</published><updated>2011-12-30T12:44:51.866-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5.4 and Restlet-based remote services</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf/"&gt;ECF&lt;/a&gt; has just released version 3.5.4.  See &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here&lt;/a&gt; for download.&lt;br /&gt;&lt;br /&gt;Through our &lt;a href="https://github.com/ECF"&gt;github repo&lt;/a&gt;, we now have new &lt;a href="http://eclipseecf.blogspot.com/2011/07/restlet-for-osgi-remote-services.html"&gt;OSGi remote services provider&lt;/a&gt; based upon &lt;a href="http://www.restlet.org"&gt;Restlet&lt;/a&gt;.  This allows Restlet to be used as the underlying implementation for &lt;a href="http://wiki.eclipse.org/ECF#OSGi_Remote_Services"&gt;OSGi remote services&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The small size and simple implementation of the Restlet-based provider (as well as &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin#Transport_Independence"&gt;all the providers&lt;/a&gt;) is made possible by ECF's provider architecture.  This architecture also allows any transport (rest-based or not) to be easily used to implement any OSGi remote service.  &lt;br /&gt;&lt;br /&gt;It's probably unnecessary to say, but the use of OSGi services (and remote services), brings many systemic advantages...including built-in support for dynamism, security, version management, modularity, &lt;a href="http://www.slideshare.net/pkriens/services-5713195"&gt;among other things&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1583658173107614380?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1583658173107614380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1583658173107614380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1583658173107614380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1583658173107614380'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/12/ecf-354-and-restlet-based-remote.html' title='ECF 3.5.4 and Restlet-based remote services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-689804465009568009</id><published>2011-11-15T10:31:00.000-08:00</published><updated>2011-11-15T10:43:54.580-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5.3 and Restlet Remote Services</title><content type='html'>ECF has produced a maintenance/bug fix release...version 3.5.3.  Go &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here to download&lt;/a&gt;.  As per maintenance releases, this release does not have new features or API, but does have bug fixes.  Go &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;here for 3.5 New and Noteworthy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Additionally...some ECF committers have been working with the &lt;a href="http://www.restlet.org/"&gt;Restlet&lt;/a&gt; team to create an &lt;a href="https://github.com/ECF"&gt;OSGi remote services provider&lt;/a&gt; based upon &lt;a href="http://eclipseecf.blogspot.com/2011/07/restlet-for-osgi-remote-services.html"&gt;Restlet&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;This shows the flexibility of the E&lt;a href="http://eclipseecf.blogspot.com/2011/05/ecf-351indigo-supporting-standards.html"&gt;CF implementation of OSGi remote services/RSA specifications&lt;/a&gt;...as any communications protocol (rest-based or not), can be easily used to create a standards-compliant remote services provider.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-689804465009568009?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/689804465009568009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=689804465009568009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/689804465009568009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/689804465009568009'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/11/ecf-353-and-restlet-remote-services.html' title='ECF 3.5.3 and Restlet Remote Services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5309477936571607283</id><published>2011-10-06T14:19:00.000-07:00</published><updated>2011-10-06T14:38:43.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>Simulation Using OSGi, ECF remote services</title><content type='html'>There's a new paper about using OSGi (Equinox) and &lt;a href="http://wiki.eclipse.org/ECF#OSGi_Remote_Services"&gt;ECF remote services&lt;/a&gt; to create a transport-independent, service-oriented, simulation framework.  Their paper is &lt;a href="http://www.zetalogic.de/files/pub/ASIM_2011_DEVS_OSGi.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have thought for some time that the combination of OSGi, with standardized, open, remote/distributed services (as is provided by &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;OSGI remote services&lt;/a&gt; and &lt;a href="http://eclipseecf.blogspot.com/2011/08/ecf-352.html"&gt;ECF's implementation of that spec&lt;/a&gt;)...would be a strong simulation environment, and now Martin Petzold, Oliver Ullrich, and Ewald Speckenmeyer have shown that thought to have some merit.&lt;br /&gt;&lt;br /&gt;As well, the authors have made their own framework &lt;a href="http://sourceforge.net/p/devsosgi/home/Home/"&gt;available as open source&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;Thanks to Martin, Oliver, and Ewald for doing and reporting some terrific work...and to the ECF community for providing support.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5309477936571607283?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5309477936571607283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5309477936571607283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5309477936571607283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5309477936571607283'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/10/simulation-using-osgi-ecf-remote.html' title='Simulation Using OSGi, ECF remote services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5797421636584445988</id><published>2011-08-29T07:50:00.000-07:00</published><updated>2011-08-29T07:57:53.727-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5.2</title><content type='html'>I'm pleased to announce the immediate availability of &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;ECF 3.5.2&lt;/a&gt;.  This is a maintenance release, with &lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?chfieldto=Now;query_format=advanced;chfieldfrom=2011-5-20;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;classification=RT;product=ECF"&gt;bug fixes&lt;/a&gt; only.  Much of the &lt;a href="http://eclipseecf.blogspot.com/2011/05/ecf-351indigo-supporting-standards.html"&gt;emphasis for this maintenance release&lt;/a&gt; was on OSGi remote services and Remote Service Admin (RSA) support.&lt;br /&gt;&lt;br /&gt;Congratulations are due to the ECF community.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5797421636584445988?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5797421636584445988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5797421636584445988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5797421636584445988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5797421636584445988'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/08/ecf-352.html' title='ECF 3.5.2'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5511006399224909723</id><published>2011-07-18T14:08:00.000-07:00</published><updated>2011-07-18T15:30:26.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>Restlet for OSGi Remote Services</title><content type='html'>The ECF project &lt;a href="http://eclipseecf.blogspot.com/2011/05/ecf-351indigo-supporting-standards.html"&gt;released a new version&lt;/a&gt; of it's implementation of the OSGi 4.2 &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;Remote Services Admin&lt;/a&gt; (RSA) standard.&lt;br /&gt;&lt;br /&gt;ECF's provider architecture allows new distribution modules (known as &lt;span style="font-weight:bold;"&gt;providers&lt;/span&gt;) to easily be created and &lt;a href="http://wiki.eclipse.org/OSGi_4.2_Remote_Services_and_ECF"&gt;inserted &lt;span style="font-weight:bold;"&gt;underneath&lt;/span&gt; the ECF RSA implementation&lt;/a&gt;.  The remote service consumer can now use the OSGi services model for accessing remote services...without regard to the underlying transport.  If desired, one can create a service using one transport (e.g. r-osgi), test it using another (e.g. ecf generic) and deploy it using yet a third (e.g. your custom protocol)...even changing the distribution protocol for a remote service at runtime.  The application requires no code changes to change providers.  This is the beauty of standardization (no lockin) for distribution systems.&lt;br /&gt;&lt;br /&gt;What does this have to do with Restlet?  &lt;br /&gt;&lt;br /&gt;Now that &lt;a href="http://bryanhunt.wordpress.com/2011/06/30/osgi-at-rest/"&gt;Restlet has been well integrated with OSGi&lt;/a&gt; it's now easy to use Restlet as a distribution provider module...and that's what I've just finished implementing.  So now, one can use standard remote services API (i.e. OSGi remote services spec)...along with standardized enterprise remote services management (i.e. OSGi RSA spec)...and use Restlet/http+rest as the underlying distribution mechanism for exposing and accessing the remote service.&lt;br /&gt;&lt;br /&gt;Here's a simple Restlet example&lt;br /&gt;&lt;pre class="brush: java;"&gt;&lt;br /&gt;public class HelloResource extends ServerResource {&lt;br /&gt;  @Get(&amp;quot;txt&amp;quot;)&lt;br /&gt;  public String sayHello() {&lt;br /&gt;    return &amp;quot;Hello RESTful World&amp;quot;;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note the @Get("txt") annotation...this is Restlet annotation that defines that http access to this method.&lt;br /&gt;&lt;br /&gt;To turn this into an OSGi remote service, all that's necessary is to expose the desired service as a &lt;span style="font-weight:bold;"&gt;service interface&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public interface IHello {&lt;br /&gt;  @Get(&amp;quot;txt&amp;quot;)&lt;br /&gt;  public String sayHello();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and then add '...implements IHello' to the HelloResource class...e.g.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public class HelloResource extends ServerResource implements IHello&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that's it.  Now (with the Restlet provider and ECF 3.5.1 remote service admin) when the HelloResource is exposed via Restlet, a IHello service is exported...and published for remote discovery (via Zookeeper, Zeroconf, DNSSD, SLP, file-based discovery, or some custom discovery).  Then, as per the OSGi RSA specification, remote service consumers will discover the remote service and import the remote service as a IHello proxy (with RSA's support for versioning, etc).  For the client/service consumer, all of the mechanics of import is handled by RSA...the programmer does not have to be concerned with it if they don't wish to be. &lt;br /&gt;&lt;br /&gt;As an example, here's the code for a java-based client (assuming DS injection/binding):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;void bindHelloService(IHello hello) {&lt;br /&gt;    // Now that we have discovered the service&lt;br /&gt;    // We'll use it.  The implementation of sayHello &lt;br /&gt;    // remoting is provided by Restlet&lt;br /&gt;    String response = hello.sayHello();&lt;br /&gt;    System.out.println("Response to our hello was: '"+response+"'");&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;When run with the HelloResource server, the response is:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Response to our hello was: 'Hello RESTful World'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Of course, other clients (e.g. browser/javascript-based, php-based, etc) can also be used to access the same RESTful service.  &lt;br /&gt;&lt;br /&gt;Another nice aspect of this use of the ECF provider architecture is that other REST frameworks...e.g. JAX-RS, etc...can be used similarly...and even run concurrently in the same server, if desired.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5511006399224909723?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5511006399224909723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5511006399224909723' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5511006399224909723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5511006399224909723'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/07/restlet-for-osgi-remote-services.html' title='Restlet for OSGi Remote Services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8249127127652310138</id><published>2011-05-29T13:32:00.000-07:00</published><updated>2011-07-16T14:02:54.906-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5.1/Indigo - Supporting Standards</title><content type='html'>With &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;ECF 3.5&lt;/a&gt;, we released an implementation of the OSGi 4.2 enterprise standard known as &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;Remote Services Admin&lt;/a&gt; (RSA). &lt;br /&gt;&lt;br /&gt;Using ECF's modular provider architecture, it's now possible to get the benefits of being completely standards compliant, while...if you wish...still using your favorite remote services distribution API (e.g. &lt;a href="http://eclipseecf.blogspot.com/2011/03/restlet-and-osgi-remote-services-part-1.html"&gt;REST-based&lt;/a&gt;, SOAP-based, JMS, proprietary, open...your choice).  Service-Oriented Architecture and Modularity working together via open implementations of open standards...hmmm :).&lt;br /&gt;&lt;br /&gt;Standardized APIs make creating and managing remote services &lt;a href="http://wiki.eclipse.org/EIG:Getting_Started_with_OSGi_Remote_Services"&gt;much easier&lt;/a&gt;...without sacrificing necessary flexibility. Standardization also allows easy integration with other frameworks, such as Declarative Services, Spring, and/or others.  &lt;br /&gt;&lt;br /&gt;In March we got access to the OSGi Test Compatibility Kit for Remote Services, and since then have fixed bugs in the implementation to guarantee full spec compliance, as well as &lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?chfieldto=Now;query_format=advanced;chfieldfrom=2011-03-15;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;classification=RT;product=ECF"&gt;addressed bugs&lt;/a&gt; reported by the community.&lt;br /&gt;&lt;br /&gt;We've also significantly increased our &lt;a href="http://wiki.eclipse.org/ECF#OSGi_Remote_Services"&gt;documentation and examples&lt;/a&gt;...for remote services as well as other parts of ECF...and created a &lt;a href="http://wiki.eclipse.org/ECF#ECF_Documentation_Project"&gt;ECF documentation project&lt;/a&gt; to more easily incorporate community contributions...in the docs areas identified as most important by our community. &lt;br /&gt;&lt;br /&gt;ECF 3.5.1 is available now &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here&lt;/a&gt;, and is part of &lt;a href="http://www.eclipse.org/indigo/"&gt;Indigo simultaneous release&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;See also a recent &lt;a href="http://eclipse.dzone.com/articles/eclipse-indigo-highlights-ecf"&gt;EclipseZone article&lt;/a&gt; about ECF for other exciting things that are part of this release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8249127127652310138?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8249127127652310138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8249127127652310138' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8249127127652310138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8249127127652310138'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/05/ecf-351indigo-supporting-standards.html' title='ECF 3.5.1/Indigo - Supporting Standards'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8299147809542422868</id><published>2011-04-04T15:31:00.000-07:00</published><updated>2011-04-04T16:25:36.920-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>Restlet and OSGI remote services - Part 2</title><content type='html'>In a previous posting, I described some of the advantages of integrating the &lt;a href="http://www.restlet.org"&gt;Restlet framework&lt;/a&gt; with ECF's implementation of &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin"&gt;OSGi remote services admin (RSA)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In this posting, I'll describe a couple of the advantages of doing this for the service host side of things (the server that exports and implements the remote service).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Advantages for Remote Service Host&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Modular re-use of Restlet Framework&lt;/span&gt;.  The &lt;a href="http://www.restlet.org"&gt;Restlet&lt;/a&gt; framework can be used to easily define remote services that are exposed via http access methods (e.g. GET, POST, PUT, DELETE).  Restlet has become popular as a way to create and expose remote services, and all existing uses of Restlet can immediately and modularly be reused.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Use of standardized meta-data format&lt;/span&gt;.  One of the most valuable things about the &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;Remote Service Admin&lt;/a&gt; specification, I believe, is the standardization of the meta-data for a remote service.  This is accomplished by standardizing the &lt;a href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescription.html"&gt;EndpointDescription&lt;/a&gt; format for remote services.  Among other advantages, standardization of this meta-data allows the easy creation of tooling for &lt;a href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionReader.html"&gt;reading/parsing&lt;/a&gt;, as well as &lt;a href="http://download.eclipse.org/rt/ecf/3.5Test/javadoc/org/eclipse/ecf/osgi/services/remoteserviceadmin/EndpointDescriptionWriter.html"&gt;writing&lt;/a&gt; these meta-data.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Modular re-use of network discovery&lt;/span&gt;.  Since EndpointDescriptions are standardized, they can be easily published and discovered via various discovery protocols.  ECF's &lt;a href="http://wiki.eclipse.org/ECF/API_Docs#Discovery_API"&gt;discovery API&lt;/a&gt; is a transport-independent API for advertising and discovering services, and this API is used by the ECF RSA implementation.  This allows discovery providers to be substituted...without any required changes in the export or import of a remote service.  So not only can any of the existing ECF discovery providers be used interchangeably for EndpointDescription discovery (&lt;span style="font-weight:bold;"&gt;Apache Zookeeper&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;Zeroconf/Bonjour&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;Service Locator Protocol&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;DNSSD&lt;/span&gt;, &lt;a href="http://wiki.eclipse.org/File-based_Discovery_with_the_Endpoint_Description_Extender_Format"&gt;xml-file-based discovery&lt;/a&gt;), it's also easy to create your own discovery provider, using proprietary or open protocols for remote service discovery...to meet enterprise requirements for security, integration, and customization.&lt;br /&gt;&lt;br /&gt;The conclusion, I believe, is that standardization provided by the OSGi RS/RSA specs, along with ECF's modular, provider-based implementation (enabled by OSGi modularity and OSGi services) makes it easy to develop, deploy, manage, and maintain standardized remote services, without giving up flexibility...to determine how those remote services are discovered, accessed and managed in SOA-based systems.  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Summary&lt;/span&gt;:  &lt;span style="font-weight:bold;"&gt;Modularity&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;Standardization&lt;/span&gt; are complimentary for reuse, flexibility, and interoperability of remote services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8299147809542422868?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8299147809542422868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8299147809542422868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8299147809542422868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8299147809542422868'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/04/restlet-and-osgi-remote-services-part-2.html' title='Restlet and OSGI remote services - Part 2'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5821858979946044012</id><published>2011-03-29T09:43:00.001-07:00</published><updated>2011-03-29T11:09:29.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>Restlet and OSGI remote services - Part 1</title><content type='html'>ECF recently released a standards-compliant implementation of &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;OSGi 4.2 remote services admin (RSA)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;RSA promises the easy integration with existing SOA frameworks in a standardized OSGi remote services context.  To prove the utility of this to myself I decided to integrate the popular &lt;a href="http://www.restlet.org/"&gt;Restlet API&lt;/a&gt; with &lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html"&gt;ECF's RSA impl&lt;/a&gt; expose REST-based web services as standards-compliant OSGi remote services.&lt;br /&gt;&lt;br /&gt;I was very happy to find that with the Restlet API, the &lt;a href="http://code.google.com/a/eclipselabs.org/p/restlet-integration-with-equinox/"&gt;Restlet-OSGi-integration&lt;/a&gt; work, &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin"&gt;ECF's RSA impl&lt;/a&gt;, and &lt;a href="http://wiki.eclipse.org/REST_abstraction_for_ECF"&gt;ECF's REST API&lt;/a&gt;, that doing this was about &lt;span style="font-weight:bold;"&gt;two-days' work&lt;/span&gt;.  In addition to being simple to do, there are several advantages of doing this...both for service consumers and service hosts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Advantages for Service Consumers&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Many clients can/are immediately supported (e.g. browser, new clients, servers that access the service, etc)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;No&lt;/span&gt; client-side development &lt;span style="font-weight:bold;"&gt;at all&lt;/span&gt;.  ECF's RSA impl creates a proxy (as well as an &lt;a href="http://wiki.eclipse.org/ECF/Asynchronous_Remote_Services"&gt;asynchronous proxy&lt;/a&gt;), and makes that proxy available within the local OSGi service registry...with &lt;span style="font-weight:bold;"&gt;no development at all&lt;/span&gt;.  This makes it easy to also use OSGi declarative services, Spring/Virgo, or other frameworks to access remote services&lt;/li&gt;&lt;br /&gt;&lt;li&gt;OSGi classloading subtleties are fully dealt-with, as ECF's RSA impl handles the proxy creation in a standardized, secure, service-independent way&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Service interface versioning is automatically supported...by the RSA spec&lt;/li&gt;&lt;br /&gt;&lt;li&gt;RSA's discovery can be used to publish and discover a remote service.  With ECF's impl of RSA, this allows the modular use of a variety of network discovery protocols, including Apache Zookeeper, DNS-SD, Service Locator Protocol, Zeroconf/Bonjour, xml-file-based...and also enables using one's own discovery mechanism (proprietary or not)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;In another posting, I'll describe some of the advantages on the service host side (i.e. the OSGi server that publishes/exposes the Restlet service).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5821858979946044012?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5821858979946044012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5821858979946044012' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5821858979946044012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5821858979946044012'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/03/restlet-and-osgi-remote-services-part-1.html' title='Restlet and OSGI remote services - Part 1'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-4456472601773809501</id><published>2011-03-18T09:32:00.000-07:00</published><updated>2011-03-18T10:08:56.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF enables Thermonuclear War at EclipseCon 2011</title><content type='html'>How's that for a title? :).  ECF committers &lt;span style="font-weight:bold;"&gt;Mustafa Isik&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;Sebastian Schmidt&lt;/span&gt; are giving this talk at EclipseCon on Monday:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&amp;id=2175"&gt;INTERSTELLAR THERMONUCLEAR WAR ... with ECF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mustafa previously did much of the initiating work on &lt;a href="http://live.eclipse.org/node/543"&gt;real-time shared editing in ECF&lt;/a&gt; as part of his &lt;a href="http://wiki.eclipse.org/RT_Shared_Editing"&gt;Google Summer of Code project&lt;/a&gt;.  For Google Summer of Code 2010, Sebastian implemented a &lt;a href="http://wiki.eclipse.org/Google_Wave_ECF_provider"&gt;Google Wave provider&lt;/a&gt; for ECF. &lt;br /&gt;&lt;br /&gt;Now they are at it again :).  Mustafa and Sebastian are using/integrating several great technologies to do innovative and fun things with the &lt;a href="http://www.eclipsecon.org/2011/sessions/?page=sessions&amp;id=2175"&gt;Wave protocol for concurrency control in multiplayer games&lt;/a&gt;, &lt;a href="http://wiki.eclipse.org/ECF_Servers"&gt;OSGi servers&lt;/a&gt;, &lt;a href="http://wiki.eclipse.org/ECF#OSGi_Remote_Services"&gt;remote services&lt;/a&gt;, Android clients, &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;ECF's multi-provider APIs&lt;/a&gt;, and other exciting technologies.&lt;br /&gt;&lt;br /&gt;I know from working with Sebastian and Mustafa, as well as working on some of these technologies myself, that it will be a &lt;span style="font-weight:bold;"&gt;great&lt;/span&gt; talk.  Please enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-4456472601773809501?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/4456472601773809501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=4456472601773809501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/4456472601773809501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/4456472601773809501'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/03/ecf-enables-thermonuclear-war-at.html' title='ECF enables Thermonuclear War at EclipseCon 2011'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-6206611934903005642</id><published>2011-03-14T12:44:00.000-07:00</published><updated>2011-03-22T08:38:52.262-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5 - Remote Services Admin</title><content type='html'>&lt;a href="http://eclipseecf.blogspot.com/2011/03/ecf-35.html"&gt;ECF 3.5 was just released&lt;/a&gt;.  One of the &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;New and Noteworthy&lt;/a&gt; for is a complete implementation of the OSGi enterprise standard known as &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin"&gt;Remote Services Admin&lt;/a&gt; (chapter 122 in the &lt;a href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf"&gt;enterprise spec&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;First: What are OSGi Remote Services?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OSGi remote services &lt;a href="http://www.osgi.org/download/r4v42/r4.cmpn.pdf"&gt;defines a simple, standard API&lt;/a&gt;...using normal OSGi services...for exposing services for remote access.  ECF has supported the &lt;a href="http://eclipseecf.blogspot.com/2010/11/ecf-34-remote-services.html"&gt;OSGi Remote Services specification for more than a year&lt;/a&gt;...and it's been hardened through community usage, bug reporting, and feedback.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is RSA?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;RSA is an enterprise management agent for OSGi Remote Services.  As of &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;ECF 3.5&lt;/a&gt;), we fully support the RSA specification, which allows very fine-grained control, management, and security for enterprise remote services.  Specifically, it's possible for the both the remote service &lt;a href="http://wiki.eclipse.org/ECF/API_Docs"&gt;discovery and distribution&lt;/a&gt; to be customized or extended as dictated by the (enterprise) use case...without resorting to non-standard API.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Why ECF's Implementation?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ECF's implementation has a number of unique technical attributes, including &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin#Transport_Independence"&gt;transport independence&lt;/a&gt; through multi-provider architecture, support for &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin#Asynchronous_Remote_Services"&gt;asynchronous remote services&lt;/a&gt;, support for &lt;a href="https://github.com/ECF/ECF4Felix"&gt;Felix and other OSGi frameworks&lt;/a&gt;, small code size, and open, community-based development process.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-6206611934903005642?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/6206611934903005642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=6206611934903005642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6206611934903005642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6206611934903005642'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/03/ecf-35-remote-services-admin.html' title='ECF 3.5 - Remote Services Admin'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5732855230218754519</id><published>2011-03-13T15:50:00.000-07:00</published><updated>2011-03-13T16:11:56.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;ECF 3.5&lt;/a&gt; has just been released.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;New and Noteworthy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Full implementation of &lt;a href="http://wiki.eclipse.org/Remote_Services_Admin"&gt;OSGi Remote Services Admin (RSA)&lt;/a&gt;.  Chapter 122 from the &lt;a href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf"&gt;OSGi enterprise spec&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=325813"&gt;XML-RPC remote services&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=310114"&gt;ECF on Felix&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/ECF#ECF_Documentation_Project"&gt;Documentation Project&lt;/a&gt; for community-contributed documentation&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5732855230218754519?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5732855230218754519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5732855230218754519' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5732855230218754519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5732855230218754519'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/03/ecf-35.html' title='ECF 3.5'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5610447489032110548</id><published>2011-03-08T10:26:00.000-08:00</published><updated>2011-03-08T10:46:29.427-08:00</updated><title type='text'>To be fair and balanced, give up centralized control</title><content type='html'>This posting is in response to Ed Merks' recent meandering &lt;a href="http://ed-merks.blogspot.com/2011/03/to-be-fair-and-balanced-that-is.html"&gt;To Be Fair and Balanced, That is the Question&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My suggestion is that to be fair and balanced, one has to give up control...and in this case turn the decision of project-level resource allocation away from any centralized body (like the EF Board of Directors...or the committer reps, or the EMO, or the strategic members, etc).  In short, give that decision making power to the people that matter...the communities that the projects serve.   That is the purpose of this &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=339239"&gt;new FOE disbursement bug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The point is this:  it's seems unlikely to me that any fair and balanced decision can/could be made by me, the committer reps, the EMO or the Board about project resource allocation across many very different projects...because there is probably &lt;span style="font-weight: bold;"&gt;permanent&lt;/span&gt; disagreement about &lt;span style="font-weight: bold;"&gt;what is fair&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;And to Ed:  let's get past the snarkiness and personal discrediting/attacking, shall we?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5610447489032110548?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5610447489032110548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5610447489032110548' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5610447489032110548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5610447489032110548'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/03/to-be-fair-and-balanced-give-up.html' title='To be fair and balanced, give up centralized control'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8269644551507928137</id><published>2011-01-26T14:47:00.000-08:00</published><updated>2011-01-26T19:37:29.740-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osgi'/><title type='text'>ECF 3.5 supports OSGi 4.2 Remote Services Admin (RSA)</title><content type='html'>OSGi 4.2 remote services support was the major theme for &lt;a href="http://eclipseecf.blogspot.com/2010/11/ecf-34-remote-services.html"&gt;ECF 3.3 and 3.4&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For ECF 3.5 (late Feb 2011), we will release a full implementation of the OSGi &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324215"&gt;Remote Service Admin (RSA) specification&lt;/a&gt; from the enterprise experts group.  The &lt;a href="http://www.osgi.org/download/r4v42/r4.enterprise.pdf"&gt;RSA spec (chap 122)&lt;/a&gt; extends the remote service spec, and provides standard ways to monitor, control, secure, and extend the use of OSGi remote services.&lt;br /&gt;&lt;br /&gt;ECF's impl of this spec is now complete, and we are engaged in testing (with the OSGI TCK), integrating with examples, adding new examples, and adding documentation.  &lt;br /&gt;&lt;br /&gt;One exciting thing about this implementation is that with ECF's open provider architecture, it's possible for other discovery and/or distribution systems to be easily introduced by anyone (us or others)...and all providers will automatically be standard compliant.  This vastly simplifies the job of taking an existing protocols and transports (for example a &lt;a href="http://wiki.eclipse.org/REST_abstraction_for_ECF"&gt;REST-based&lt;/a&gt; protocol) and exposing them as OSGi remote services.  &lt;br /&gt;&lt;br /&gt;Further, ECF's impl already supports &lt;a href="http://wiki.eclipse.org/ECF/Asynchronous_Remote_Services"&gt;asynchronous remote services&lt;/a&gt;, and this support is exposed in a standards-compliant way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8269644551507928137?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8269644551507928137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8269644551507928137' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8269644551507928137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8269644551507928137'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2011/01/ecf-35-supports-osgi-42-remote-services.html' title='ECF 3.5 supports OSGi 4.2 Remote Services Admin (RSA)'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-6527773444003026927</id><published>2010-11-02T09:54:00.000-07:00</published><updated>2010-11-02T15:47:21.680-07:00</updated><title type='text'>ECF 3.4 Remote Services</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; 3.4 was &lt;a href="http://eclipseecf.blogspot.com/2010/10/ecf-34-released.html"&gt;recently released&lt;/a&gt;.  This release (along with Helios/3.3 and upcoming releases) heavily emphasized the implementation of &lt;a href="http://wiki.eclipse.org/OSGi_4.2_Remote_Services_and_ECF"&gt;OSGi 4.2's Remote Services specification&lt;/a&gt;.  Our community is pushing us to continue this emphasis, and so we will.&lt;br /&gt;&lt;br /&gt;Here are some reasons to use ECF's OSGi 4.2 Remote Services implementation:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Standards Compliant&lt;/b&gt;:  It is fully compliant with the &lt;a href="http://wiki.eclipse.org/OSGi_4.2_Remote_Services_and_ECF"&gt;Remote Services standard&lt;/a&gt;.  &lt;b&gt;No&lt;/b&gt; lock-in...now and forever&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Asynchronous Remote Services&lt;/b&gt;:  Unlike other implementations of this standard, &lt;b&gt;right now&lt;/b&gt; it provides support for &lt;a href="http://wiki.eclipse.org/Asynchronous_Proxies_for_Remote_Services"&gt;Asynchronous Remote Services&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Multi-Transport&lt;/b&gt;:  &lt;b&gt;Right now&lt;/b&gt; it supports multiple network discovery protocols (e.g. Zookeeper, DNS-SD, SLP, Zeroconf, static xml-file), and multiple distribution transports (e.g. r-OSGi, ECF generic, XMPP, JMS, Http/REST-based protocols,  JavaGroups)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Extensibility through Modularity&lt;/b&gt;:  The &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;open discovery and remote services APIs&lt;/a&gt; allow new discovery and distribution implementations to be substituted at will...proprietary or open...without requiring any additional work to support the OSGi standard&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Enterprise support&lt;/b&gt;:  We are completing (for ECF 3.5) our implementation of the &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=324215"&gt;Remote Services Admin specification&lt;/a&gt;.  The progress on this can be easily and publicly tracked...contributions, test/testing, and early uses are welcomed and encouraged.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="https://dev.eclipse.org/mailman/listinfo/ecf-dev"&gt;Open Community&lt;/a&gt;&lt;/b&gt;:  ECF is not just &lt;a href="http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/"&gt;open source&lt;/a&gt;, but also has a completely open, diverse, growing, active...and most importantly...a &lt;a href="https://dev.eclipse.org/mailman/listinfo/ecf-dev"&gt;&lt;b&gt;contributing&lt;/b&gt; community&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Open Process&lt;/b&gt;:  We've &lt;a href="http://dev.eclipse.org/blogs/eclipsewebmaster/2010/10/13/ecf-moves-to-git/"&gt;moved to GIT&lt;/a&gt;, to make community support and contributions easier&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Multi-Framework&lt;/b&gt;:  ECF remote services &lt;a href="http://dev.eclipse.org/mhonarc/lists/ecf-dev/msg04212.html"&gt;now runs on Felix&lt;/a&gt; (and probably other OSGi frameworks as well)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;&lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=RT;chfieldto=Now;query_format=advanced;chfieldfrom=2010-06-30;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;product=ECF"&gt;Robustness through Community Usage&lt;/a&gt;&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Low-license fee: $0 :)&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-6527773444003026927?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/6527773444003026927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=6527773444003026927' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6527773444003026927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6527773444003026927'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/11/ecf-34-remote-services.html' title='ECF 3.4 Remote Services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-7224346382613003661</id><published>2010-11-01T19:03:00.000-07:00</published><updated>2010-11-01T19:14:45.119-07:00</updated><title type='text'>Innovation and Openness</title><content type='html'>There is a Sunday NY Times article about what promises to be an interesting book:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2010/10/31/business/31every.html"&gt;Innovation: It Isn't a Matter of Left or Right&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Johnson apparently makes the claim that 'collaborative, non-proprietary, open networks' are of high importance for technology innovation.  This strikes me as true, and explains my intuition that open source projects like Eclipse and &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; are well-positioned to create value through innovation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-7224346382613003661?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/7224346382613003661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=7224346382613003661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7224346382613003661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7224346382613003661'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/11/innovation-and-openness.html' title='Innovation and Openness'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-6180156261570621212</id><published>2010-10-31T11:49:00.001-07:00</published><updated>2010-10-31T12:30:38.193-07:00</updated><title type='text'>ECF 3.4 Released</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; &lt;span style="font-weight:bold;"&gt;3.4&lt;/span&gt; is now &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;available&lt;/a&gt;.  There have been many community-driven, and community-contributed improvements...here are some of the highlights:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/DNS-SD_based_wide-area_ECF_discovery_provider"&gt;DNS-SD Remote Service Discovery for WAN&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;Atom/RSS REST Enhancements&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/eventadmin/DistributedEventAdmin.html"&gt;Distributed EventAdmin Improvements&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/OSGi_4.2_Remote_Services_and_ECF"&gt;OSGi 4.2 Remote Services enhancements&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=RT;chfieldto=Now;query_format=advanced;chfieldfrom=2010-06-30;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;product=ECF"&gt;Bugs Fixed&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://dev.eclipse.org/blogs/eclipsewebmaster/2010/10/13/ecf-moves-to-git/"&gt;Moved to GIT&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/ECF#OSGi_4.2_Remote_Services"&gt;Remote services&lt;/a&gt; runs &lt;a href="http://dev.eclipse.org/mhonarc/lists/ecf-dev/msg04212.html"&gt;on other OSGi frameworks&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Congratulations are due to the ECF &lt;a href="http://dev.eclipse.org/mhonarc/lists/ecf-dev"&gt;committers and community&lt;/a&gt;.  Remember to see &lt;b&gt;&lt;a href="http://www.eclipsecon.org/summiteurope2010/sessions/sessions?id=1916"&gt;Fun with Remote Services&lt;/a&gt;&lt;/b&gt; talk at ESE for a taste of the things provided by &lt;a href="http://wiki.eclipse.org/ECF#OSGi_4.2_Remote_Services"&gt;ECF's open implementation of this OSGi standard&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-6180156261570621212?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/6180156261570621212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=6180156261570621212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6180156261570621212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6180156261570621212'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/10/ecf-34-released.html' title='ECF 3.4 Released'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-6474893909504066442</id><published>2010-09-02T07:17:00.000-07:00</published><updated>2010-09-02T07:56:05.357-07:00</updated><title type='text'>Asynchronous Remote Services - choices, choices</title><content type='html'>In &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;'s &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;Helios release&lt;/a&gt;, we released an implementation of the &lt;a href="http://wiki.eclipse.org/ECF#OSGi_4.2_Remote_Services"&gt;OSGi remote services&lt;/a&gt; standard specification (chapter 13 in compendium).&lt;br /&gt;&lt;br /&gt;In addition to the full spec implementation...which is based upon synchronous remote service proxies...we added support for &lt;a href="http://wiki.eclipse.org/Asynchronous_Proxies_for_Remote_Services"&gt;asynchronous remote services&lt;/a&gt;.  This provides non-blocking access to remote OSGi services.  This gives remote service consumers choices...allowing them to invoke remote services synchronously (i.e. by making a blocking method call on the proxy), and/or asynchronously (with a guarantee that the calling thread will not block).&lt;br /&gt;&lt;br /&gt;I think that one nice thing about this approach is that the service host implementer has to do exactly &lt;span style="font-weight:bold;"&gt;nothing&lt;/span&gt; to make these consumer choices available.  The implementation of the service host is exactly the same.&lt;br /&gt;&lt;br /&gt;There are &lt;a href="http://eclipseecf.blogspot.com/2010/04/asynchronous-remote-services-future-or.html"&gt;two styles of asynchronous&lt;/a&gt; access supported:  an asynchronous callback (like &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt;), and a future result, from the &lt;a href="http://en.wikipedia.org/wiki/Actor_model"&gt;Actor model&lt;/a&gt; of computation.  These two styles of of asynchronous access...along with the specified synchronous proxy...provides remote services consumers with some useful choices for creating reliable distributed systems and applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-6474893909504066442?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/6474893909504066442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=6474893909504066442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6474893909504066442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6474893909504066442'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/09/asynchronous-remote-services-choices.html' title='Asynchronous Remote Services - choices, choices'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3758757127870848255</id><published>2010-05-02T10:38:00.000-07:00</published><updated>2010-05-02T10:47:50.165-07:00</updated><title type='text'>Making Sense of Complexity</title><content type='html'>The NY Times Sunday Opinion section has an article today:  &lt;a href="http://www.nytimes.com/2010/05/02/weekinreview/02segal.html"&gt;Making Sense of Complexity&lt;/a&gt;.   &lt;br /&gt;&lt;br /&gt;The ideas are (mostly) presented in reference to complexity in social systems...but as someone interested in (reducing) complexity in software systems, as well as the psychology of complex system design and development...I also found the thoughts interesting from a software architecture and design point of view.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3758757127870848255?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3758757127870848255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3758757127870848255' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3758757127870848255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3758757127870848255'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/05/making-sense-of-complexity.html' title='Making Sense of Complexity'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-2590666420197371258</id><published>2010-04-27T10:54:00.000-07:00</published><updated>2010-04-27T11:35:05.066-07:00</updated><title type='text'>Asynchronous Remote Services - The future or the callback</title><content type='html'>In &lt;a href="http://eclipseecf.blogspot.com/2010/04/asynchronous-remote-services-part-2.html"&gt;previous postings&lt;/a&gt; I described how ECF is now making it very easy for OSGi service developers to expose asynchronous/non-blocking remote method calls to clients.  &lt;br /&gt;&lt;br /&gt;In short, all that's now required is to create an asynchronous version of the service's OSGi service interface.  See &lt;a href="http://wiki.eclipse.org/Asynchronous_Remote_Services"&gt;this documentation&lt;/a&gt; for example and source.  Just declaring this asynchronous interface is all that's needed.  At proxy discovery time, &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;'s implementation of OSGi remote services will provide the implementation of this asynchronous interface.  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Future or Callback&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are various approaches to doing asynchronous remote method invocation, and two common ones are callbacks and futures.  For example, &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt; uses callbacks, while &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon EC2&lt;/a&gt; uses futures for exposing asynchronous access to their APIs (like SNS, SQS, etc).  ECF's asynchronous remote services supports &lt;span style="font-weight:bold;"&gt;both&lt;/span&gt; of these approaches (futures and callbacks).  The asynchronous service interface declaration can, for a given synchronous method declaration, use either a callback, or a future, or both.&lt;br /&gt;&lt;br /&gt;For example, let's say we have the following synchronous service interface method:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;String foo(String bar);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The async declaration for this method using a callback would look like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;void fooAsync(String bar, IAsyncCallback);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The async declaration for thie method using a future would look like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;IFuture fooAsync(String bar);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And that's it.  The remote service client can then use either/both of these fooAsync methods (if they are declared, of course), simply by casting the proxy to the async service interface type and calling the appropriate fooAsync method with the necessary params.  &lt;br /&gt;&lt;br /&gt;In this way, the remote service designer can determine what asynchronous style the client will have available...by declaring fooAsync using callback, future, both, or neither.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-2590666420197371258?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/2590666420197371258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=2590666420197371258' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2590666420197371258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2590666420197371258'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/04/asynchronous-remote-services-future-or.html' title='Asynchronous Remote Services - The future or the callback'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-495444510120912062</id><published>2010-04-16T07:33:00.001-07:00</published><updated>2010-04-16T07:38:33.425-07:00</updated><title type='text'>Asynchronous Remote Services - part 2</title><content type='html'>In a &lt;a href="http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-and-ecf.html"&gt;previous posting&lt;/a&gt;, I described how ECF has introduced a simplified approach for allowing OSGi remote services to be accessed asynchronously.&lt;br /&gt;&lt;br /&gt;In contrast to my recent postings, that have been getting rather long, I'll just redirect you to a &lt;a href="http://wiki.eclipse.org/Asynchronous_Remote_Services"&gt;wiki page&lt;/a&gt; describing how to use asynchronous services...and leave it at that.  Happy Friday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-495444510120912062?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/495444510120912062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=495444510120912062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/495444510120912062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/495444510120912062'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/04/asynchronous-remote-services-part-2.html' title='Asynchronous Remote Services - part 2'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-1736288092703398986</id><published>2010-04-14T17:39:00.000-07:00</published><updated>2010-04-14T19:03:20.465-07:00</updated><title type='text'>OSGi Remote Services and ECF - Asynchronous services</title><content type='html'>In a &lt;a href="http://eclipseecf.blogspot.com/2010/02/osgi-remote-services-and-sync-vs-async.html"&gt;previous posting&lt;/a&gt;, I discussed/presented some of the support for asynchronous access to OSGi remote services that currently exists in &lt;a href="http://eclipseecf.blogspot.com/2010/02/ecf-32-now-available.html"&gt;ECF's implementation&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;In a &lt;a href="http://www.osgi.org/blog/2010/04/calling-your-cake-and-sending-it-too.html"&gt;blog posting earlier this week&lt;/a&gt;, &lt;a href="http://www.osgi.org/blog"&gt;Peter Kriens&lt;/a&gt; discussed some of the efforts going on in the EEG on adding asynchronous support for remote (and even local) services.  One of his comments in that blog posting was that ECF's asynchronous support could be considered awkward, because of the complexity/unfamiliarity of using the API.&lt;br /&gt;&lt;br /&gt;I've been intending to add easier/more natural mechanisms for asynchronous remote access than what we already have, and what's going on in the EEG and Peter's blog was great incentive to complete some more of that work.  The existing mechanisms &lt;span style="font-weight:bold;"&gt;are&lt;/span&gt; somewhat awkward, but they also make a very strong/flexible foundation...and so it's possible to build new mechanisms on the existing mechanisms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Normal/Synchronous Proxies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In our &lt;a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_OSGi_Remote_Services_Implementation"&gt;'hello' remote services example&lt;/a&gt;, we have this service interface:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public interface IHello {&lt;br /&gt;    public void hello(String from); &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Consumers of this remote service receive a proxy that implements the IHello interface, and then clients can synchronously invoke the hello method to make a remote call:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;proxy.hello{"slewis");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Since in java method calls are blocking, the thread that calls the hello method will block if (e.g.) the network is slow, the service host is slow (or blocks).  It would be nice if we had a way (on the consumer/client) to call the hello method and guarantee that it will not block...while still somehow getting the result (if any)...when the remote call is successful...or getting information about the failure if things fail/go wrong (e.g. because of network failure).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Asynchronous Proxies&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We've just added support for asynchronous proxies in ECF're remote services implementation.  What this means is that if an interface is declared like this (and in the same package as the IHello interface):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public interface IHelloAsync extends IAsyncRemoteServiceProxy {&lt;br /&gt;&lt;br /&gt;    public void helloAsync(String from, IAsyncCallback callback);&lt;br /&gt;&lt;br /&gt;    public IFuture helloAsync(String from);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;the &lt;a href="http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-from-ecf.html"&gt;ECF remote service distribution&lt;/a&gt; system will automatically create a proxy that &lt;span style="font-weight:bold;"&gt;implements&lt;/span&gt; the IHelloAsync interface on the consumer/client.  &lt;br /&gt;&lt;br /&gt;If the helloAsync(String,&lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IAsyncCallback.html"&gt;IAsyncCallback&lt;/a&gt;) method is called by the consumer:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;proxy.helloAsync("slewis",new IAsyncCallback() {&lt;br /&gt;    void onSuccess(Object result) {&lt;br /&gt;        System.out.println("we got result="+result);&lt;br /&gt;    }&lt;br /&gt;    void onFailure(Throwable exception) {&lt;br /&gt;        System.out.println("oh no!");&lt;br /&gt;        exception.printStackTrace();&lt;br /&gt;    }&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;the consumer thread will &lt;span style="font-weight:bold;"&gt;not block&lt;/span&gt;, and success/result or failure will be asynchronously communicated to the caller via proxy calling the appropriate method on &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IAsyncCallback.html"&gt;IAsyncCallback&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In addition to using the callback, &lt;a href="http://en.wikipedia.org/wiki/Futures_and_promises"&gt;futures&lt;/a&gt; (&lt;span style="font-weight:bold;"&gt;IFuture&lt;/span&gt;) are also supported.  All that must be done to allow the consumer to use a future result is to declare a helloAsync method that returns an IFuture:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    public IFuture helloAsync(String from);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The only thing required to get this to happen on the consumer/client is to declare the *Async interface (&lt;span style="font-weight:bold;"&gt;IHelloAsync&lt;/span&gt;).  Then, at proxy creation time on the remote service consumer, if this *Async interface exists, it will be implemented by the proxy, and usable by the client.&lt;br /&gt;&lt;br /&gt;Note that the *Async interface declaration is the only thing that's needed to get this to work with &lt;span style="font-weight:bold;"&gt;any&lt;/span&gt; service interface.   The service host implementation doesn't need to actually implement the *Async interface, and the ECF remote services distribution will create a proxy that implements the *Async interface automatically.  Further, like other things ECF, this is all done in a transport-independent way, so all the existing providers (JMS, XMPP, ECF generic, JavaGroups, Skype, REST, SOAP, etc., etc.) support this addition immediately with no further work.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit&lt;/a&gt; uses a very similar approach to support asynchronous remote procedure call.  In addition to callbacks, however, ECF's asynchronous proxy also has support for futures.  This allows the consumer/client to choose the desired invocation style:  synchronous, asynchronous-callback, or asynchronous-futures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1736288092703398986?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1736288092703398986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1736288092703398986' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1736288092703398986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1736288092703398986'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-and-ecf.html' title='OSGi Remote Services and ECF - Asynchronous services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5546335103969319397</id><published>2010-04-10T13:26:00.000-07:00</published><updated>2010-04-10T14:26:03.948-07:00</updated><title type='text'>OSGi Remote Services from ECF - Distribution</title><content type='html'>In a &lt;a href="http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-from-ecf-discovery.html"&gt;previous posting&lt;/a&gt;, I discussed the use of the &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;ECF discovery API&lt;/a&gt; as part of our implementation of the OSGi 4.2 remote services specification.&lt;br /&gt;&lt;br /&gt;The second major part of &lt;a href="http://eclipseecf.blogspot.com/2010/02/ecf-32-now-available.html"&gt;ECF's implementation of OSGi 4.2 remote services&lt;/a&gt; is &lt;span style="font-weight:bold;"&gt;distribution&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is Distribution?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Distribution is what happens to actually invoke a remote service and optionally return some result.  Here's a brief summary of the essential functions of distribution:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Remote Service Consumer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[Prior to caller actually using service]&lt;br /&gt;1. Create a proxy for the remote service&lt;br /&gt;[When caller actually uses remote service]&lt;br /&gt;2. Marshal/Serial any arguments for the remote call&lt;br /&gt;3. Put call request (method and serialized parameter) on the wire using some protocol&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Remote Service Host&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Take request off the wire (using same protocol)&lt;br /&gt;2. Un-marshal method and arguments&lt;br /&gt;3. Lookup corresponding service/method&lt;br /&gt;4. Invoke appropriate service with given arguments&lt;br /&gt;5. Marshal return value&lt;br /&gt;6. Put result on the wire using some protocol&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Remote Service Consumer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. Take response off the wire (using same protocol)&lt;br /&gt;5. Un-marshal result&lt;br /&gt;6. Return result to caller&lt;br /&gt;&lt;br /&gt;One way to think of it is that distribution is responsible for making what looks like a local method call to a local OSGi service actually be a remote call.  &lt;br /&gt;&lt;br /&gt;Two of the critical functions of distribution...for both Consumer and Host are&lt;br /&gt;&lt;br /&gt;1) Marshaling/Serialization...of arguments and return values&lt;br /&gt;2) Use some protocol to communicate request/response over network&lt;br /&gt;&lt;br /&gt;As with discovery, the ECF project has created an abstract API for distribution, which is called the &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;ECF remote services API&lt;/a&gt;.  Like other ECF APIs, this is a transport-independent API, which exposes a programmatic way to accomplish the functions of distribution (as described above), but does not imply/require any particular implementation of marshaling/serialization, nor imply/require any particular network protocol.&lt;br /&gt;&lt;br /&gt;ECF has providers that define specific implementations of marshaling and network protocol.  For example, we have a &lt;a href="http://eclipseecf.blogspot.com/2010/01/soap-rest-and-ecf-remote-services.html"&gt;REST-API&lt;/a&gt;, that supports the creation of specific REST providers. This REST API includes JSON and/or xml-based serialization, and uses HTTP as the protocol.  We also have a similar &lt;a href="http://eclipseecf.blogspot.com/2010/01/soap-rest-and-ecf-remote-services.html"&gt;SOAP API&lt;/a&gt; for SOAP-based services.&lt;br /&gt;&lt;br /&gt;We also have a number of other providers that are complete and available...e.g. ones based upon XMPP, JMS, ECF generic, Skype's app protocol, JavaGroups/multicast.  Further, since all of these providers are open source, if desired they can be extended or copied to implement custom providers based upon whatever serialization and wire protocol (e.g. an existing system) is desired...with our without the ECF team's involvement.&lt;br /&gt;&lt;br /&gt;Note the ECF implementation of the OSGi 4.2 remote services specification is guaranteed to work with any of these providers...no matter who writes it.  This because our implementation of the OSGi 4.2 remote services spec simply uses any all implementations of the ECF remote service API (no matter what the serialization and/or networking protocol).&lt;br /&gt;&lt;br /&gt;The flexibility here is extremely useful when selecting serialization formats and/or network protocols, because there are/will always be so many serialization formats and/or network protocols to choose from...their appropriateness will always depend upon the use case...as well as the need for integration with existing systems.   For example...e.g. json over http, custom xml over http, object serialization over tcp, xml over jms, soap over http, etc, etc...which makes sense depends upon the use case and things like networking/interoperability requirements.  &lt;br /&gt;&lt;br /&gt;Since this distribution function is separated out into a distinct, abstract, module (i.e. the ECF remote services API), it makes it possible to &lt;span style="font-weight:bold;"&gt;mix and match&lt;/span&gt; existing protocols and new protocols...both closed and open...with existing serialization formats or new serialization formats...crossed with whatever discovery protocol is appropriate and/or desired.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5546335103969319397?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5546335103969319397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5546335103969319397' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5546335103969319397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5546335103969319397'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-from-ecf.html' title='OSGi Remote Services from ECF - Distribution'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-515036683673989602</id><published>2010-04-06T10:15:00.001-07:00</published><updated>2010-04-06T11:29:39.832-07:00</updated><title type='text'>OSGi Remote Services from ECF - Discovery</title><content type='html'>Released in Feb, &lt;a href="http://eclipseecf.blogspot.com/2010/02/ecf-32-now-available.html"&gt;ECF 3.2&lt;/a&gt; has full support for the &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;OSGi 4.2 remote services&lt;/a&gt; specification.  &lt;br /&gt;&lt;br /&gt;As with any general technology, there are potentially many use cases for remoting OSGi services, and any given implementation won't support all those use cases.  It's therefore very important that any technology be extensible to support use cases that were not envisioned originally.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;OSGi Remote Services:  A tale of discovery and distribution&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In providing access to a remote service there are at least two network-created issues that must be addressed for any remoting technology to work.  In this post I'll discuss &lt;b&gt;discovery&lt;/b&gt;, and in subsequent posts talk about &lt;b&gt;distribution&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Modularity for Network Discovery&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;When a new service is made available...via a server, or a peer, or a device, etc...any consumers/clients of that service must somehow be made aware of that service, and given sufficient information to be able to access that service.  A very common example of being made 'aware' of a web service is receiving (via email, or a web page, or twitter, or whatever) the URL for that service...e.g. the twitter user status service URL is http://twitter.com/statuses/user_timeline.json.  &lt;br /&gt;&lt;br /&gt;With OSGi remote services the notion of a URL is generalized to an &lt;b&gt;endpoint&lt;/b&gt;.  As with all OSGi services, service properties provide metadata about the remote service (including but not limited to the endpoint)...and this metadata is sufficient for a consumer to actually access/use the service.  &lt;br /&gt;&lt;br /&gt;There are potentially many ways to discover a remote service.  There are network discovery protocols (e.g. &lt;a href="http://en.wikipedia.org/wiki/Zero_configuration_networking"&gt;zeroconf/bonjour&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Service_Location_Protocol"&gt;Service Location Protocol (SLP)&lt;/a&gt;, &lt;a href="http://hadoop.apache.org/zookeeper/"&gt;Apache Zookeeper&lt;/a&gt;), as well as static xml or other formatted files, custom http-based service registries, etc., etc. &lt;br /&gt;&lt;br /&gt;To deal with the required flexibility, ECF has an abstract &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Discovery_API"&gt;discovery API&lt;/a&gt; (org.eclipse.ecf.discovery).  This is a &lt;b&gt;network-protocol-independent&lt;/b&gt; API for discovering things over the network.  I use 'things' because the discovery API isn't only for discovering remote OSGi services, and it can also be used to discover devices, other applications (an example of this is that since Apple's iTunes uses zeroconf to publish itself, it's possible to interoperate with iTunes and/or other iMac and iPhone applications from within an OSGi runtime).&lt;br /&gt;&lt;br /&gt;The providers/protocols that we ship with ECF now are zeroconf/bonjour, SLP, and we have a &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=301854"&gt;pending contribution&lt;/a&gt; for &lt;a href="http://industrial-tsi-wim.blogspot.com/2010/03/ecf-discovery-how-many-zookeepers-does.html"&gt;Apache Zookeeper&lt;/a&gt;.  We also currently have support for static xml-file-based discovery of remote services and are working on support for use of &lt;a href="http://www.dns-sd.org/"&gt;DNS-SD&lt;/a&gt; for wide-area dns-based discovery.&lt;br /&gt;&lt;br /&gt;The ECF discovery API effectively separates network discovery into a distinct &lt;b&gt;module&lt;/b&gt;, and allows the reuse of existing network protocol implementations, OR substitution of one's own approach to discovery to meet custom use cases (such as discovering remote services only behind a firewall, etc).&lt;br /&gt;&lt;br /&gt;This modularization enables reuse, since all the other parts of ECF's remote services implementation (e.g. the distribution...i.e. remote method marshalling/unmarshalling, etc) can be reused without modification.  This is so because ECF's OSGi remote services implementation simply uses any/all discovery API providers at runtime to publish the remote service.  This makes any new discovery API provider automatically and immediately compliant with the OSGi remote services specification.&lt;br /&gt;&lt;br /&gt;The reuse and extensibility is a positive side effect of the modularity provided inherently by OSGi, along with the separation of concerns built into ECF's implementation of OSGi remote services.  In a future posting(s) I'll discuss the distribution module of ECF's remote services implementation...referred to as the &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Remote_Services_API"&gt;ECF remote services API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/ECF#OSGi_4.2_Remote_Services"&gt;OSGi 4.2 Remote Services&lt;/a&gt;&lt;br /&gt;&lt;a href="https://dev.eclipse.org/mailman/listinfo/ecf-dev"&gt;ecf-dev mailing list&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-515036683673989602?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/515036683673989602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=515036683673989602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/515036683673989602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/515036683673989602'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/04/osgi-remote-services-from-ecf-discovery.html' title='OSGi Remote Services from ECF - Discovery'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-1594823440318658677</id><published>2010-03-23T11:04:00.000-07:00</published><updated>2010-03-23T11:20:32.238-07:00</updated><title type='text'>OSGi Enterprise and ECF Remote Services</title><content type='html'>Earlier today the &lt;a href="http://www.osgi.org/Download/Release4V42"&gt;OSGi 4.2 Enterprise spec&lt;/a&gt; was announced by &lt;a href="http://osgithoughts.blogspot.com/2010/03/osgi-42-enterprise-release-is-out.html"&gt;David Bosschaert&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As part this announcement David listed some implementations of the OSGi 4.2 Remote Services specification, but for some strange reason he neglected to include the &lt;a href="http://www.eclipse.org/eclipsert"&gt;EclipseRT&lt;/a&gt; implementation from from &lt;a href="http://www.eclipse.org/ecf"&gt;ECF project&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;So, just to be clear, &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;EclipseRT/ECF 3.2 also already has support for OSGi 4.2 Remote Services&lt;/a&gt;.  See &lt;a href="http://eclipseecf.blogspot.com"&gt;here&lt;/a&gt; for details, links to docs, examples, and public support forums...as well as descriptions of other features in this implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1594823440318658677?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1594823440318658677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1594823440318658677' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1594823440318658677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1594823440318658677'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/03/osgi-enterprise-and-ecf-remote-services.html' title='OSGi Enterprise and ECF Remote Services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-7837343488924461835</id><published>2010-03-23T07:00:00.000-07:00</published><updated>2010-03-23T08:19:40.885-07:00</updated><title type='text'>OSGi/EclipseRT in Amazon Cloud - p2</title><content type='html'>In a &lt;a href="http://eclipseecf.blogspot.com/2010/03/osgieclipsert-in-amazon-cloud.html"&gt;previous post&lt;/a&gt;, I announced the availability of a public Amazon Image (AMI) for the &lt;a href="http://aws.amazon.com/ec2/"&gt;Amazon EC2 service&lt;/a&gt; that includes several EclipseRT 3.6 technologies...including Jetty 7.0.1 and Equinox 3.6M5.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Equinox/p2"&gt;p2&lt;/a&gt; is also included in the image, and this allows install/update in a running OSGi web application server.  Also included in the AMI is Jetty + Equinox 3.6M5 that does not include p2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-7837343488924461835?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/7837343488924461835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=7837343488924461835' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7837343488924461835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7837343488924461835'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/03/osgieclipsert-in-amazon-cloud-p2.html' title='OSGi/EclipseRT in Amazon Cloud - p2'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3564389257573368163</id><published>2010-03-16T20:23:00.001-07:00</published><updated>2010-03-16T20:33:32.468-07:00</updated><title type='text'>OSGi/EclipseRT in Amazon Cloud</title><content type='html'>I've created a public &lt;a href="https://console.aws.amazon.com/ec2/home"&gt;Amazon Image (AMI)&lt;/a&gt; from a recent build (3.6 stream) of the &lt;a href="http://www.eclipse.org/eclipsert"&gt;EclipseRT&lt;/a&gt;.  The parts of EclipseRT included in this image were &lt;a href="http://www.eclipse.org/jetty"&gt;Jetty&lt;/a&gt;, &lt;a href="http://www.eclipse.org/equinox"&gt;Equinox&lt;/a&gt;, &lt;a href="http://wiki.eclipse.org/Equinox/p2"&gt;p2 provisioning&lt;/a&gt;, and a very simple Hello World servlet application (with source).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/EclipseRT_for_Amazon_EC2"&gt;Here&lt;/a&gt; is documentation about how to get the image, start an EC2 instance, and run your own server. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://ec2-75-101-228-69.compute-1.amazonaws.com:8080/hello"&gt;Here&lt;/a&gt; is an instance of this Hello World servlet application running on my instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3564389257573368163?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3564389257573368163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3564389257573368163' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3564389257573368163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3564389257573368163'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/03/osgieclipsert-in-amazon-cloud.html' title='OSGi/EclipseRT in Amazon Cloud'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8151414193854516482</id><published>2010-02-19T09:44:00.000-08:00</published><updated>2010-02-22T06:31:33.810-08:00</updated><title type='text'>ECF 3.2 Now Available</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; 3.2 is now available &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here&lt;/a&gt;.  The emphasis/theme for this release is support for Service-Oriented Architecture (SOA), specifically through &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;support&lt;/a&gt; of the OSGi 4.2 Remote Services standard.&lt;br /&gt;&lt;br /&gt;Highlights&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_OSGi_Remote_Services_Implementation"&gt;Implementation&lt;/a&gt; of OSGi 4.2 Remote Services standard&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Support for &lt;a href="http://wiki.eclipse.org/REST_abstraction_for_ECF"&gt;REST providers&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Support for &lt;a href="http://wiki.eclipse.org/SOAP-based_Providers"&gt;SOAP providers&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Remote Services &lt;a href="http://wiki.eclipse.org/ECF#OSGi_4.2_Remote_Services"&gt;Examples and Docs&lt;/a&gt; and &lt;a href="http://eclipseecf.blogspot.com/"&gt;recent blogging&lt;/a&gt; about the tech for this release&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;Congratulations and thanks are due to the &lt;a href="http://dev.eclipse.org/mhonarc/lists/ecf-dev"&gt;ECF community&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8151414193854516482?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8151414193854516482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8151414193854516482' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8151414193854516482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8151414193854516482'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/02/ecf-32-now-available.html' title='ECF 3.2 Now Available'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-2276756608120689857</id><published>2010-02-16T11:06:00.000-08:00</published><updated>2010-02-17T05:43:40.003-08:00</updated><title type='text'>OSGi Remote Services and Sync vs. Async</title><content type='html'>&lt;a href="http://www.eclipse.org/projects/previous-release-reviews.php"&gt;ECF 3.2&lt;/a&gt; contains an implementation of the &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;new OSGi 4.2 remote services standard&lt;/a&gt;.  This release is coming &lt;a href="http://www.eclipse.org/ecf"&gt;out later this week (Feb 19)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One thing that developers may discover when building and testing distributed applications is that synchronous remote procedure call (RPC) can have surprising behaviors.  In my view, this is because we reflexively understand that normal/local/in memory method call is synchronous and fast...i.e. that the calling thread blocks until the method is complete (and optionally a result is returned), OR the method fails/throws an exception in languages that have structured exception handling.  &lt;br /&gt;&lt;br /&gt;So at best the remote call's I/O behavior will lead to large performance variability (i.e. the remote call will be orders of magnitude slower...and variable based upon network performance), and at worst the caller thread could hang/block indefinitely.  This violates our expectations about method invocation.&lt;br /&gt;&lt;br /&gt;To address this problem, frequently asynchronous remote method call and/or non-blocking messaging is used...so that the caller can be &lt;span style="font-weight:bold;"&gt;guaranteed&lt;/span&gt; that the calling thread will not block.  Note that depending upon the application requirements and expectations, it may be fine that synchronous/blocking RPC is used.  OTOH, it may be very important that remote services not block...for user experience, and or overall system performance expectations.  It depends upon the use case...and I don't believe there is any one, 'right' answer for all situations.&lt;br /&gt;&lt;br /&gt;ECF's implementation of the OSGi 4.2 remote services spec has support for asynchronous remote method call.  This support is exposed via our &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IRemoteService.html"&gt;IRemoteService&lt;/a&gt; contract, which is made available to remote service consumers (for example code, &lt;a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_OSGi_Remote_Services_Implementation"&gt;see tutorial here&lt;/a&gt;).  This contract exposes two mechanisms for making asynchronous remote method calls&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Asynchronous callback via &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IRemoteService.html#callAsync%28org.eclipse.ecf.remoteservice.IRemoteCall,%20org.eclipse.ecf.remoteservice.IRemoteCallListener%29"&gt;IRemoteService.callAsync/2&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Actor_model"&gt;Futures&lt;/a&gt; via &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IRemoteService.html#callAsync%28org.eclipse.ecf.remoteservice.IRemoteCall%29"&gt;IRemoteService.callAsync/1&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The IRemoteService reference associated with a remote service proxy is accessible via any/all ECF remote services.  If not needed, however, it's invisible and so doesn't impose any complexity burden.  &lt;br /&gt;&lt;br /&gt;Currently, the OSGi 4.2 remote services spec does not articulate any methods for asynchronously accessing a remote service, but my understanding is that this is an area for future standardization.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-2276756608120689857?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/2276756608120689857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=2276756608120689857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2276756608120689857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2276756608120689857'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/02/osgi-remote-services-and-sync-vs-async.html' title='OSGi Remote Services and Sync vs. Async'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5946525918983128842</id><published>2010-02-04T10:24:00.000-08:00</published><updated>2010-02-04T10:44:52.282-08:00</updated><title type='text'>Goodness through OSGi Standards</title><content type='html'>ECF &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;recently announced&lt;/a&gt; full support for OSGi 4.2's remote services standard with our &lt;a href="http://www.eclipse.org/projects/whatsnew.php"&gt;upcoming 3.2 release&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today, I learned that a community member has &lt;a href="http://dev.eclipse.org/mhonarc/lists/ecf-dev/msg03316.html"&gt;successfully used Spring dm&lt;/a&gt;, along with ECF's remote services implementation to do declaratively-specified remote services.  They have agreed to contribute the example to ECF, and so expect to see it as part of ECF soon.&lt;br /&gt;&lt;br /&gt;People have also used &lt;a href="http://bryanhunt.wordpress.com/2009/06/20/remote-declarative-osgi-services/"&gt;ECF remote services with OSGi declarative services&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And, of course, one can use &lt;a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_OSGi_Remote_Services_Implementation"&gt;remote services programmatically as well&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Among other things, this allows a wide variety of existing tooling to be used to construct, use, and debug remote services...all made possible by having an open standard for distributing an OSGi service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5946525918983128842?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5946525918983128842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5946525918983128842' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5946525918983128842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5946525918983128842'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/02/goodness-through-osgi-standards.html' title='Goodness through OSGi Standards'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5966641964503601557</id><published>2010-01-12T13:45:00.000-08:00</published><updated>2010-01-12T15:05:11.280-08:00</updated><title type='text'>Motivation 3.0</title><content type='html'>A question that I ask myself periodically is this:  Why work on open source projects?  In my case, why work on &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;?  What is my motivation to do so?&lt;br /&gt;&lt;br /&gt;There's an interesting book by Daniel Pink that examines human motivation called &lt;a href="http://www.danpink.com/"&gt;Drive: The Surprising Truth About What Motivates Us&lt;/a&gt;.  There's also a &lt;a href="http://www.youtube.com/watch?v=rrkrvAUbU9Y"&gt;nice YouTube video by the author from last year's TED conference&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In reading the first part of the book, I've resonated with his assertion that intrinsic motivation is sometimes stronger than extrinsic motivation...particularly when creativity (aka innovation) is involved.  And I suspect I am not alone in this...at least among people who are passionate about innovation, community, software technology, and open systems.&lt;br /&gt;&lt;br /&gt;I believe understanding motivations is important...because lots of assumptions about how innovation comes about...i.e. who does it and why...are actually dependent upon underlying assumptions about motivation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5966641964503601557?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5966641964503601557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5966641964503601557' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5966641964503601557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5966641964503601557'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/01/motivation-30.html' title='Motivation 3.0'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-726986114486140485</id><published>2010-01-10T11:15:00.000-08:00</published><updated>2010-01-11T05:34:52.318-08:00</updated><title type='text'>SOAP, REST, and ECF remote services</title><content type='html'>In addition to supporting &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;the OSGi 4.2 remote services specification&lt;/a&gt;, we on the &lt;a href="http://wiki.ecilpse.org/ECF"&gt;ECF&lt;/a&gt; team have also been working on support for accessing &lt;a href="http://eclipseecf.blogspot.com/2009/11/ecf-provides-some-additional-rest.html"&gt;REST-style services&lt;/a&gt;, as well as those that use the &lt;a href="http://en.wikipedia.org/wiki/SOAP"&gt;Simple Object Access Protocol&lt;/a&gt; (SOAP).  &lt;br /&gt;&lt;br /&gt;The ability to support all these styles of &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;service-oriented architecture&lt;/a&gt; is fundamentally enabled by &lt;a href="http://wiki.eclipse.org/ECF"&gt;ECF&lt;/a&gt;'s provider architecture, but since mentioned that in a &lt;a href="http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html"&gt;recent posting&lt;/a&gt;, in this post I'm going to touch on something useful that's enabled by this provider architecture.&lt;br /&gt;&lt;br /&gt;Most remote services (whether web services, OSGi remote services, REST-based services, etc) have two basic roles&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;The service &lt;b&gt;host&lt;/b&gt;...aka the 'server'&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The service &lt;b&gt;consumer&lt;/b&gt;...aka the 'client'&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Typically, the service host is first 'registered'...to make it available for remote access, and after that the service consumer then accesses/uses the remote service (e.g. makes remote method calls on a proxy, issues http requests for resources, sends/receives messages, or has some other way of actually accessing/calling the remote service).  &lt;br /&gt;&lt;br /&gt;Note that the service host need not be exposed by a 'server' (although it frequently is)...in some systems clients can register/expose services as well as servers.  And it's probably obvious that service consumers don't have to be 'clients' either...i.e. they can be servers that are communicating with other servers.  This is why I use the role names 'host' and 'consumer' rather than 'server' and 'client' when referring to remote services.&lt;br /&gt;&lt;br /&gt;OSGi remote services use the &lt;a href="http://www.osgi.org/About/Technology"&gt;OSGi service registry&lt;/a&gt;...for both the host's registration of services, and the consumer's lookup and access to a remote service.  Whatever the transport used to implement the distribution, typically both the host's registration and the consumer's lookup are done via the OSGi service registry.  This typical use case implies, however, that both the host framework and the consumer framework have access to the OSGi service registry (since both registration and lookup are via the service registry).&lt;br /&gt;&lt;br /&gt;But what if you would like to consume a service that doesn't use OSGi (and therefore doesn't have a service registry)?  With ECF's remote services API, along with our recently added &lt;a href="http://eclipseecf.blogspot.com/2009/11/ecf-provides-some-additional-rest.html"&gt;REST&lt;/a&gt; and SOAP support, we've enabled this use case (non-OSGi service host) while still providing the benefits of using OSGi remote services for the consumer.  &lt;br /&gt;&lt;br /&gt;How, you say?  First of all, ECF's transport independent architecture allows clients to talk whatever protocol they require to communicate with a remote process...so, for example, the XMPP provider is able to communicate with any remote system that uses the (standardized) &lt;a href="http://xmpp.org/"&gt;XMPP protocol&lt;/a&gt;.  This does *not* have to be an OSGi-based system.&lt;br /&gt;&lt;br /&gt;Second, ECF now has a very small, remote service &lt;b&gt;client&lt;/b&gt; API...specifically to allow consumers to interact with non-OSGi services, while still using the OSGi service registry (if they wish) on the client.  Since both the &lt;a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF"&gt;ECF remote services API&lt;/a&gt;, as well as this new &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/client/package-summary.html"&gt;remote service client API&lt;/a&gt; are also transport independent, and have both explicit support for REST-style and SOAP-based transports, providers for specific REST-based protocols and/or SOAP-based protocols are easy to create.   &lt;br /&gt;&lt;br /&gt;As an example, I recently created a SOAP/Web services client (for an existing web service), using &lt;a href="http://ws.apache.org/axis/"&gt;Apache Axis (to convert wsdl to java)&lt;/a&gt;, the &lt;a href="http://www.eclipse.org/webtools/"&gt;WTP tooling (for automating the generation of the java code from wsdl)&lt;/a&gt;, and this new remote services client API.  To the non-OSGi service host, this client looks/behaves like all other clients.  The same idea...for an existing REST-based API (Twitter in this case), is shown &lt;a href="http://eclipseecf.blogspot.com/2009/12/cloud-osgi-gwt-ecf-rest-twitter-api.html"&gt;by this demo&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Unlike other clients, however, these clients can use OSGi to maximum value:  i.e. to structure the client in a modular way, to handle the dynamic requirements of a remote/networked/unreliable service, or even (re) expose the proxy as a another remote service...that other consumers can access.  This can be used for building &lt;a href="http://eclipseecf.blogspot.com/2009/10/load-balancing-remote-services.html"&gt;load balancing&lt;/a&gt; of web services, or to aggregate sets of services...as well as other purposes.  &lt;br /&gt;&lt;br /&gt;Note there is no additional tooling required to build such a client...since your favorite tools for creating the SOAP-based and/or REST-based clients may be used, alongside APIs and tooling for interacting with the OSGi service registry...e.g. &lt;a href="http://www.eclipse.org/pde/"&gt;Eclipse PDE&lt;/a&gt;, &lt;a href="http://www.eclipsezone.com/eclipse/forums/t97690.rhtml"&gt;OSGi declarative services&lt;/a&gt; and/or others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-726986114486140485?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/726986114486140485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=726986114486140485' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/726986114486140485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/726986114486140485'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/01/soap-rest-and-ecf-remote-services.html' title='SOAP, REST, and ECF remote services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-1063168790768027169</id><published>2010-01-03T12:42:00.000-08:00</published><updated>2010-01-04T05:56:37.052-08:00</updated><title type='text'>OSGi Remote Services from ECF</title><content type='html'>The &lt;a href="http://wiki.eclipse.org/ECF"&gt;ECF project&lt;/a&gt; has &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=290446"&gt;just finished&lt;/a&gt; our initial implementation of the &lt;a href="http://www.osgi.org/Specifications/HomePage"&gt;OSGi 4.2 Remote Service specification&lt;/a&gt; (chapter 13 in compendium section).  &lt;br /&gt;&lt;br /&gt;I want to highlight a few distinctive features of ECF's implementation.  I'll be doing other/more blog posts to go into details about some of these.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Transport Independence&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;'s implementation currently works with the following distribution transports:  &lt;b&gt;JMS (ActiveMQ)&lt;/b&gt;, &lt;b&gt;r-OSGi&lt;/b&gt;, &lt;b&gt;JavaGroups&lt;/b&gt;, &lt;b&gt;XMPP&lt;/b&gt;, &lt;b&gt;Skype&lt;/b&gt;, &lt;b&gt;ECF generic&lt;/b&gt;, and with the following discovery protocols:  &lt;b&gt;SLP&lt;/b&gt;, &lt;b&gt;zeroconf&lt;/b&gt;, &lt;b&gt;static xml file-based discovery&lt;/b&gt;.  The ECF implementation is immediately usable with any...or all...of these providers...even within a single application if desired.  Further, &lt;a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF"&gt;ECF's remote services and discovery APIs&lt;/a&gt; allow other distribution and/or discovery systems to be plugged in &lt;b&gt;underneath&lt;/b&gt; our implementation...meaning that other distribution systems (e.g. open source distribution systems such as &lt;a href="http://www.eclipse.org/riena/"&gt;Riena&lt;/a&gt;, &lt;a href="http://cxf.apache.org/"&gt;Apache CXF&lt;/a&gt;, and/or proprietary distribution systems) can reuse/leverage our implementation...and &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=274839"&gt;avoid the work&lt;/a&gt; otherwise necessary to implement the OSGi specification themselves.  &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;'s implementation can also run alongside other remote services implementations without conflict.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Asynchronous and Synchronous&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Distributed applications and services frequently need to use asynchronous/non-blocking remote invocation patterns...in addition to synchronous, proxy-based remote method call.  Right now, &lt;a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API"&gt;ECF has built-in support&lt;/a&gt; for &lt;b&gt;both&lt;/b&gt; asynchronous invocation (e.g. asynchronous listeners, futures, one-ways), as well as proxy/synchronous invocation...giving the services and application programmer a transport-independent choice of which to use.  Currently, the OSGi 4.2 spec does not yet specify asynchronous invocation patterns for remote services, but ECF's implementation &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IRemoteService.html"&gt;does have it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Lightweight&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The entire ECF implementation of the spec...along with &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;'s remote services API...is &lt; 150k of code.  Further, the OSGi execution environment requirements are minimal (CDC 1.1/Foundation 1.1).  Combined with a small provider (like &lt;a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_RFC119_Implementation"&gt;r-OSGi&lt;/a&gt;), and this allows even small devices to both expose/host and consume standardized remote services.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Standard, Open Source, Open Team, Open Process&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; implementation is fully compliant with the OSGi 4.2 remote services specification...for &lt;b&gt;any and all&lt;/b&gt; current and future &lt;a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API"&gt;ECF remote services&lt;/a&gt; providers.  Further, as mentioned above, other providers can now get this compliance for free.  Of course, ECF's implementation is open source, but it is also produced by a vendor-neutral project team, and &lt;a href="http://wiki.eclipse.org/ECF"&gt;fully open community-driven process&lt;/a&gt;. In addition, we have support for a &lt;a href="http://wiki.eclipse.org/Distributed_EventAdmin_Service"&gt;distributed version of the OSGi EventAdmin service&lt;/a&gt;, for doing publish-and-subscribe-based applications using a standard event bus API/service.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Extensible&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF"&gt;ECF's implementation&lt;/a&gt; is deeply extensible, allowing control or customization of every aspect of the distribution of an OSGi service (e.g. custom discovery, custom marshalling/serialization, custom transport/wire protocol, etc) for those that need it.  This is enabled by the &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;open APIs&lt;/a&gt; that ECF exposes, and allows a wide variety of deployment requirements and application-level use cases to be easily supported.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;It's All About Modules&lt;/b&gt;.  &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;'s modular structure is indeed enabled by OSGi's modularity, but we have also applied modular design to &lt;a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF"&gt;every level of APIs and implementations&lt;/a&gt;.  For example, lightweightness, extensibility, and transport independence all are enabled by our modular designs...to separate API from implementation, and to separate distinct subsystems (e.g. discovery and remote services APIs).&lt;br /&gt;&lt;br /&gt;We are preparing a release that includes this code...so to immediately download/use ECF's implementation, or engage the community...for requesting enhancements, reporting bugs, contributing (e.g. examples, providers, customizations), helping with testing, or getting support please consider joining the &lt;a href="http://www.eclipse.org/ecf/dev_resources.php"&gt;ecf dev mailing list&lt;/a&gt; or see the &lt;a href="http://www.eclipse.org/ecf/dev_resources.php"&gt;ecf dev resources page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1063168790768027169?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1063168790768027169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1063168790768027169' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1063168790768027169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1063168790768027169'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2010/01/osgi-remote-services-from-ecf.html' title='OSGi Remote Services from ECF'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8918783171653270613</id><published>2009-12-18T13:45:00.001-08:00</published><updated>2009-12-18T15:29:58.962-08:00</updated><title type='text'>Some new browser-based smartphone tooling</title><content type='html'>&lt;a href="http://www.precentral.net/project-ares-development-browser-goes-public-beta"&gt;Project Ares&lt;/a&gt; is a new browser-based development tool for Palm/WebOS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8918783171653270613?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8918783171653270613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8918783171653270613' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8918783171653270613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8918783171653270613'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/12/some-new-browser-based-smartphone.html' title='Some new browser-based smartphone tooling'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8857981513300437898</id><published>2009-12-09T13:22:00.000-08:00</published><updated>2009-12-09T14:05:02.331-08:00</updated><title type='text'>Cloud + OSGi + GWT + ECF Rest + Twitter API = Modular  web services</title><content type='html'>Using several technologies, I've recently created a Twitter user status service...i.e. a web service that retrieves the latest user status for a given user.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ec2-174-129-148-11.compute-1.amazonaws.com:8080/twitterstatus/Com_composent_gwt_twitterstatus.html"&gt;Click here to use/try it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will need a Twitter username and password to get that user's status.&lt;br /&gt;&lt;br /&gt;Here's what was used&lt;br /&gt;&lt;br /&gt;Web Server: &lt;a href="http://www.eclipse.org/rt/"&gt;EclipseRT&lt;/a&gt;, &lt;a href="http://www.eclipse.org/equinox/incubator/provisioning/"&gt;p2&lt;/a&gt;, &lt;a href="http://www.eclipse.org/equinox/server/"&gt;Equinox servletbridge&lt;/a&gt;&lt;br /&gt;Ajax Web UI: &lt;a href="http://code.google.com/webtoolkit/"&gt;Google Web Toolkit (GWT)&lt;/a&gt;&lt;br /&gt;REST API: &lt;a href="http://wiki.eclipse.org/ECF"&gt;ECF REST/remote services API&lt;/a&gt;, &lt;a href="http://apiwiki.twitter.com/"&gt;Twitter REST API/service&lt;/a&gt;&lt;br /&gt;Cloud provider: &lt;a href="http://aws.amazon.com/"&gt;Amazon Cloud/Web Services (AWS)&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;The use of &lt;a href="http://www.osgi.org"&gt;OSGi&lt;/a&gt; modularity makes this not only possible, but lightweight...as this server/service consists only of the bundles necessary to actually provide this service...and each of those used are small.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8857981513300437898?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8857981513300437898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8857981513300437898' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8857981513300437898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8857981513300437898'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/12/cloud-osgi-gwt-ecf-rest-twitter-api.html' title='Cloud + OSGi + GWT + ECF Rest + Twitter API = Modular  web services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-2156576802509973209</id><published>2009-12-01T11:15:00.000-08:00</published><updated>2009-12-01T11:26:11.438-08:00</updated><title type='text'>why we cooperate</title><content type='html'>It's a little hard for me to believe these days, but cooperation seems to be built in  &lt;a href="http://www.nytimes.com/2009/12/01/science/01human.html"&gt;http://www.nytimes.com/2009/12/01/science/01human.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Perhaps it's time to behave more like children.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-2156576802509973209?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/2156576802509973209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=2156576802509973209' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2156576802509973209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2156576802509973209'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/12/why-we-cooperate.html' title='why we cooperate'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5881425678804664588</id><published>2009-11-19T08:51:00.001-08:00</published><updated>2009-11-19T10:10:34.622-08:00</updated><title type='text'>ECF provides some additional REST</title><content type='html'>ECF was very fortunate to have &lt;a href="http://wiki.eclipse.org/Google_Summer_of_Code_ECF_Projects_for_2009"&gt;4 Google Summer of Code projects&lt;/a&gt; coming out of the summer of 2009.  All of these innovative codebases will make it into ECF itself...and more importantly we have gained several excellent new committers.  &lt;br /&gt;&lt;br /&gt;Coming out of the GSOC project, we've just finished a major refactoring of the &lt;a href="http://wiki.eclipse.org/REST_abstraction_for_ECF"&gt;REST API&lt;/a&gt;, to make it simpler, smaller, as well as better integrated with &lt;a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API"&gt;ECF remote services&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The integration with ECF remote services is particularly interesting, because it provides both proxy-based/synchronous invocation, as well as full support for asynchronous invocation patterns (i.e. asynchronous-with-listener-callback and &lt;a href="http://en.wikipedia.org/wiki/Futures_and_promises"&gt;futures&lt;/a&gt;).  With the integration with ECF remote services, the choice of synchronous/asynchronous invocation comes for &lt;span style="font-weight:bold;"&gt;free&lt;/span&gt; for all REST-based remote services.  See &lt;a href="http://wiki.eclipse.org/REST_abstraction_for_ECF"&gt;here&lt;/a&gt; to get the REST projects and use the API.  &lt;br /&gt;&lt;br /&gt;We are working on example code, and invite contributions from community members to this effort...so that we can continuously improve/simplify the API through community feedback, as well as get a wide range of example code and documentation from existing and new REST-based services.  See the &lt;a href="https://dev.eclipse.org/mailman/listinfo/ecf-dev"&gt;ecf-dev mailing list&lt;/a&gt; for feedback/discussion/coordination.&lt;br /&gt;&lt;br /&gt;The current test code uses the popular Twitter REST API...as an example of using the API to interoperate with non-OSGi, non-Eclipse, perhaps non-Java web service (I don't know/care how the Twitter service is actually implemented...which is what protocol-level interoperability is about).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5881425678804664588?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5881425678804664588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5881425678804664588' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5881425678804664588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5881425678804664588'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/11/ecf-provides-some-additional-rest.html' title='ECF provides some additional REST'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-2384703438000820646</id><published>2009-10-19T16:52:00.000-07:00</published><updated>2009-10-19T17:13:58.433-07:00</updated><title type='text'>Load balancing remote services</title><content type='html'>Hi Folks,&lt;br /&gt;&lt;br /&gt;The ECF wiki now has &lt;a href="http://wiki.eclipse.org/Load_Balancing_Remote_Services"&gt;example code for doing dynamic load balancing&lt;/a&gt;&lt;a href="http://wiki.eclipse.org/Load_Balancing_Remote_Services"&gt; of remote services&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This implementation uses a JMS Queue (via &lt;a href="http://activemq.apache.org/"&gt;ActiveMQ&lt;/a&gt; implementation of &lt;a href="http://en.wikipedia.org/wiki/Java_Message_Service"&gt;JMS&lt;/a&gt;) to do the dynamic load balancing of &lt;a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API"&gt;ECF remote service&lt;/a&gt; requests/method invocations. &lt;br /&gt;&lt;br /&gt;The thing that I like most about this is that it's extremely simple, small...and doesn't require any special/custom code to use.  Clients/consumers just lookup/use a remote service, and upon usage the service implementation load balances the requests among an arbitrary set of target servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-2384703438000820646?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/2384703438000820646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=2384703438000820646' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2384703438000820646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2384703438000820646'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/10/load-balancing-remote-services.html' title='Load balancing remote services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3613256528263792553</id><published>2009-10-12T19:31:00.000-07:00</published><updated>2009-10-12T19:38:29.680-07:00</updated><title type='text'>ECF 3.1 released</title><content type='html'>ECF 3.1 is now released.  See &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here&lt;/a&gt;&lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt; for download&lt;/a&gt;, and &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;here for New and Noteworthy&lt;/a&gt;.  Lots of very cool stuff being contributed (and that's without mentioning the &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=280347"&gt;upcoming Google Wave provider&lt;/a&gt;  :).&lt;br /&gt;&lt;br /&gt;Congrats to the &lt;a href="http://dev.eclipse.org/mhonarc/lists/ecf-dev/"&gt;ECF contributors, committers, and community&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3613256528263792553?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3613256528263792553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3613256528263792553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3613256528263792553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3613256528263792553'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/10/ecf-31-released.html' title='ECF 3.1 released'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-1074939502999245852</id><published>2009-10-10T12:28:00.000-07:00</published><updated>2009-10-10T12:38:46.232-07:00</updated><title type='text'>ECF 3.1</title><content type='html'>ECF 3.1 is being released on Monday next (10/12/2009), and there are some exciting additions:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/REST_abstraction_for_ECF"&gt;REST API&lt;/a&gt; - An extension of the &lt;a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API"&gt;ECF remote services API&lt;/a&gt; to allow interoperation between OSGi remote services and REST-based services&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF"&gt;Distributed EventAdmin&lt;/a&gt; - a Distributed implementation of the OSGi EventAdmin service, that uses JMS/ActiveMQ for transport (and/or other providers)&lt;/li&gt;&lt;li&gt;Lots of small improvements on ECF remote services, as well as examples and additional documentation&lt;/li&gt;&lt;li&gt;File-based Discovery - a contribution from Siemens for doing remote service discovery using a static endpoint-URI exposed via an xml format&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://www.eclipse.org/ecf/reviews/ECF_Project_3.1_Release_Review.pdf"&gt;Here&lt;/a&gt; are the release review slides.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1074939502999245852?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1074939502999245852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1074939502999245852' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1074939502999245852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1074939502999245852'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2009/10/ecf-31.html' title='ECF 3.1'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-7979161664449108934</id><published>2008-11-02T12:40:00.000-08:00</published><updated>2008-11-02T13:02:51.880-08:00</updated><title type='text'>Innovation</title><content type='html'>There's an article about technology innovation in bad economic conditions in today's NY Times:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2008/11/02/business/02unbox.html?ref=technology"&gt;It's No Time to Forget About Innovation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I believe this is something to remember...particularly for Eclipse committers...since in my view they are the innovators in the Eclipse community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-7979161664449108934?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/7979161664449108934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=7979161664449108934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7979161664449108934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7979161664449108934'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/11/innovation.html' title='Innovation'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-9172582534809130399</id><published>2008-10-14T11:24:00.000-07:00</published><updated>2008-10-14T18:29:19.501-07:00</updated><title type='text'>ECF and Coffee in the Classroom</title><content type='html'>There was a very cool announcement on the &lt;a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ecf"&gt;ECF newsgroup&lt;/a&gt; recently about a collaboration framework that uses ECF called Coffee.  See &lt;a href="http://www.eclipse.org/newsportal/article.php?id=1251&amp;amp;group=eclipse.technology.ecf#1251"&gt;here&lt;/a&gt; for the announcement.  The Coffee end user site is &lt;a href="http://www.coffee-soft.org/"&gt;here&lt;/a&gt;, and the development site is &lt;a href="http://www.sourceforge.net/projects/coffee-soft"&gt;here&lt;/a&gt;.  It's exciting for me to see &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; being used by projects both inside and outside the Eclipse Foundation...and as as you can see from the announcement they are keen to both collaborate and contribute back to the open source community.&lt;br /&gt;&lt;br /&gt;Enjoy the beverage!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-9172582534809130399?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/9172582534809130399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=9172582534809130399' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/9172582534809130399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/9172582534809130399'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/10/ecf-and-coffee-in-classroom.html' title='ECF and Coffee in the Classroom'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-4720081167215242523</id><published>2008-10-03T12:00:00.000-07:00</published><updated>2008-10-04T10:13:13.545-07:00</updated><title type='text'>Planning for ECF 3.0</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; is nearly finished moving from Technology to the new Runtime project, and we are doing planning for ECF 3.0/Galileo.  See the &lt;a href="http://www.eclipse.org/projects/project-plan.php?projectid=rt.ecf"&gt;new plan here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=ECF&amp;amp;bug_severity=enhancement"&gt;make enhancement requests&lt;/a&gt; and/or start discussion about desired features in the &lt;a href="mailto:ecf-dev@eclipse.org"&gt;dev mailing list&lt;/a&gt;...and let us know what features, changes, or bug fixes you want for ECF 3.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-4720081167215242523?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/4720081167215242523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=4720081167215242523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/4720081167215242523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/4720081167215242523'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/10/planning-for-ecf-30.html' title='Planning for ECF 3.0'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-2565535627221069661</id><published>2008-08-07T15:33:00.000-07:00</published><updated>2008-08-07T16:04:58.923-07:00</updated><title type='text'>Some Disturbing Things from Microsoft</title><content type='html'>&lt;a href="http://www.adtmag.com/article.aspx?id=23056"&gt;Open Source: A 'Growing Challenge' to Microsoft&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There's an MS quote that is particularly disturbing to me&lt;br /&gt;&lt;br /&gt;"The availability of protocol licenses may enable competitors to develop software products that better mimic the functionality of Microsoft's own products which could result in a reduction in sales of our products."&lt;br /&gt;&lt;br /&gt;This is disturbing because it's pits protocol/service interoperability (a user need) against MS's sales (a MS shareholder need).   Let's hope this doesn't result in MS pulling back from protocol openness.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-2565535627221069661?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/2565535627221069661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=2565535627221069661' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2565535627221069661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2565535627221069661'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/08/some-disturbing-things-from-microsoft.html' title='Some Disturbing Things from Microsoft'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-9010448576657015874</id><published>2008-08-03T14:54:00.000-07:00</published><updated>2008-08-03T14:58:46.255-07:00</updated><title type='text'>Learning to Think Small?</title><content type='html'>There is an interesting NY Times article today:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2008/08/03/technology/03unbox.html?_r=1&amp;amp;scp=1&amp;amp;sq=Even%20the%20Giants&amp;amp;st=cse&amp;amp;oref=slogin"&gt;Even the Giants Can Learn to Think Small&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-9010448576657015874?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/9010448576657015874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=9010448576657015874' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/9010448576657015874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/9010448576657015874'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/08/learning-to-think-small.html' title='Learning to Think Small?'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-6549920319582689103</id><published>2008-07-28T16:14:00.000-07:00</published><updated>2008-07-28T16:32:28.543-07:00</updated><title type='text'>ECF 2.0.0 New Features video</title><content type='html'>It can't match &lt;a href="http://ed-merks.blogspot.com/"&gt;Ed's pictures&lt;/a&gt;, but below is a pleasant scene, where most of the beauty is hidden beneath what is visible&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_9e3GEuyYq9o/SI5V998TTkI/AAAAAAAAAAg/pKb6_EcxzrE/s1600-h/Hawaii.7.27.2008+043.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_9e3GEuyYq9o/SI5V998TTkI/AAAAAAAAAAg/pKb6_EcxzrE/s320/Hawaii.7.27.2008+043.jpg" alt="" id="BLOGGER_PHOTO_ID_5228210740511592002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But to the point: &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://live.eclipse.org/node/571"&gt;ECF has a new &lt;/a&gt;&lt;a href="http://live.eclipse.org/node/571"&gt;video showing some of the new things in ECF 2.0&lt;/a&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Screen shot sharing&lt;/li&gt;&lt;li&gt;URL sharing&lt;/li&gt;&lt;li&gt;Real-Time shared editing&lt;/li&gt;&lt;li&gt;Discovery API, Service Discovery, Remote OSGI Services&lt;/li&gt;&lt;li&gt;Async File Download&lt;/li&gt;&lt;/ul&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-6549920319582689103?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/6549920319582689103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=6549920319582689103' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6549920319582689103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/6549920319582689103'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/07/ecf-200-new-features-video.html' title='ECF 2.0.0 New Features video'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_9e3GEuyYq9o/SI5V998TTkI/AAAAAAAAAAg/pKb6_EcxzrE/s72-c/Hawaii.7.27.2008+043.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-678601948092359487</id><published>2008-07-03T10:21:00.000-07:00</published><updated>2008-07-03T10:33:15.892-07:00</updated><title type='text'>Freed from email</title><content type='html'>There's an interesting article about use/abuse of email in the NY Times today:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2008/06/29/jobs/29pre.html"&gt;I Freed Myself From E-Mail’s Grip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;FWIW, I think ECF is doing it's &lt;a href="http://eclipseecf.blogspot.com/2008/06/ecf-200.html"&gt;part on this problem&lt;/a&gt;, by providing multiple ways for Eclipse users to easily, cheaply, and openly communicate and collaborate.&lt;br /&gt;&lt;br /&gt;Also, for those interested, there is a longstanding proposal to add an &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=126089"&gt;XMPP server at Eclipse Foundation&lt;/a&gt; in order to help teams build and maintain community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-678601948092359487?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/678601948092359487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=678601948092359487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/678601948092359487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/678601948092359487'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/07/freed-from-email.html' title='Freed from email'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-1451359630802578385</id><published>2008-06-25T10:01:00.000-07:00</published><updated>2008-06-25T14:02:51.805-07:00</updated><title type='text'>ECF 2.0.0</title><content type='html'>With Ganymede the ECF project has it's 2.0.0 release.   As for what's new....there were many little things, as well as many big but invisible things (i.e. &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;APIs&lt;/a&gt;), but the things that really stand out for me are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/DocShare_Plugin"&gt;Real-time shared editing&lt;/a&gt; (with a quickly-becoming &lt;a href="http://live.eclipse.org/node/543"&gt;popular video&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Discovery_API"&gt;Discovery API&lt;/a&gt;:  Simplified API and added jSLP provider&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Remote_Services_API"&gt;Remote OSGi Services API&lt;/a&gt;:  Added provider based upon &lt;a href="http://r-osgi.sourceforge.net/"&gt;r-OSGi&lt;/a&gt;&lt;/li&gt;&lt;li&gt;P2:  ECF's &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#File_Transfer_API"&gt;asynchronous file transfer API&lt;/a&gt; is used for P2's multi-protocol download, and so is part of the SDK.&lt;/li&gt;&lt;li&gt;Community Growth:  We added some great new committers to the project:  Markus, Jan, Ted, Mustafa, Marcelo...as well as many more contributors.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;New and Noteworthy for details and more&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;This is ECF's last release as a technology project...as we will soon be moving to the new &lt;a href="http://www.eclipse.org/org/press-release/20080317_Equinox.php"&gt;Runtime top-level project&lt;/a&gt; for 2.1 and beyond.&lt;br /&gt;&lt;br /&gt;I like to say:  'the community is the team' :)...so congratulations and thanks to the ECF community.&lt;br /&gt;&lt;br /&gt;P.S.  You can find/install ECF's features in the Ganymede &lt;span style="font-weight: bold;"&gt;Communications &lt;/span&gt;category.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1451359630802578385?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1451359630802578385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1451359630802578385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1451359630802578385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1451359630802578385'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/06/ecf-200.html' title='ECF 2.0.0'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-4986838716382739433</id><published>2008-06-21T16:06:00.000-07:00</published><updated>2008-06-21T16:14:57.362-07:00</updated><title type='text'>Adding Shared Editing To Your Favorite Text Editor</title><content type='html'>With &lt;a href="http://www.eclipse.org/ecf"&gt;ECF 2.0/Ganymede&lt;/a&gt;, ECF introduces &lt;a href="http://live.eclipse.org/node/543"&gt;Real-Time Shared Editing&lt;/a&gt;.   By default, the ECF real-time shared editing capability has been added to the JDT Java Source Code editor and Eclipse's Default Text Editor.&lt;br /&gt;&lt;br /&gt;I've &lt;a href="http://wiki.eclipse.org/Extending_Real-Time_Shared_Editing_for_Use_with_Other_Editors"&gt;begun documenting&lt;/a&gt; how those with other types of Eclipse-based text editors (e.g. C/C++, php, javascript, xml editors, etc) can add real-time shared editing to their editors...simply by adding a little bit of markup to plugin.xml.   See &lt;a href="http://wiki.eclipse.org/Extending_Real-Time_Shared_Editing_for_Use_with_Other_Editors"&gt;here for explanation and example&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-4986838716382739433?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/4986838716382739433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=4986838716382739433' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/4986838716382739433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/4986838716382739433'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/06/adding-shared-editing-to-your-favorite.html' title='Adding Shared Editing To Your Favorite Text Editor'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3534102086332104100</id><published>2008-06-17T11:48:00.000-07:00</published><updated>2008-06-17T11:53:24.936-07:00</updated><title type='text'>Articles on ECF</title><content type='html'>There are now a couple of articles on &lt;a href="http://www.eclipse.org/ecf"&gt;Eclipse Communication Framework&lt;/a&gt; for version 2.0.0/Ganymede release:&lt;br /&gt;&lt;br /&gt;InfoQ: &lt;a href="http://www.infoq.com/news/2008/06/eclipse-ganymede-ecf"&gt;http://www.infoq.com/news/2008/06/eclipse-ganymede-ecf&lt;/a&gt;&lt;br /&gt;DZone Interview:  &lt;a href="http://java.dzone.com/news/the-ecf-project-an-interview-w"&gt;http://java.dzone.com/news/the-ecf-project-an-interview-w&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3534102086332104100?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3534102086332104100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3534102086332104100' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3534102086332104100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3534102086332104100'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/06/articles-on-ecf.html' title='Articles on ECF'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3012781547316267763</id><published>2008-06-05T09:21:00.000-07:00</published><updated>2008-06-05T09:58:16.974-07:00</updated><title type='text'>Eclipse and Volunteerism</title><content type='html'>In response to a &lt;a href="http://dev.eclipse.org/newslists/news.eclipse.foundation/msg01749.html"&gt;recent news thread&lt;/a&gt;, &lt;a href="http://eclipse-projects.blogspot.com/2008/06/eric-rizzo-top-newcomer-evangelist.html"&gt;Bjorn Freeman-Benson says&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;As Dan Ariely explains in "Predictably Irrational", there is a huge difference between real volunteer and paid volunteer (Eclipse is 'paid volunteer'). &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I want to examine briefly Bjorn's assertion that Eclipse is 'paid volunteer'.&lt;br /&gt;&lt;br /&gt;In looking at the &lt;a href="http://dash.eclipse.org/dash/commits/web-app/commit-count-loc.php?sortBy=commits&amp;show="&gt;Dash commit count sorted by # of commits&lt;/a&gt;, the thing that jumps out at me is that for 2008 &lt;span style="font-weight:bold;"&gt;individuals&lt;/span&gt;, are right after IBM in terms of # of active committers (23.56%), commits (159,279), and lines of code (4,982,101).  &lt;br /&gt;&lt;br /&gt;There are/should be many qualifiers for these data:  I'm sure many of the independents are paid to work on Eclipse...but conversely it's quite possible (and likely, I think) that some corporate-supported committers work more on Eclipse-related work...by their own choice...than their employers explicitly sanction.  But in any event, I think the overwhelming message from the data is that the contribution from independents (many of whom are unpaid volunteers I would suppose) is large...and growing rapidly year-over-year.&lt;br /&gt;&lt;br /&gt;All I'm saying is that 'Eclipse' is not necessarily 'paid volunteer'.  But it does have a strong aspect of unpaid volunteerism, which as Bjorn (and Eric Rizzo) point out, should be encouraged and supported:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;The place that Eclipse overall has not done a good job is making our projects attractive to unpaid, part-time volunteers. They're different. Their motivations are different. The Rizzo Ceiling is real for them.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;For some pointers to interesting thoughts about motivations, please see &lt;br /&gt;&lt;br /&gt;&lt;a href="http://eclipseecf.blogspot.com/2008/02/when-self-interest-inst-everything.html"&gt;When Self Interest Isn't Everything&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Seems that while I was typing this out, &lt;a href="http://borisoneclipse.blogspot.com/2008/06/unpaid-volunteers-do-exist.html"&gt;Boris Bokowski has also made some similar points&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3012781547316267763?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3012781547316267763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3012781547316267763' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3012781547316267763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3012781547316267763'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/06/eclipse-and-volunteerism.html' title='Eclipse and Volunteerism'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5781123681209155229</id><published>2008-02-26T15:38:00.000-08:00</published><updated>2008-02-26T16:48:35.209-08:00</updated><title type='text'>projectDiversity.equals(productivity)</title><content type='html'>I have started reading the book described in this article&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2008/01/08/science/08conv.html?ref=science"&gt;In Professor's Model, Diversity = Productivity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After reading some of &lt;a href="http://www.amazon.com/Difference-Diversity-Creates-Schools-Societies/dp/0691128383"&gt;his book&lt;/a&gt;, it seems that &lt;span style="font-style: italic;"&gt;cognitive&lt;/span&gt; diversity (defined as group differences in perspective, heuristics, interpretation, and prediction) generally lead to improvement in overall productivity.   There are other kinds of group differences, of course...e.g. what Page calls identity differences (e.g. racial, gender, and social group), and other sorts of differences, but Page identifies cognitive differences as key.&lt;br /&gt;&lt;br /&gt;Increased productivity is dependent upon the problem/task at hand, of course.  Group tasks/problems that hinge on questions of representation and interpretation get greater value from diverse perspectives, since such diversity allows more alternatives to be generated and considered.&lt;br /&gt;&lt;br /&gt;My thought on reading this was that many sw design tasks are like this (i.e. hinge upon how the problem is represented) and so should be particularly good candidates to benefit from teams with high cognitive diversity...and the many perspectives that come with such groups.  &lt;br /&gt;&lt;br /&gt;Interestingly, Page also identifies a type of diversity that seems to result in lower group productivity...I'll talk about that after I've read a little more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5781123681209155229?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5781123681209155229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5781123681209155229' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5781123681209155229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5781123681209155229'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/02/projectdiversityequalsproductivity.html' title='projectDiversity.equals(productivity)'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-8036680113032420133</id><published>2008-02-10T12:16:00.000-08:00</published><updated>2008-06-05T09:41:58.957-07:00</updated><title type='text'>When Self-Interest Isn't Everything</title><content type='html'>An interesting editorial by an economist in today's NY Times&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nytimes.com/2008/02/10/business/10view.html?scp=1&amp;amp;sq=self-interest&amp;amp;st=nyt"&gt;When Self-Interest Isn't Everything&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Is Hirschman's analysis (described in editorial) relevant for the open source 'movement'?  How much of open source is/will be about self-interest?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-8036680113032420133?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/8036680113032420133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=8036680113032420133' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8036680113032420133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/8036680113032420133'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/02/when-self-interest-inst-everything.html' title='When Self-Interest Isn&apos;t Everything'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3835698172641502671</id><published>2008-02-07T17:07:00.000-08:00</published><updated>2008-02-07T17:37:28.749-08:00</updated><title type='text'>Discovery and Access for Remote OSGi Services</title><content type='html'>See &lt;a href="http://wiki.eclipse.org/Discovery_of_Remote_Services"&gt;here&lt;/a&gt; for some work combining the ECF discovery API with the ECF remote services API.&lt;br /&gt;&lt;br /&gt;Interesting things about this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;ECF APIs have multiple providers...i.e. &lt;a href="http://en.wikipedia.org/wiki/Zeroconf"&gt;zeroconf/bonjour&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Service_Location_Protocol"&gt;SLP&lt;/a&gt; for discovery, &lt;a href="http://r-osgi.sourceforge.net/"&gt;r-OSGi&lt;/a&gt;, &lt;a href="http://www.eclipse.org/ecf"&gt;ECF generic&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol"&gt;xmpp&lt;/a&gt;, &lt;a href="http://www.cs.cornell.edu/Info/Projects/JavaGroupsNew/index.html"&gt;javagroups&lt;/a&gt;, and multiple flavors of &lt;a href="http://java.sun.com/products/jms/"&gt;JMS&lt;/a&gt; for remote services.  This allows middleware and UI written to these &lt;a href="http://wiki.eclipse.org/ECF_API_Docs"&gt;ECF APIs&lt;/a&gt; to run unmodified on any/all of these providers.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Remote_Services_API"&gt;ECF remote services API&lt;/a&gt; can be used in either 'transparent' or 'non-transparent' manner...allowing programmers to decide whether network transparency for remote procedure call (RPC) is appropriate for their application...or not.&lt;/li&gt;&lt;/ol&gt;In time for EclipseCon, I intend to expose some of the &lt;a href="http://wiki.eclipse.org/Equinox_Provisioning"&gt;Equinox p2&lt;/a&gt; APIs as remote services, so that OSGi containers can be remotely provisioned and managed.  If you would like to participate in this, please &lt;a href="mailto:ecf-dev@eclipse.org"&gt;contact us and offer to contribute&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3835698172641502671?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3835698172641502671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3835698172641502671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3835698172641502671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3835698172641502671'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/02/discovery-and-access-for-remote-osgi.html' title='Discovery and Access for Remote OSGi Services'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5029836977655232009</id><published>2008-01-08T12:10:00.000-08:00</published><updated>2008-01-08T12:25:19.520-08:00</updated><title type='text'>Project Diversity = Productivity?</title><content type='html'>In today's New York Times is this intriguing interview:&lt;br /&gt;&lt;a href="http://www.nytimes.com/2008/01/08/science/08conv.html?ref=science"&gt;&lt;br /&gt;In Professor's Model, Diversity = Productivity&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Given the past year's frequent postings regarding project diversity (e.g &lt;a href="http://eclipse-projects.blogspot.com/2007/09/diversity-just-lip-service.html"&gt;Bjorn&lt;/a&gt;, &lt;a href="http://cdtdoug.blogspot.com/2007/08/need-for-diversity.html"&gt;Doug&lt;/a&gt;, &lt;a href="http://eclipse-committer-reps.blogspot.com/"&gt;Committer Reps&lt;/a&gt;, and many of the always-beautiful postings by &lt;a href="http://ed-merks.blogspot.com/"&gt;Ed Merks&lt;/a&gt;), this research seems relevant.&lt;br /&gt;&lt;br /&gt;I haven't had a chance to read the original research yet, but this caught my eye in the interview:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;What the model showed was that diverse groups of problem solvers outperformed the groups of the best individuals at solving problems. The reason: the diverse groups got stuck less often than the smart individuals, who tended to think similarly.&lt;/p&gt;&lt;p&gt;The other thing we did was to show in mathematical terms how when making predictions, a group’s errors depend in equal parts on the ability of its members to predict and their diversity. This second theorem can be expressed as an equation: collective accuracy = average accuracy + diversity.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5029836977655232009?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5029836977655232009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5029836977655232009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5029836977655232009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5029836977655232009'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2008/01/project-diversity-productivity.html' title='Project Diversity = Productivity?'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5282160710371133907</id><published>2007-11-20T22:17:00.000-08:00</published><updated>2007-11-20T22:26:23.086-08:00</updated><title type='text'>Real-Time Shared Editing over XMPP</title><content type='html'>The &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; project has been adding some real-time collaboration functions for dev team support...for example, &lt;a href="http://wiki.eclipse.org/Sharing_Editor_Selections"&gt;sharing selected text in Eclipse editors&lt;/a&gt;, as well as &lt;a href="http://wiki.eclipse.org/DocShare_Plugin"&gt;real-time collaborative editing&lt;/a&gt;...all over the &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Datashare_API"&gt;ECF datashare API&lt;/a&gt;...which means you can use your favorite public IM accounts like &lt;a href="http://talk.google.com/"&gt;google talk&lt;/a&gt;, or &lt;a href="http://www.skype.com/"&gt;skype&lt;/a&gt; rather than be forced to have yet another account.  We've also got some new &lt;a href="http://wiki.eclipse.org/Integration_with_Mylyn"&gt;sharing of Mylyn tasks&lt;/a&gt; as per &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=195737"&gt;bug 195737&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5282160710371133907?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5282160710371133907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5282160710371133907' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5282160710371133907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5282160710371133907'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/11/real-time-shared-editing-over-xmpp.html' title='Real-Time Shared Editing over XMPP'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5955262297752206463</id><published>2007-10-22T17:15:00.000-07:00</published><updated>2007-10-22T17:29:47.824-07:00</updated><title type='text'>ECF 1.2</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf/"&gt;ECF 1.2&lt;/a&gt; has just been released.  Highlights:  lots of UI work (not all of it with &lt;a href="http://www.eclipse.org/ecf/images/screens/avatar.png"&gt;zx's picture&lt;/a&gt;...is that a UI improvement? ;-), cool work on &lt;a href="http://eclipseecf.blogspot.com/2007/10/remote-osgi-services-questions-of.html"&gt;remote services&lt;/a&gt;, &lt;a href="http://wiki.eclipse.org/index.php/ECF_API_Docs#Discovery_API"&gt;discovery API improvments&lt;/a&gt;, and a &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;fair amount more&lt;/a&gt;.  Lots of great community contributions &lt;span style="text-decoration: underline;"&gt;via &lt;/span&gt;&lt;a href="http://wiki.eclipse.org/BugDay"&gt;BugDay&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5955262297752206463?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5955262297752206463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5955262297752206463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5955262297752206463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5955262297752206463'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/10/ecf-12.html' title='ECF 1.2'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-3067200093694080636</id><published>2007-10-17T17:33:00.000-07:00</published><updated>2007-10-17T17:45:13.781-07:00</updated><title type='text'>Remote OSGi Services: Questions of Transparency</title><content type='html'>Recently, I've been having &lt;a href="news:eclipse.technology.riena"&gt;discussions with various folks&lt;/a&gt; about whether network transparency for remote OSGi services is a 'good thing'.&lt;br /&gt;&lt;br /&gt;I think a reasonable summary of the discussion is that under the right conditions, it can be a good thing, because it makes it possible to easily create distributed applications using consistent APIs...without learning network specific service APIs.&lt;br /&gt;&lt;br /&gt;OTOH, under the wrong conditions and assumptions, too much network transparency can make it very hard or impossible to build reliable distributed components or applications (for details see the classic &lt;a href="http://research.sun.com/techrep/1994/abstract-29.html"&gt;Note on Distributed Computing&lt;/a&gt; Paper).&lt;br /&gt;&lt;br /&gt;With our own &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Remote_Services_API"&gt;Remote Services API&lt;/a&gt; in &lt;a href="http://www.eclipse.org/ecf/"&gt;ECF&lt;/a&gt;, we've tried to create an API so that it's easy to use either approach...and attempt to steer clear of the religious wars.  So, for example, in &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; here's how you register a remote service (for the 'server' of that service) to be accessed ...either transparently or not-transparently:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;IConcatService serviceImpl = new ServiceImpl();&lt;br /&gt;Dictionary props = new Hashtable();&lt;br /&gt;props.put(Constants.LOCAL_SERVICE_REGISTRATION, "true");&lt;br /&gt;// Register serviceImpl&lt;br /&gt;context.registerRemoteService(new String[] {IConcatService.class.getName()}, serviceImpl, props);&lt;/blockquote&gt;&lt;br /&gt;And then on the service client, you can access it like any other OSGi service...and underneath a proxy is created (this looks exactly the same whether the service is local or remote):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ServiceReference ref = bc.getServiceReference(IConcatService.class.getName());&lt;br /&gt;IConcatService concatService = (IConcatService) bc.getService(ref);&lt;br /&gt;concatService.call();&lt;br /&gt;// call concatService...calls proxy and sends the call to remote serviceImpl&lt;/blockquote&gt;&lt;br /&gt;Alternatively, clients can also access a &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IRemoteService.html"&gt;IRemoteService&lt;/a&gt; instance via a service property, and do things like send an asynchronous message to invoke the service...for example:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;ServiceReference ref = bc.getServiceReference(IConcatService.class.getName());&lt;br /&gt;IRemoteService remoteService = (IRemoteService) ref.getProperty(Constants.REMOTE_SERVICE);&lt;br /&gt;// Call it with listener for return/result.  This returns immediately and then later&lt;br /&gt;// calls the remoteCallListener&lt;br /&gt;remoteService.callAsynch(remoteCall, remoteCallListener);&lt;/blockquote&gt;&lt;br /&gt;Of course you could claim that is &lt;span style="font-weight: bold;"&gt;chickening out&lt;/span&gt; on the transparency battles, but I tend to think of it as simply recognizing that there are lots of distributed applications out there that can (and should and will) be implemented on OSGi runtimes, and they all differ in their needs...e.g. for synch vs. asynch, or handling of partial failure, or in their timing/performance requirements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-3067200093694080636?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/3067200093694080636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=3067200093694080636' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3067200093694080636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/3067200093694080636'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/10/remote-osgi-services-questions-of.html' title='Remote OSGi Services: Questions of Transparency'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-1065136852310941072</id><published>2007-09-10T13:44:00.000-07:00</published><updated>2007-09-10T23:22:51.812-07:00</updated><title type='text'>Messaging for Servers</title><content type='html'>Among some of the &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;New and Noteworthy&lt;/a&gt; for &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;ECF 1.1&lt;/a&gt; are some new providers&lt;br /&gt;&lt;br /&gt;ActiveMQ/Websphere CE (JMS)&lt;br /&gt;BEA Weblogic (JMS)&lt;br /&gt;JGroups&lt;br /&gt;&lt;br /&gt;The first two depend upon/use commercial implementations of the &lt;a href="http://java.sun.com/jms"&gt;Java Messaging Service&lt;/a&gt; (JMS) associated with Websphere Community Edition and BEA Weblogic, respectively.  ActiveMQ is also an Apache open source project (activemq.apache.org).  The third is an open source reliable multicast implementation used in JBoss called &lt;a href="http://www.jgroups.org/"&gt;JavaGroups&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Included with each of these providers is an Eclipse IApplication that allows them to be run as a stand-alone OSGi/ECF-based server.&lt;br /&gt;&lt;br /&gt;This also expands the set of providers that support the &lt;a href="http://wiki.eclipse.org/ECF_API_Docs#Remote_Services_API"&gt;ECF remote services API&lt;/a&gt;:  an API for invoking OSGi services remotely...via synchronous method call and/or asynchronous invocation.  Each of these providers implements the ECF remote services API, showing that a single API for remoting really can (and does) run on multiple wire transports and multiple network topologies...an elusive goal for much of the web services world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-1065136852310941072?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/1065136852310941072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=1065136852310941072' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1065136852310941072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/1065136852310941072'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/09/messaging-for-servers.html' title='Messaging for Servers'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5290046852949661811</id><published>2007-07-23T16:35:00.000-07:00</published><updated>2007-07-23T17:52:05.459-07:00</updated><title type='text'>Remote OSGI over XMPP</title><content type='html'>In a &lt;a href="http://eclipseecf.blogspot.com/2007/05/eclipse-rt-collab-over-plain-ol-xmpp.html"&gt;previous post&lt;/a&gt;, I showed how real-time collaboration could be added to Eclipse/RCP apps using &lt;a href="http://wiki.eclipse.org/index.php/ECF_API_Docs#Datashare_API"&gt;ECF datashare API&lt;/a&gt; running on the &lt;a href="http://wiki.eclipse.org/ECF_Providers#Presence_.28org.eclipse.ecf.presence.29"&gt;ECF XMPP provider&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One can also use ECF to make remote OSGi calls using the &lt;a href="http://wiki.eclipse.org/index.php/ECF_API_Docs#Remote_Services_API"&gt;ECF remoteservices API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For example, on an ECF XMPP peer that is to be the 'server' for a given service (a trivial IConcatService in this case):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  // Get ECF adapter for remote services&lt;br /&gt;  IRemoteServiceContainerAdapter adapter =  ... (e.g. from contacts list)&lt;br /&gt;  // Get targetID[] buddies who are to receive service registration&lt;br /&gt;  ID [] targetIDs = ... (e.g. from contacts list)&lt;br /&gt;  Dictionary props = new Hashtable();&lt;br /&gt;  props.put(Constants.SERVICE_REGISTRATION_TARGETS,targetIDs);&lt;br /&gt;  // Create service instance...this does the actual concatenate&lt;br /&gt;  Object concatService = new IConcatService() {&lt;br /&gt;          public String concat(String string1, String string2) {&lt;br /&gt;              return string1.concat(string2);&lt;br /&gt;          }&lt;br /&gt;      };&lt;br /&gt;  // Register service instance&lt;br /&gt;  adapter.registerRemoteService(new String[] { "IConcatService" }, concatService, props);&lt;br /&gt;  // Service now registered&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And for clients to lookup and use the service:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   // Get adapter for accessing remote services&lt;br /&gt;  IRemoteServiceContainerAdapter adapter =  ...&lt;br /&gt;  // Get remote service reference&lt;br /&gt;  IRemoteServiceReference[] refs = adapter.getRemoteServiceReferences(null, "IConcatService", null);&lt;br /&gt;  // Get service for remote reference&lt;br /&gt;  IRemoteService service = adapter.getRemoteService(refs[0]);&lt;br /&gt;  // Create remote call&lt;br /&gt;  IRemoteCall remoteCall =  new IRemoteCall() {&lt;br /&gt;          public String getMethod() {&lt;br /&gt;              return "concat";&lt;br /&gt;          }&lt;br /&gt;          public Object[] getParameters() {&lt;br /&gt;              return new Object[] { "Eclipse", " is cool" };&lt;br /&gt;          }&lt;br /&gt;&lt;br /&gt;          public long getTimeout() {&lt;br /&gt;              return 3000;&lt;br /&gt;          }};&lt;br /&gt;  // Call synchronously&lt;br /&gt;  String result = (String) service.callSynch(remoteCall);&lt;br /&gt;  System.out.println("concat result is: "+result);&lt;br /&gt;  // prints out:  concat result is: Eclipse is cool&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Further, note that the client can use any of the 'style's of remote invocation desired:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;IRemoteService.callSynch(...)&lt;br /&gt;IRemoteService.callAsynch(...)&lt;br /&gt;IRemoteService.fireAsynch(...)&lt;br /&gt;IRemoteService.getProxy()&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With 'getProxy()' this returns an instance that implements IConcatService, and allows direct method invocation:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;IConcatService concat = (IConcatService) remoteService.getProxy();&lt;br /&gt;String result = concat.concat("OSGi"," is cool");&lt;br /&gt;System.out.println("concat result is: "+result);&lt;br /&gt;// prints out:  concat result is: OSGi is cool&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;There is more test and example code available &lt;a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/tests/org.eclipse.ecf.tests.remoteservice/?root=Technology_Project"&gt;here&lt;/a&gt;.  Note that with the IRemoteService.callAsynch, callSynch, and fireAsynch methods it is not even necessary that the client have the service interface locally.  All that is needed is the string identifying the desired class name.&lt;br /&gt;&lt;br /&gt;The support for remote services on the ECF generic provider is already in ECF 1.0.0, and the support for doing remote services on XMPP will be available in &lt;a href="http://wiki.eclipse.org/ECF_Ganymede_Roadmap#Maintenance_Releases"&gt;ECF 1.0.2&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5290046852949661811?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5290046852949661811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5290046852949661811' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5290046852949661811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5290046852949661811'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/07/remote-osgi-over-xmpp.html' title='Remote OSGI over XMPP'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-2675900178548937110</id><published>2007-05-08T17:56:00.000-07:00</published><updated>2007-06-17T11:06:40.513-07:00</updated><title type='text'>Real-time Collab Over plain 'ol XMPP</title><content type='html'>Something cool:  &lt;a href="http://www.eclipsezone.com/eclipse/forums/t94132.html"&gt;real-time collaboration in Eclipse via XMPP&lt;/a&gt;.  The point here is that with the &lt;a href="http://wiki.eclipse.org/index.php/ECF_API_Docs#Datashare_API"&gt;ECF Datashare API&lt;/a&gt;, it's possible to send arbitrary messages to folks on your XMPP (or Google Talk, or soon Skype) buddy list, and with the new Eclipse 3.3 &lt;a href="http://wiki.eclipse.org/index.php/Menu_Contributions"&gt;menuContribution API&lt;/a&gt;, it's very easy to create your own plugin, that uses ECF's MultiRosterView to add on your own actions (like making a &lt;a href="http://wiki.eclipse.org/index.php/Skype_Provider"&gt;Skype call&lt;/a&gt;, or &lt;a href="http://www.eclipsezone.com/eclipse/forums/t94132.html"&gt;sending an URL to team mate&lt;/a&gt;, or &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=145258"&gt;playing Sudoku with a buddy&lt;/a&gt;, etc).  No need to understand XMPP, to use any of this, just send/receive data (byte []s).&lt;br /&gt;&lt;br /&gt;Now available via dev/integration build.  See &lt;a href="http://www.eclipsezone.com/eclipse/forums/t94279.html"&gt;here&lt;/a&gt; for links to latest download.&lt;br /&gt;&lt;br /&gt;Here's a class which is responsible for sending/receiving the URL (most of it is UI code.  See sendURL and handleMessage/showURL).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-2675900178548937110?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/2675900178548937110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=2675900178548937110' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2675900178548937110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/2675900178548937110'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/05/eclipse-rt-collab-over-plain-ol-xmpp.html' title='Real-time Collab Over plain &apos;ol XMPP'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-7966618709723590855</id><published>2007-04-21T14:21:00.000-07:00</published><updated>2007-04-21T14:31:17.233-07:00</updated><title type='text'>Skype Provider for ECF</title><content type='html'>&lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt; is soon going to make available a dev build for a &lt;a href="http://wiki.eclipse.org/index.php/Skype_Provider"&gt;Skype Provider&lt;/a&gt;.  If you have some appropriate sounds, please consider donating them to us to use as a ring tone within Eclipse.  &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=182840"&gt;See bug #182840.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-7966618709723590855?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/7966618709723590855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=7966618709723590855' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7966618709723590855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/7966618709723590855'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/04/skype-provider-for-ecf.html' title='Skype Provider for ECF'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-5950085952393024185</id><published>2007-04-02T09:54:00.000-07:00</published><updated>2007-04-02T10:09:01.700-07:00</updated><title type='text'>ECF 1.0.0 milestone 6 released</title><content type='html'>ECF 1.0.0 milestone 6 released.  Some cool new stuff...e.g.&lt;br /&gt;&lt;br /&gt;1) A new 'bot' API/plugin (org.eclipse.ecf.presence.bot) to allow people to create IM and chat room robots that can respond to messages. &lt;br /&gt;2) Committer Remy Suen has created a very cool &lt;a href="http://wiki.eclipse.org/index.php/Bot_Framework"&gt;Bot Framework Tutorial&lt;/a&gt;.&lt;br /&gt;3) A history API for IM/chat room history. &lt;br /&gt;4) Peer-to-peer file transfer over XMPP&lt;br /&gt;5) Work on file transfer API to support the &lt;a href="http://www.eclipse.org/equinox/incubator/provisioning/"&gt;Equinox provisioning incubator&lt;/a&gt; effort.&lt;br /&gt;&lt;br /&gt;Here's the download page:  &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;http://www.eclipse.org/ecf/downloads.php&lt;/a&gt;&lt;br /&gt;New and Noteworthy: &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;http://www.eclipse.org/ecf/NewAndNoteworthy.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And we've done lots of work on making the ECF core and API plugins able to run on any/all Equinox runtimes (e.g. servers, RCP, Eclipse, etc).  See this bug here for details:  &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=176322"&gt;bug #176322.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Next Up&lt;/span&gt;:  Implementation of &lt;a href="http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/"&gt;ECF call API&lt;/a&gt; with &lt;a href="http://www.xmpp.org/extensions/xep-0166.html"&gt;Jingle&lt;/a&gt; (&lt;a href="http://www.google.com/talk/"&gt;Google Talk&lt;/a&gt;), and &lt;a href="http://www.skype.com"&gt;Skype&lt;/a&gt; as well as support for &lt;a href="http://wiki.eclipse.org/index.php/Europa_Simultaneous_Release"&gt;Europa M7&lt;/a&gt;, further work on supporting Equinox provisioning as needed, a continuous build server for daily integration builds, and bug fixes (of course).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-5950085952393024185?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/5950085952393024185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=5950085952393024185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5950085952393024185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/5950085952393024185'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/04/ecf-100-milestone-6-released.html' title='ECF 1.0.0 milestone 6 released'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-116879248487253829</id><published>2007-01-14T08:30:00.000-08:00</published><updated>2007-01-14T21:52:31.720-08:00</updated><title type='text'>ECF 0.9.6 stable released</title><content type='html'>ECF is releasing 0.9.6 stable today (Jan 13, 2007).  It has quite a few positive changes in the simplification of the presence API, the easier creation and customization of roster user interfaces via the new plugin: org.eclipse.ecf.presence.ui, use of the new connect and configuration wizard extension points, and lots of bug fixes.  See &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here for the download&lt;/a&gt;,  &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;here for the New and Noteworthy&lt;/a&gt;, and &lt;a href="http://www.eclipse.org/ecf/plan.php"&gt;here for the planned and completed&lt;/a&gt; fixes and enhancements.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-116879248487253829?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/116879248487253829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=116879248487253829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116879248487253829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116879248487253829'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2007/01/ecf-096-stable.html' title='ECF 0.9.6 stable released'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-116526717521209576</id><published>2006-12-04T13:16:00.000-08:00</published><updated>2006-12-04T13:19:35.223-08:00</updated><title type='text'>ECF 0.9.4 Stable Released</title><content type='html'>ECF 0.9.4 stable released.  Download &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here&lt;/a&gt;.  New and Noteworthy &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;here&lt;/a&gt;.  Also created project milestone plan (tentative) and put &lt;a href="http://www.eclipse.org/ecf/plan.php"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-116526717521209576?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/116526717521209576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=116526717521209576' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116526717521209576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116526717521209576'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2006/12/ecf-094-stable-released.html' title='ECF 0.9.4 Stable Released'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-116483862658687442</id><published>2006-11-29T14:08:00.000-08:00</published><updated>2006-11-29T14:17:06.596-08:00</updated><title type='text'>ECF 0.9.4 on 12/2/2006</title><content type='html'>ECF 0.9.4 stable will be available on 12/2/2006.  The new things will be two UI extension points, to allow  ECF providers to create custom configuration wizards and connect wizards.  The extension points are &lt;span style="font-weight: bold;"&gt;org.eclipse.ecf.ui.configurationWizards&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;org.eclipse.ecf.ui.connectWizards&lt;/span&gt;.  Both are in the &lt;span style="font-weight: bold;"&gt;org.eclipse.ecf.ui&lt;/span&gt; plugin. &lt;br /&gt;&lt;br /&gt;Also, the UI/Example application refactoring has begun, with initial changes/refactoring of the RosterView.  For the next few releases (0.9.4+) there will be many more changes to the UI and example application code as the focus has shifted from UI to &lt;a href="http://wiki.eclipse.org/index.php/ECF_Application_Refactoring"&gt;application refactoring&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-116483862658687442?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/116483862658687442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=116483862658687442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116483862658687442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116483862658687442'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2006/11/ecf-094-on-1222006.html' title='ECF 0.9.4 on 12/2/2006'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-116483803586612379</id><published>2006-11-29T14:02:00.000-08:00</published><updated>2006-11-29T14:07:15.876-08:00</updated><title type='text'>ECF 0.9.3 stable released</title><content type='html'>ECF 0.9.3 (the 'API refactoring' release) is available &lt;a href="http://www.eclipse.org/ecf/downloads.php"&gt;here&lt;/a&gt;.  The &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy_0.9.3.html"&gt;new and noteworthy&lt;/a&gt; describes the changes made to the APIs.  NOTE:  This is a backward-compatibility breaking release, as some of the code moved out of existing packages and into new plugins and packages.   The API refactoring was driven by requests and requirements described &lt;a href="http://wiki.eclipse.org/index.php/ECF_API_Refactoring"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-116483803586612379?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/116483803586612379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=116483803586612379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116483803586612379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/116483803586612379'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2006/11/ecf-093-stable-released.html' title='ECF 0.9.3 stable released'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-113797004675742452</id><published>2006-01-22T14:47:00.000-08:00</published><updated>2006-01-22T22:09:35.160-08:00</updated><title type='text'>OSGI components on server and ECF</title><content type='html'>There's an &lt;a href="http://www.infonoia.com/en/content.jsp?d=inf.05.07"&gt;excellent article about the recent Equinox incubator &lt;br /&gt;work&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;One point that's not mentioned in the article:  in addition to web servers, collaboration and messaging servers (e.g. IM, file sharing, voip/conferencing, Asterisk, etc., etc) can also &lt;br /&gt;benefit tremendously from being able to run the Eclipse/OSGI component model on the server.  For example, for ECF's 'generic server' we will be able to introduce &lt;br /&gt;plugins dynamically on &lt;b&gt;both&lt;/b&gt; clients and servers, using the same basic component model and the same&lt;br /&gt;plugin development tools (Eclipse).  This is a big deal for &lt;a href="http://www.eclipse.org/ecf"&gt;ECF&lt;/a&gt;.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/equinox/incubator/"&gt;Here is the Equinox incubator project&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-113797004675742452?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/113797004675742452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=113797004675742452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113797004675742452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113797004675742452'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2006/01/osgi-components-on-server-and-ecf.html' title='OSGI components on server and ECF'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-113787944244419799</id><published>2006-01-21T13:37:00.000-08:00</published><updated>2006-01-21T15:03:49.480-08:00</updated><title type='text'>ECF 0.6.0 and 0.6.1</title><content type='html'>ECF 0.6.0 is available &lt;a href="http://www.eclipse.org/ecf/downloads.html"&gt;here&lt;/a&gt;&lt;br /&gt;Here is the &lt;a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html"&gt;0.6.0 New and Noteworthy&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;br /&gt;We will be doing a 0.6.1 build during week of &lt;b&gt;1/23/06&lt;/b&gt;.  The main new addition&lt;br /&gt;for 0.6.1 will be a new API called 'datashare' that allows the easy &lt;br /&gt;creation of various asynchronous channels that have different msg delivery&lt;br /&gt;ordering semantics.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-113787944244419799?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/113787944244419799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=113787944244419799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113787944244419799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113787944244419799'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2006/01/ecf-060-and-061.html' title='ECF 0.6.0 and 0.6.1'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-113695762441988545</id><published>2006-01-10T21:33:00.000-08:00</published><updated>2006-01-21T15:01:21.066-08:00</updated><title type='text'>ECF 0.6.0</title><content type='html'>The ETA for ECF 0.6.0 is 1/15/06.  This release will be mostly API changes and bug fixes &lt;br /&gt;rather than new &lt;b&gt;features&lt;/b&gt;.  Specifically:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;SharedObjectFactory extension point (new) so that plugins can register themselves as implementers of shared object types&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fixes for JmDNS hang issues (zeroconf/bonjour provider implementation)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Revised API signature for ID and IContainer instance construction&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-113695762441988545?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/113695762441988545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=113695762441988545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113695762441988545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113695762441988545'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2006/01/ecf-060.html' title='ECF 0.6.0'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-113599053941924305</id><published>2005-12-30T16:55:00.000-08:00</published><updated>2005-12-30T16:55:39.423-08:00</updated><title type='text'>Jingle</title><content type='html'>Some very exciting things coming out of Google Talk. &lt;a href="http://code.google.com/apis/talk/index.html" title="Jingle"&gt;Jingle&lt;/a&gt; for example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-113599053941924305?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/113599053941924305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=113599053941924305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113599053941924305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113599053941924305'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2005/12/jingle.html' title='Jingle'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-20358640.post-113599004241741743</id><published>2005-12-30T16:45:00.000-08:00</published><updated>2005-12-30T16:47:22.423-08:00</updated><title type='text'>Greetings</title><content type='html'>I (Scott Lewis) lead the &lt;a href="http://www.eclipse.org/ecf"&gt;Eclipse Communication Framework project&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/20358640-113599004241741743?l=eclipseecf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eclipseecf.blogspot.com/feeds/113599004241741743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=20358640&amp;postID=113599004241741743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113599004241741743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20358640/posts/default/113599004241741743'/><link rel='alternate' type='text/html' href='http://eclipseecf.blogspot.com/2005/12/greetings.html' title='Greetings'/><author><name>Scott Lewis</name><uri>http://www.blogger.com/profile/15783631237186844143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://bp3.blogger.com/_9e3GEuyYq9o/SFgITkcvOwI/AAAAAAAAAAM/91NdZbp5DSQ/S220/scott.jpg'/></author><thr:total>0</thr:total></entry></feed>
