Wednesday, December 09, 2009

Cloud + OSGi + GWT + ECF Rest + Twitter API = Modular web services

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.

Click here to use/try it

You will need a Twitter username and password to get that user's status.

Here's what was used

Web Server: EclipseRT, p2, Equinox servletbridge
Ajax Web UI: Google Web Toolkit (GWT)
REST API: ECF REST/remote services API, Twitter REST API/service
Cloud provider: Amazon Cloud/Web Services (AWS)

The use of OSGi modularity makes this not only possible, but this server/service consists only of the bundles necessary to actually provide this service...and each of those used are small.

Tuesday, December 01, 2009

why we cooperate

It's a little hard for me to believe these days, but cooperation seems to be built in

Perhaps it's time to behave more like children.

Thursday, November 19, 2009

ECF provides some additional REST

ECF was very fortunate to have 4 Google Summer of Code projects 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.

Coming out of the GSOC project, we've just finished a major refactoring of the REST API, to make it simpler, smaller, as well as better integrated with ECF remote services.

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 futures). With the integration with ECF remote services, the choice of synchronous/asynchronous invocation comes for free for all REST-based remote services. See here to get the REST projects and use the API.

We are working on example code, and invite contributions from community members to this 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 ecf-dev mailing list for feedback/discussion/coordination.

The current test code uses the popular Twitter REST 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).

Monday, October 19, 2009

Load balancing remote services

Hi Folks,

The ECF wiki now has example code for doing dynamic load balancing of remote services.

This implementation uses a JMS Queue (via ActiveMQ implementation of JMS) to do the dynamic load balancing of ECF remote service requests/method invocations.

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.

Monday, October 12, 2009

Saturday, October 10, 2009

ECF 3.1

ECF 3.1 is being released on Monday next (10/12/2009), and there are some exciting additions:

  1. REST API - An extension of the ECF remote services API to allow interoperation between OSGi remote services and REST-based services
  2. Distributed EventAdmin - a Distributed implementation of the OSGi EventAdmin service, that uses JMS/ActiveMQ for transport (and/or other providers)
  3. Lots of small improvements on ECF remote services, as well as examples and additional documentation
  4. File-based Discovery - a contribution from Siemens for doing remote service discovery using a static endpoint-URI exposed via an xml format
Here are the release review slides.