Samstag, 6. August 2016

Hi5: Eclipse 4 API for web developers

About

HTML5/CSS/JavaScript seem to become the primarily stack of technologies to develop UI/frontend applications. The Hi5 project aims at providing an Eclipse 4 API port for web developers.

The following is the architectural overview of the idea behind the project:

Picture: overall architecture of the Hi5 idea

Server side

On the server side (backend) the infrastructure of the Eclipse RCP platform is handling requests that the web client doing. This includes collecting all available E4 fragments and merging them into the application model. Next, the merged application model is transformed into a HTML DOM representation which then sent to the client via HTTP.

With the Eclipse Communication Framework (ECF) there is also great support for a service driven development approach as OSGi services can serve as web services, for example, using ECF's JAX-RS integration.

Client side

On the client side you can use your favorite framework/library to provide a smooth and reactive UI. By default, jQuery, jQuery UI and jQuery mobile are used.

Deployment modes

The application can be deployed in several modes:
  • server/client mode: Eclipse RCP backend runs on a server and the client runs in a web browser
  • local mode: Eclipse RCP backend runs locally and the client runs in a JavaFX WebView instance

Demo

The following screeshot shows a demo application running in the "local mode", i.e. the client is run using the JavaFX WebView as renderer:


Summary

With HTML5/CSS/JavaScript gaining more and more attraction to developers, this approach makes absolutely sense. It allows for going with the trends of the web developer communities (with regards to UI toolkits) but relying on the Eclipse 4 and OSGi platform as a robust and modular backend.

Links

[1] Hi5 GitHub repository: https://github.com/erdalkaraca/hi5

Kommentare:

  1. Wait.. how is this different/superior than http://www.eclipse.org/rap/ ?

    AntwortenLöschen
    Antworten
    1. I do not think this solution is superior to RAP. With RAP you program against SWT APIs and it renders a mirrored state of the UI in the web browser. Here, we have a strict separation between business logic (backend, web services, OSGi (remote) services) and UI representation (web browser). There are also many cool UI libraries in the HTML5/CSS/JavaScript world that we do not have in SWT.

      Löschen
  2. Very promising results! Thanks for sharing! Can't wait to try :)
    We can cover almost everything in RCP UI area if we add EMF Forms into the mix :)
    And with the addition of Xtext Web -- almost everything in IDE UI area.
    The only missing thing is GEF4/HTML5 diagram editor :)

    AntwortenLöschen
    Antworten
    1. Thanks for the feedback! I am still at the beginning. Will post another article once the project is in a usable state.

      Löschen