|[ecf-dev] Some Directions for ECF|
Hi Folks,It's been a while since there has been any public discussion about future directions for ECF, so I wanted to begin such a discussion. This note is not intended to be 'the story' for future work on ECF...by the project lead...but rather I would like to start a discussion of some of the things that I think are useful for ECF consumers...as well as my own uses of ECF (I'm a consumer too!). Rather, this is the start of a discussion...I would certainly like to hear from others about what they want us (committers and contributors) to take on. Please consider writing back...in response to this posting...about your own thoughts.
So with that, here' goes: Some Possible Future Directions for ECF1) OSGi remote services. ECF already has a big technical investment in OSGi remote services...i.e. we have an RS implementation, but beyond that, we also have an implementation of the Remote Service Admin (RSA) spec as well...see [a]. Soon I expect that we will be able to claim full conformance to the OSGI Test Compatibility Kit (we have to get it from OSGI via Eclipse Foundation), and this will be good for the visibility of our implementation. Also, we are the only impl that has a provider architecture, making it much easier for OSGI remote services users to deeply customize and configure both remote services discovery and distribution. For example, it's currently possible for ECF consumers to 'mix and match' discovery mechanisms/protocols (file-based discovery, zookeeper, zeroconf, dnssd, slp, custom) with distribution providers (e.g. rosgi, ecf generic, jms, jgroups, restlet, custom). This is a huge advantage for OSGi remote services consumers, because it allows them to substitute the provider...and/or create their own...to meet their specific needs WRT (e.g.) security constraints, performance, interoperability, etc.
But although this makes a great start, the work is not at all done here. More providers are needed...and some of the existing ones need to be updated (e.g. jgroups)...there's much more need for tutorials, examples, and documentation about how to create new providers and fit them into the OSGi remote services. We also badly need to get the work we've already done on remote service test frameworks into full operation and availability to consumers (e.g. adding the test framework to our own automated tests). Also...I would like to see some efforts around tooling for remote services...in order to make it easier for folks to define, use, and maintain remote services. For example, at one point I started work on defining/using annotations to define remote services (e.g. @RemoteService).
Also, ECF has support for asynchronous/nonblocking remote services [b] already built in...along with a distributed eventadmin implementation.
To me, there's a very long list of things that can/could be done on OSGi remote services...and this is a great time to do them...as OSGi remote services/RSA is (I think) really beginning to see some traction...on the 'server' side of things...as IMHO it really is a great approach to doing SOA.
2) ECF on/with/for OSGi servers. OSGi is having more and more success on the web-server these days (just try to find a commercial app server that *doesn't* use it). ECF/OSGi remote services is a great fit here, IMHO. There is a lot to do, however, to make ECF more easily consumable/usable on OSGi servers, however...e.g. install/config/update...along with testing and tooling in server environment (as per 1)....and of course, tutorials, examples, documentation.
3) Mobile Clients. Clearly mobile clients need to communicate...with services, with other clients, etc. ECF has relevant components here...with OSGi or without OSGi. For example, I have created Android apps that use ECF generic code to talk with OSGi-enabled tomcat web server (running servletbridge, equinox, and ECF remote services). There is a lot of opportunity, I believe, to use ECF and OSGi remote services to create a very simple environment for creating both the service and the native mobile client....e.g. by having the service 'in the cloud'...using OSGi framework + ECF remote services...*and* having an API/library on the (say Android) client to make it easy for the Android app developer to communicate with/use/test those cloud services.
4) Collaboration for Tooling (and other apps). ECF has a lot of great work invested in collaboration support for developers...e.g. integration with IM, real-time shared editing/cola, irc client, tweethub, salvo, sharecode, google wave integration, bot framework, etc. There is a lot that could take this forward...e.g. work to integrate with Google Drive (which uses operational transformation...aka google wave), new Eclipse UIs (taking advantage of Eclipse 4) for dev communications/collaboration, etc. Also...we have access to VNC client code (written for another Eclipse project, since abandoned)...and there is a lot of opportunity to use Google APIs for collaboration, info sharing, in other ways within Eclipse and/or other RCP apps.
5) More/better support for SIP/VOIP/Skype, etc. We've got a lot of great work already done here, but it needs to be finished, reviewed, examples/apps written and deployed.
6) Documentation, tutorials, examples...ECF book...'nuff said. [c] 7) Bug fixes/backlog...'nuff said. [d]. Enhancements [e]Those are my thoughts about areas where I would like to see ECF progress over the next year. If there are others that you would like to convey, please write back...and/or open a bug or enhancement request so it doesn't get lost. If you are able, please consider contributing some work to ECF to make it happen...or even to mentor a GSOC student to that end as well. All contributions are welcome (bugs, code, docs, examples, use cases, etc).
Thanks, Scott [a] http://wiki.eclipse.org/ECF#OSGi_Remote_Services [b] http://wiki.eclipse.org/ECF/Asynchronous_Remote_Services [c] https://bugs.eclipse.org/bugs/show_bug.cgi?id=329124[d] https://bugs.eclipse.org/bugs/buglist.cgi?list_id=5133404&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial&classification=RT&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=ECF [e] https://bugs.eclipse.org/bugs/buglist.cgi?list_id=5133450&bug_severity=enhancement&classification=RT&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=ECF
Back to the top