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:
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.
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: redVaadin
- redVaadin will be the Web – counterpart of redView (responsible for RCP/Desktop)
- redVaadin will provide tools, examples and demos HowTo use Vaadin and OSGi
- redVaadin will provide Push Services, so you can push informations from OSGi Server to Vaadin Web Clients
- redVaadin will provide sample application layout for Business Applications similar to Riena Toolbox (assembling a Business App)
- redVaadin 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 redVaadin – 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:
redVaadins Push demo is based on Kai’s Vaadin – OSGI Demo.
using redVaadin 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:
- Pushing Informations from ContentServer (enMOcs – Equinox – OSGI) through Jetty – HTTP to BlackBerry Push Server (BIS)
- BIS pushes Information to BlackBerry Device(s)
- Push-enabled Java APP receives Message, notifies User or processes in background + sends Confirmation to BIS
- BIS notifies ContentServer if Message could be delivered in-time
- ContentServer notifies Admin using redVaadin’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 redVaadin 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 may 2011.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)