ekkes-corner: eclipse | osgi | mdsd | erp | mobile

July 18, 2011

back from outer space – mobile movements, redVoodo and Indigo highlights

A Letter From The Outer Space – reactions

I never have thought that there was so much movement after publishing my blogpost

a letter from the outer space: why developing apps for BlackBerry ?

I got many eMails, Comments and the post was re-published at sides like BerryReview.

Never had so many hits at my blog or at my Vimeo videos before ;-)

Most feedback was positive and it will be curious to see what will happen next months and if my expectations become true.

My letter was a feedback of the anonymous letters published at BGR.com. In the meantime BGR published more anonymous letters. At BGR.com the only negative experience happened for me: I wanted to comment at the anonymous article and only wrote that I have another view on this based on my experiences as an independent developer and pointed to the URL of my blog post. …nothing appears, so I tried it a 2nd time and now I got a feedback:

wow: I was blocked from a site – this happens the very first time for me. Don’t understand why BGR isn’t interested into a fair discussion. For me this site is no serious site anymore: publishing anonymous letters, but blocking discussions ?. Not the way to gain confidence.

My letter contained positive and negative points about RIM and BlackBerry and I was impressed to get much positive feedback from RIM employees about my open words. Hopefully it will have also a positive influence inside RIM to lower bureaucracy and to ‘open’ their company ;-)

…back to work… Last week I finished a customer project where 100+ truck drivers got a (BlackBerry) application to easy dispatching orders and getting auto-magically feedback if truck stands still for some minutes or is near to the depot and ready to get next orders.

I’ll blog in an extra series about GPS, Geodata, Location Based Services, Maps, Tracks, Routes and more: not only valid for BlackBerry but for all mobile platforms if you#re developing location based applications.

An article partly covering these themes will be in the next issue (9.2011) of (german) MobileDeveloper Magazin:

The cover story of current issue (04.2011)  of (german) Mobile Technology Magazin is my article “Why BlackBerry rocks“:

Mobile And Enterprise Business Application Development

As you maybe know, mobile development for BlackBerry is not the only domain I’m developing for. My mobile applications are business applications and always need a server part.

This is where Eclipse Equinox, Eclipse Link, Riena and more comes into play.

Probably you know about redView (Riena EMF Dynamic Views) where Riena technology was combined with EMF based Metamodels of SWT, dynamically rendered at Runtime to ease development of business applications. I’m using redView where I need applications based on RCP / RAP.

In the meantime there are two new Open Source projects (EPL) developed by Florian Pirchner and me:

  • redVoodo:
    • based on Vaadin
      • OSGified Webapplications (see Kai’s demo)
      • Equinox OSGi, Jetty
      • Declarative Services (DS)
    • Business Applications structured similar to Eclipse Riena: SubApplications, ModuleGroups, Modules, Views, Navigation…
    • Push-to-Web-Clients: no polling, always up-to-date
    • Drag’n'Drop (per ex. Order to Truck)
  • enMOcs: Enterprise Mobile Communication Server based on Equinox OSGi, Jetty, EclipseLink and more to provide a robust server for:
    • TCP Socket Communications between mobile (or other) Clients and Server
    • HTTP Server
    • KML Services to provide KML dynamically on-the-fly for mobile devices
    • Push Services ro support Push Service SDK’s from different Vendors/Platforms: Android, iOS, WP7, BlackBerry
    • Admin UI using redVoodo

Both new projects will be developed ‘parallel’ to customer projects – first prototypes are running and you can expect first public sources for redVoodo next 10 days and for enMOcs one week later.

enMOcs is also using redVoodo as admin UI to have a simple to use and good looking UI to configure and monitor Push Services and more. This will also make development for BlackBerry Push Services SDK easier and provides a complete inside Eclipse running solution to test Push Services between server and mobile clients. Server is using SLF4J / LogBack as logging framework and (BlackBerry) mobile client also uses LogEvents in Logback format, so both can be tested side-by-side using Lilith as Logging Monitor.

Curious to see how a redVoodo Business Application could look like ? here are some screenshot directly from the labs:

Screenshots redVoodo:

  1. Structure of a business application (configurable using EMF model)
  2. Master-Detail (auto-magically displayed if selecting a row and edit mode is allowed, Details can be maximized)
  3. Generic Filter Formular (Fields with AND and each field itself can have some OR conditions, RegEx and easy Entry for Dates, Time and Timestamp)
  4. short Video Toolbar, Table, Master-Detail, hide/show Filter Area

How your redVoodo Business Application will be layouted is persisted as an EMF model and can easy be changed to fit your needs.

Together with the dynamic structure of an OSGi Application (Declarative Services used), CSS for styling and EMF you’ll be able to create your own redVoodo (Vaadin-) based web application with less work.

If talking about Business Applications and Eclipse, Riena won’t be far away ;-) We have re-used some of the great concepts from Riena, not only because they’re good – but also to be able to put a (Xtext) DSL on top of redView and redVoodo. Nature of Business Applications is similar – doesn’t matter if using Desktop Apps (RCP), WebApps (RAP, Vaadin) or even mobile Apps. BTW: you’ll also find Riena concepts like Riena’s handling of Look-and-Feel in my mobile BlackBerry Java solutions, but that’s another story to tell later.

To design the UI of business applications and generate code for redView or redVoodo – based Apps from one model, we’ll provide (sooner or later) a Xtext DSL at red-Open. Extending APPlause DSL there will also be templates to generate mobile Apps for BlackBerry additional to the other platforms supported by APPlause out of the box.

To support cross platform development for business apps is important where you don’t have control about platforms of users / customers: enMOcs is cross-platform and even will support different workflows for Push Services from different platforms to mobile clients, RCP is cross-platform by use of SWT and RAP or Vaadin support different Browsers. APPlause supports cross-platform development of native mobile apps. …. all together a solid base build on top of approved Open Source technology.

If you want to get always the newest info from redVoodo you should follow Flo’s blog posts and I’ll blog about enMOcs and red-Open.

Overview enMOcs, redView, redVoodo, …

Eclipse Indigo Highlights

I wrote some articles for JAXenter about my highlights of Eclipse Indigo in german and english:

  1. Overview: Projects, Release Train, Marketplace, Democamps, … (german / english)
  2. EclipseRT (RCP/RAP): Eclipse Riena, RCP, RAP, … (german / english)
  3. EclipseRT (OSGi, Server): Equinox, Jetty, EclipseLink, Gyrex, … (german / english)
  4. Tooling (DVCS): Egit/JGit and MercurialEclipse (german / english)
  5. Tooling (UI): WindowBuilder (german / english)
  6. coming soon: Modeling (X): Xtext2, Xbase, Xtend2, … (german / english)
  7. coming soon: Modeling (EMF): CDO, EMFStore, … (german / english)

There will also soon be a new release of redView covering Eclipse Indigo, Riena 3.0 and first release of  EMFStore at new home: eclipse.org.

Conferences / Events: EclipseCON Europe and more…

Meet me at next conferences / Events:

EclipseCon Europe is nearer as you may think: now it’s time to submit your Sessions here.

Couldn’t believe: 10 years of Eclipse – and I’m using Eclipse since 9 years daily.

I have submitted sessions about:

BlackBerry Conference Application for EclipseCON Europe and more

…also I’ll develop two versions of my BlackBerry Java – Conference App for BlackBerry OS 6 and OS 7 to demonstrate what’s possible with BlackBerry Java. This application will also communicate with enMOcs and support Push Services.

stay tuned…
—————————————————————————————————————————

if you like my work, you can Flattr this

(c) 2011 Creative Commons License 3.0 (BY-NC-SA) by  ekkescorner 

May 12, 2011

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

Filed under: Blackberry,Eclipse,enMOcs,Equinox,OSGI,Push Services,redview,redVoodo,Riena,xtext — ekkescorner @ 6:53 pm

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

February 3, 2011

why I’m not using a great eclipse project …

Filed under: Eclipse,OSGI,Riena — ekkescorner @ 10:20 am

…or why documentation is important ;-)

remark: the goal of this blog post is to report my experiences from my very personal POV and to help that projects can be more attractive to developers and perhaps also helping some developers how to solve problems if the TargetPlatform doesn’t work as expected

if you’re a member of an Open Source project perhaps you know this phenomen: someone is new on your newsgroup, asks questions and suddenly he/she disappears. there’s a chance that he/she isn’t a satisfied consumer of your project.

let me tell you a short story from my experiences last days:

as you probably know, I’m working on enterprise and mobile solutions, where for the enterprise site I prefer Eclipse RT projects like Equinox, Riena, … and at mobile site at the moment I’m focused on BlackBerry Java development. (not forget to mention Eclipse Modeling projects like MWE, Xpand/Xtend or Xtext helping me to solve my requirements to develop great apps in a short timeframe)

if developing mobile Business APPs, then you not only have a mobile APP – there’s always the need to communicate with a server and most times you have to support a bunch of protocols. The task I had to solve was communicating to a server from a mobile using TCP Socket. on BlackBerry devices this can be a ‘direct’ TCP Socket connection from the device to a server or a connection thru BES (BlackBerry Enterprise Server)

what do I need for Socket Connections:

  • should fit into my Equinox OSGI server
  • easy to be added to my TargetPlatform
  • using Declarative Services to be flexible
  • EPL licensed because I always provide core parts of my work under EPL

I googled to see if there’s a ready-to-go OSGI solution and found some TCP Socket servers but not OSGI – ready and in many cases not compatible with EPL.

but hey – I know that TCP Socket isn’t the only connection I need – there’s this great Eclipse Project supporting all kinds of communication: ECF (Eclipse Communication Framework)

at first I visited the ECF project homepage to see if there’s such a thing like a simple TCP Socket Server available but didn’t found one, then I asked in the NewsGroup and got an answer very soon: yes, ECF is using TCP Socket in many cases and I should take a look at the Generic Server.

because working on RT projects I need all to be available in my Target Platform. this should be easy for an eclipse RT project (I thought)

looked at the project sites to find installation docs how to do this but only found the update site.

to avoid all side effects I started with a fresh 3.6.1 EPP Modeling installation and created a new TargetPlatform based on the IDE, then I added the update site to my Target Platform definition. at first I checked that required software should be included.

unfortunately this runs into errors:

ok – nice try but then let’s try it without checking “include required software” – but this doesn’t help because after setting the Target Platform the ECF plug-ins are not resolved.

because there’s no documentation and I’m not getting answers to this from the newsgroup I started to try out some combinations.

btw: did all work using the normal update site and also the nightly builds.

after adding Equinox Target Components and Eclipse RCP SDK to my TargetPlatform:

it looks better and only some plug-ins were not resolved:

hint: if you read some of my blog posts about Eclipse Target Platforms you probably know that the “Target Platform State” view is your helper in these cases.

I found 3 problems:

  1. required bundle org.apache.log4j as dependency from org.apache.zookeeper
  2. missing javax.xml
  3. missing org.eclipse.ecf.core.util in version 3.2.0

1. log4j: I don’t want to discuss now if required bundle or import package is better, but there are some good reasons for dependencies to logging frameworks to use import package because you never know which bundle will provide the log4j packages. in my case I’m using SLF4J where’s a bundle available to do this. ok  - I opened a bugzilla (335784) to change this and there’s some work on this. for now I solved this and imported the bundle org.apache.zookeeper into the workspace, opened the MANIFEST.MF and changed it. also I added my SLF4J and Logback bundles.

2. the missing javax.xml: thats also easy to solve. perhaps you know that you can add bundles on-the-fly to your Target Platform without knowing who’s providing it. You can ‘Add Artifacts’ (on the Mac CMD-ALT-SHIFT-A to get this view:)

simply enter javax.xml and by magic it’s added to your Target Platform :)

3. missing constraint: org.eclipse.ecf.osgi.services.distribution tries to import the package org.eclipse.ecf.core.util in version 3.2.0. This package was provided by org.eclipse.ecf bundle, but this bundle exports the package without a version number so it couldn’t be resolved. again as a good citizen I opened a bugzilla (335786). to help me in the meantime I imported org.eclipse.ecf.osgi.services.distribution into the workspace and removed the version from import-package-dependency. this was fixed very soon from ECF – so if using the N-Builds it should be there soon.

great: all ECF PlugIns resolved – so I created my OSGI launch config and really I got the Generic Server running :)

now the real work can start: to see how to get a TCP Socket Server running from ECF. …worked thru the code of GenericServer and found that there’s a ServerManager created in Activator.  worked thru this code to find out where I can add my classes to get the Socket Connection and work with ServerSocket and Socket. found out that I can define properties (like port number) in xml or extension registry. decided to use the xml – but trying to connect from outside doesn’t work. found out that there was a bug in an if-else construct and the xml was never read. again opened a bugzilla, added the solution and got soon answers inside the bugzilla.

but I wasn’t satisfied to hear ‘this ServerManager is outdated, only for backword compatibility, we know there’s no documentation but we have no resources…

uuups: no time to declare it as deprecated ?

THIS was the point I decided to stop evaluating ECF and started to write an (OSGI aware) TCP Socket Server by myself. will blog about this and provide sources.

I spent more time trying to find out what happens inside ECF (without finding the solution) then developing it by myself.

ECF is a great project and I can imagine that you can do all what you want, but from my POV it’s more important to have documentation to guide new users then always adding new features or changing the way how it works.

comparing my experiences with another RT Project like Riena – there are lightyears between Riena and ECF.

Riena provides

  • well documentation
  • installation-hints-to-get-target-platform running
  • many different examples to be run as eclipse project or client-server
  • wizards to create your own project based on Riena technologie
  • uncount unit tests

…and Riena is also a very complex project …but it’s really fun

remark: the only goal of this blog post is to give the ECF team some hints to become better. it also may be that I don’t found the right informations from wiki. and maybe if you’re looking for another kind of communication it will run out of the box from ECF.

the good things: work on my reported bugzilla happens soon after reporting – even on the weekend – thx to the ECF team
—————————————————————————————————————————

if you like my work, you can Flattr this

Next Page »

Theme: Customized Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.