Push Services –> mobile and enterprise (Vaadin + OSGI)

In Enterprise Applications there are many use-cases where you have to provide informations instantly to users.

If the user is on a mobile device, you can use Push Services provided by Apple, Google, Microsoft or RIM. I’ll blog about Push Services for mobile users in another blog about enMOcs (enterprise – mobile – communication server using Eclipse RT technologies).

enMOcs is a Server, so there’s an Admin managing the server and I want to provide different kinds of UI:

  • RCP/RAP (RienaredView)
  • mobile APP’s
  • and also an Admin –  Web UI.

This blog is about the latter: a Web UI and because the enMOcs server is built on top of OSGi, the Web UI should also  be a good member.

Inspired by Kai Tödter’s Blog “Dynamic modular Web Applications with Vaadin and OSGi” I did some tests with Vaadin: a really great Web UI Framework, where you’re developing all at server side using Java and Vaadin only uses GWT to render at Client side. This is fantastic for me, because I like developing  with Java instead of HTML and Javascript.

The next good thing about Vaadin: all the uncount Add-ons enabling you to build great looking Applications – and most of them are Open Source licensed.

Vaadin also provides an Eclipse PlugIn, so I can use my beloved IDE.

I’m not a classical Web developer, so I don’t like to develop war’s, web.xml, … – I prefer to use OSGi HTTP-Services instead. Fortunately I’m not alone and Chris Brind, Neil Bartlett and Peter Kriens did some work on this and Kai made an easy-to-use Demo Application.

At the same time as I’m developing the enMOcs server one of my customers requested a Web PortalApplication to be used side-by-side with his ERP solution (OSGi – Equinox – based at server-side and RCP-Riena-redView at client side). As next some discussions with Florian – my partner at redView – followed and Flo also did some tests and and some time later a new Open Source Project was born: redVoodo (btw: project was first named redVaadin, but to make clear that this is an independent project we renamed into redVoodo)

  • redVoodo will be the Web – counterpart of redView (responsible for RCP/Desktop)
  • redVoodo will provide tools, examples and demos HowTo use Vaadin and OSGi
  • redVoodo will provide Push Services, so you can push informations from OSGi Server to Vaadin Web Clients
  • redVoodo will provide sample application layout for Business Applications similar to Riena Toolbox (assembling a Business App)
  • redVoodo will provide a DSL (Xtext) to describe the model of your Business App Layout to generate code for redVaadin and redView

At redVaadin you’ll find allready some documentation I did:

and Florian did some work on Push Services: there’s already a Vaadin Add-on ICEpush providing this feature to Vaadin Web Applications and since yesterday a first draft of Florian’s redVoodo – PushServices can be downloaded and tested. (BTW: since some time I told Florian about the power of OSGi Declarative Services – Equinox DS – and now he’s using them and from day to day he likes it more 😉

if you  want to test it out and perhaps provide some feedback:

redVoodo Push demo is based on Kai’s Vaadin – OSGI Demo.

using redVoodo OSGI Push Services I’m now able to resolve this use-case: a Business Application sends Informations using Push Services to mobile Devices (in this example BlackBerry). If it’s an important Message and the Message could NOT be delivered in-time (== before a given Timestamp), then the Admin has to be notified: in this example pushing to a running Web Client:

  1. Pushing Informations from ContentServer (enMOcs – Equinox – OSGI) through Jetty – HTTP to BlackBerry Push Server (BIS)
  2. BIS pushes Information to BlackBerry Device(s)
  3. Push-enabled Java APP receives Message, notifies User or processes in background + sends Confirmation to BIS
  4. BIS notifies ContentServer if Message could be delivered in-time
  5. ContentServer notifies Admin using redVoodo’s PushServices if important Pushes couldn’t be delivered in-time

enMOcs can also push to running Riena-redView RCP – Apps or itself using mobile Push Services and push to Admin’s mobile Device.

The use-case above is only one of many scenarios – more will be described in detail later.

BTW: enMOcs will support Push Services x-platform (Apple, Google, Microsoft, RIM).

read more about redVoodo Push Services using ICEpush at Florian’s Blog here, download the examples, read the HowTo’s and play around with it.  we’re waiting for your feedback to make it better. Push demo Projects include Sources, so you can take a look behind the scenes. Source repository will be public end of june 2011.

—————————————————————————————————————————

if you like my work, you can Flattr this

4 responses

  1. Pingback: ICEpush runs in Vaadin+OSGI :) - Forum - vaadin.com

  2. You mentioned RAP once and then went on with Vaadin.

    Since RAP is also a web UI, and also has the Vaadin benefits that you mentioned (no web.xml, Java than HTML, OSGi) I would be interested why you prefer Vaadin than RAP.

    Especially in one case: OSGi, where RAP has better integration with OSGi (and Eclipse platform) than Vaadin. (or so it seems)

    • RAP is for me the same level then RCP, but RCP-on-web. If a team already uses RCP and wants to develop for the web, then the best way is to use RAP.
      But if there’s no existing RCP code, then – from my POV – I would prefer to use a web framework like Vaadin – it’s much easier for a non-RCP-developer to use Vaadin then to start with RCP.
      I know RAP and I like RAP and the team did a good job to bring RCP into the Browser.
      I won’t say use RAP or use Vaadin – the decision is up to you.

Leave a comment