Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse 4 » Remote UI(Remote UI)
Remote UI [message #1051375] Sun, 28 April 2013 17:44 Go to next message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
Hi,

is there already a project which has the goal to display the modelled UI on a remote machine? For example in SWT or JavaFX?

Thanks,
Michael
Re: Remote UI [message #1051979 is a reply to message #1051375] Mon, 29 April 2013 13:12 Go to previous messageGo to next message
Paul Bilnoski is currently offline Paul BilnoskiFriend
Messages: 24
Registered: August 2010
Junior Member
The Eclipse RAP project (Remote Application Platform, http://eclipse.org/rap/) may do something like what you are after. It models the workbench as a Java EE app (WAR) and clients connect through the browser, each getting their own display and workbench window. It can also be used without the workbench for SWT/JFace apps, and supports single-sourcing between native and remote apps in many cases.
However, it has not been fully migrated to work with the E4, workbench model so the current version is backed by the 3.x workbench model, but there is some progress towards E4.
--Paul
Re: Remote UI [message #1052008 is a reply to message #1051979] Mon, 29 April 2013 14:01 Go to previous messageGo to next message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
Thanks for the hint.
I know and used RAP. What I thought, because the UI in e4 is modeled with EMF and there are already renderers (SWT, JavaFX) it would be easy to serialize the EMF-Model, send it over the network and render the Model on another PC (Client).
But now I see, I think eclipse itself is not able to handle multiuser (different sessions).

I'm looking forward to see RAP on e4. And if they are using their json-protocol or if they are sending a serialized emf through the network.

Michael
Re: Remote UI [message #1052017 is a reply to message #1052008] Mon, 29 April 2013 14:12 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 5487
Registered: July 2009
Senior Member
We showed a proof of concept for sending the EMF-Model over the wire at
EclipseCon 2012 where we used CDO.

You can easily exchange the model loading we provide and load the model
from anywhere on the world. What currently is not possible without some
tickery is to run multiple workbench instance inside on VM.

Tom

On 29.04.13 16:01, Michael Wirth wrote:
> Thanks for the hint.
> I know and used RAP. What I thought, because the UI in e4 is modeled
> with EMF and there are already renderers (SWT, JavaFX) it would be easy
> to serialize the EMF-Model, send it over the network and render the
> Model on another PC (Client).
> But now I see, I think eclipse itself is not able to handle multiuser
> (different sessions).
>
> I'm looking forward to see RAP on e4. And if they are using their
> json-protocol or if they are sending a serialized emf through the network.
>
> Michael
Re: Remote UI [message #1052064 is a reply to message #1052017] Mon, 29 April 2013 15:10 Go to previous messageGo to next message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
Nice to hear from you.
This is the problem I expected. Is this planned by someone or is this exactly what RAP is planing to do when they build RAP based on e4?
So if they are planing to exchange a emf model and they are implementing a http renderer which works on this model it should be easy to use an existing SWT or JavaFX renderer.

What is the part of vaaeclipse? Can the serverside part of vaaclipse be used to communicate with a JavaFX client?

Michael
Re: Remote UI [message #1052071 is a reply to message #1052064] Mon, 29 April 2013 15:19 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 5487
Registered: July 2009
Senior Member
On 29.04.13 17:10, Michael Wirth wrote:
> Nice to hear from you.
> This is the problem I expected. Is this planned by someone or is this
> exactly what RAP is planing to do when they build RAP based on e4?
> So if they are planing to exchange a emf model and they are implementing
> a http renderer which works on this model it should be easy to use an
> existing SWT or JavaFX renderer.
>

I doubt RAP will transfer the EMF-Model but they are remoting their
widgets and run all code on the server.

> What is the part of vaaeclipse? Can the serverside part of vaaclipse be
> used to communicate with a JavaFX client?

No. To better help you with your question and if e(fx)clipse can maybe
one day help you it might help to understand what you are really after?

In theory you can write e4-JavaFX-Applications where all code is loaded
from a webserver:
* the EMF-Model
* the UI (as FXML)
* the Logic as JS

Tom
Re: Remote UI [message #1052256 is a reply to message #1052071] Mon, 29 April 2013 21:35 Go to previous messageGo to next message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
We are developing an application which handles many pictures and videos. Actually the client is implemented in flex/flash and we want to remove flash in the future (future means from many month up to 3 years). I'm not sure if html5 (or rap/vaadin/gwt) is the right technology.
Our UI can be very complex and we are doing many graphical operations on the client. The installation must be as easy as possible (or better no installation). So perhaps a good idea is to have a "server centric" architecture with a pure renderer with the possibility to do complex things on the client and also to run code on the client. I think we have 50-100 users each server.
Besause I'm familiar with eclipse rcp (over 6 years) and I'm eclipse enthusiastic I want to use the eclipse ecosystem.

This was the idea to use a remote JavaFX client and a eclipse/osgi based server. I also read about CaptainCasa, but its not eclipse and I'm not familiar with it.

Quote:

In theory you can write e4-JavaFX-Applications where all code is loaded
from a webserver:
* the EMF-Model
* the UI (as FXML)
* the Logic as JS

Tom


Are there public examples available?

What is the different between the UI-EMF-Model and the UI as FXML? Is it that way that the workbench is modelled with EMF and, for example, the content of a view is FXML?

JS is JavaScript? I think also some other code can be used, also I think it should be possible to run ByteCode on the client which is delivered from the server?

Michael
Re: Remote UI [message #1052559 is a reply to message #1052256] Tue, 30 April 2013 08:32 Go to previous messageGo to next message
Erdal Karaca is currently offline Erdal KaracaFriend
Messages: 756
Registered: July 2009
Senior Member
Some years ago I had a similar idea, i.e. to have a server that has deployed "modules" which a client could dynamically load at run time. I was thinking of using XWT as UI (declarative UI for SWT) and JavaScript code... Dropped the idea as it is really not trivial (security/class loading issues): you may end up in re-implementing a solution like Java WebStart...

Michael Wirth wrote on Mon, 29 April 2013 23:35
We are developing an application which handles many pictures and videos. Actually the client is implemented in flex/flash and we want to remove flash in the future (future means from many month up to 3 years). I'm not sure if html5 (or rap/vaadin/gwt) is the right technology.
Our UI can be very complex and we are doing many graphical operations on the client. The installation must be as easy as possible (or better no installation). So perhaps a good idea is to have a "server centric" architecture with a pure renderer with the possibility to do complex things on the client and also to run code on the client. I think we have 50-100 users each server.
Besause I'm familiar with eclipse rcp (over 6 years) and I'm eclipse enthusiastic I want to use the eclipse ecosystem.

This was the idea to use a remote JavaFX client and a eclipse/osgi based server. I also read about CaptainCasa, but its not eclipse and I'm not familiar with it.

Quote:

In theory you can write e4-JavaFX-Applications where all code is loaded
from a webserver:
* the EMF-Model
* the UI (as FXML)
* the Logic as JS

Tom


Are there public examples available?

What is the different between the UI-EMF-Model and the UI as FXML? Is it that way that the workbench is modelled with EMF and, for example, the content of a view is FXML?

JS is JavaScript? I think also some other code can be used, also I think it should be possible to run ByteCode on the client which is delivered from the server?

Michael

Re: Remote UI [message #1052569 is a reply to message #1052256] Tue, 30 April 2013 08:47 Go to previous messageGo to next message
Erdal Karaca is currently offline Erdal KaracaFriend
Messages: 756
Registered: July 2009
Senior Member
Lars Vogel has a nice picture/metaphor of what the modelled workbench is:
http://www.vogella.com/articles/EclipseRCP/article.html#applicationmodel_overview


Michael Wirth wrote on Mon, 29 April 2013 23:35

What is the different between the UI-EMF-Model and the UI as FXML? Is it that way that the workbench is modelled with EMF and, for example, the content of a view is FXML?

Re: Remote UI [message #1052580 is a reply to message #1052559] Tue, 30 April 2013 09:04 Go to previous messageGo to next message
Sopot Cela is currently offline Sopot CelaFriend
Messages: 597
Registered: December 2010
Senior Member

Vaaclipse is an OSGi runtime on the server, which, for each user/workbench holds the EMF model, does the rendering in Vaadin widgets and serializes the javascript widgets (they get converted java-to-javascript using GWT) to the browser which renders them using its javascript engine. I'm not sure I understand the usecase of having a native JavaFX client communicate with the "server-side" part of vaaclipse. If nothing else, the e4-JavaFX client will have its own OSGi runtime. If the goal is that the vaaclipse and JavaFX client have the same data source then that's something else.

Both of these are front-end solutions, which means they are parallel and in front of a data source which can be anything, from a database to files, a web service etc. I don't see vaaclipse server-side(or RAP for that matter) as a producer and the JavaFX client as the consumer.

If you want to have them communicate in terms of visual sync then remote OSGi comes to mind. As long as you have access to the EventAdmin of an OSGi runtime then you can sync visually because all visual manipulations go through the event broker.
Re: Remote UI [message #1052613 is a reply to message #1052256] Tue, 30 April 2013 09:50 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 5487
Registered: July 2009
Senior Member
On 29.04.13 23:36, Michael Wirth wrote:
> We are developing an application which handles many pictures and videos.
> Actually the client is implemented in flex/flash and we want to remove
> flash in the future (future means from many month up to 3 years). I'm
> not sure if html5 (or rap/vaadin/gwt) is the right technology.
> Our UI can be very complex and we are doing many graphical operations on
> the client. The installation must be as easy as possible (or better no
> installation). So perhaps a good idea is to have a "server centric"
> architecture with a pure renderer with the possibility to do complex
> things on the client and also to run code on the client. I think we have
> 50-100 users each server.

Do those users know from each other and share data?

The problem with RAP/Vaaclipse is that you have no choice which part
should be executed at the client because all and everything is run on
the server. That's always been my main point against it because it also
implies all time connectivity so if you don't have a reliable network
situation those 2 fail.

Their pro of course is that they are 0 deploy because all the user needs
is is a browser. Even if you manage to off load stuff to the client you
are restricted by the browser sandbox. You simply don't have a fullblow JVM.

I'm more a fan of a rest base service architecture where I can decide
when to run which code where ;-)

There are many solutions to implement remote services in an opaque
fashion (ECF, SpringHttpInvoker,...)

> Besause I'm familiar with eclipse rcp (over 6 years) and I'm eclipse
> enthusiastic I want to use the eclipse ecosystem.
>
> This was the idea to use a remote JavaFX client and a eclipse/osgi based
> server. I also read about CaptainCasa, but its not eclipse and I'm not
> familiar with it.
>

I thought CaptainCasa is more of a framework to make form based apps but
I could be completely wrong.

> Quote:
>> In theory you can write e4-JavaFX-Applications where all code is
>> loaded from a webserver:
>> * the EMF-Model
>> * the UI (as FXML)
>> * the Logic as JS
>>
>> Tom
>
>
> Are there public examples available?
>

No. There recently was an interesting dicussion on e(fx)clipse where I
outlined how one could directly use FXML inside MParts contributionURI.

Only very few people know that you do not necessarily point the system
to a Java-Class. My idea was that you point it directly to an FXML-File
which creates the controller instance which one returns to the framework.

> What is the different between the UI-EMF-Model and the UI as FXML? Is it
> that way that the workbench is modelled with EMF and, for example, the
> content of a view is FXML?

Yep. Instead of writing the MPart implementation in Java you define them
in FXML and attach them to a controller (which could be written in any
language running on the JVM).

>
> JS is JavaScript?

yes. In the early days of e4 we had the possibility to provide a JS-File
as the contributionURI one would have to revive this effort.

I think also some other code can be used, also I think
> it should be possible to run ByteCode on the client which is delivered
> from the server?
>

Right you can write your own classloader which fetches classes from the
server. It always depends on how much code you want to run. If you
simply call out to local/remote services from the UI it might be easier
to use JavaScript.

To run something like e4 you naturally need a JVM on the client but
e(fx)clipse provides you support to package your application + JVM as an
msi/setup.exe, dmg and rpm/deb package. So you can even distribute your
application e.g. through the Mac App Store.


Tom
Re: Remote UI [message #1052614 is a reply to message #1052559] Tue, 30 April 2013 09:52 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 5487
Registered: July 2009
Senior Member
On 30.04.13 10:32, Erdal Karaca wrote:
> Some years ago I had a similar idea, i.e. to have a server that has
> deployed "modules" which a client could dynamically load at run time. I
> was thinking of using XWT as UI (declarative UI for SWT) and JavaScript
> code... Dropped the idea as it is really not trivial (security/class
> loading issues): you may end up in re-implementing a solution like Java
> WebStart...
>

I more see this as a similar thing to a "Browser as Application
Platform" than webstart.

Tom
Re: Remote UI [message #1052779 is a reply to message #1052559] Tue, 30 April 2013 14:14 Go to previous messageGo to next message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
Erdal Karaca wrote on Tue, 30 April 2013 04:32
Some years ago I had a similar idea, i.e. to have a server that has deployed "modules" which a client could dynamically load at run time. I was thinking of using XWT as UI (declarative UI for SWT) and JavaScript code... Dropped the idea as it is really not trivial (security/class loading issues): you may end up in re-implementing a solution like Java WebStart...


What I want to have is only a renderer, something like a browser. But with the possibility to do also complex things which are actually not possible in the browser. Like editing pictures/videos, a (very) simple ecad-system, 3D, ...
The Business-Logic and the Business-Object should run on the server. But it should also be possible to run specific code on the client.

Before e4 was released I managed an client-server application where the UI was modeled on the server using emf. The emf-model is send via xml to the clients and the clients build the UI based on that xml using Swing. The synchronization between client and server is done via an emf diiff.

Now I want to build a more complex application using e4 because e4 does something similar. That was the natural idea.
Re: Remote UI [message #1052785 is a reply to message #1052580] Tue, 30 April 2013 14:22 Go to previous messageGo to next message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
Sopot Cela wrote on Tue, 30 April 2013 05:04
Vaaclipse is an OSGi runtime on the server, which, for each user/workbench holds the EMF model, does the rendering in Vaadin widgets and serializes the javascript widgets (they get converted java-to-javascript using GWT) to the browser which renders them using its javascript engine. I'm not sure I understand the usecase of having a native JavaFX client communicate with the "server-side" part of vaaclipse. If nothing else, the e4-JavaFX client will have its own OSGi runtime. If the goal is that the vaaclipse and JavaFX client have the same data source then that's something else.


The idea was, if vaaclipse sends serialized emf-objects over the network then a JavaFX renderer can be used instead of a http renderer. But now I understand the problem between the emf workbench model and the UI content of the, for example, views.

And the idea of using vaaclipse instead pure eclipse on server siide was because they solved the multiuser/session problem.

Re: Remote UI [message #1052797 is a reply to message #1052613] Tue, 30 April 2013 14:44 Go to previous message
Michael Wirth is currently offline Michael WirthFriend
Messages: 7
Registered: April 2013
Junior Member
Thomas Schindl wrote on Tue, 30 April 2013 05:50
On 29.04.13 23:36, Michael Wirth wrote:]
Do those users know from each other and share data?

The users share data. For example one user change a picture or adds metadata the other user can see it. But if you mean if they know each other like a chat application than no.
But we as softwareprovider we know the users. They need a login.

Quote:

The problem with RAP/Vaaclipse is that you have no choice which part
should be executed at the client because all and everything is run on
the server. That's always been my main point against it because it also
implies all time connectivity so if you don't have a reliable network
situation those 2 fail.


Is this also the case with vaaclipse. As far a I know vaadinis using gwt and gwt can work offline. But expect some small test application I never used it.

Quote:

Their pro of course is that they are 0 deploy because allhe user needs
is is a browser. Even if you manage to off load stuff to the client you
are restricted by the browser sandbox. You simply don't have a fullblow JVM.

Thats a very big advantage, I hear it from our customers. They like it to access the system form everywhere without an installation. Thats a big point against the idea of having a JavaFX (or SWT) renderer

Quote:

I'm more a fan of a rest base service architecture where I can decide
when to run which code where Wink

There are many solutions to implement remote services in an opaque
fashion (ECF, SpringHttpInvoker,...)

From technical point this is also my option.
Quote:

No. There recently was an interesting dicussion on e(fx)clipse where I
outlined how one could directly use FXML inside MParts contributionURI.

Only very few people know that you do not necessarily point the system
to a Java-Class. My idea was that you point it directly to an FXML-File
which creates the controller instance which one returns to the framework.

Yep. Instead of writing the MPart implementation in Java you define them
in FXML and attach them to a controller (which could be written in any
language running on the JVM).


Ok, I will write a simple application to test it.

Quote:

Right you can write your own classloader which fetches classes from the
server. It always depends on how much code you want to run. If you
simply call out to local/remote services from the UI it might be easier
to use JavaScript.

To run something like e4 you naturally need a JVM on the client but
e(fx)clipse provides you support to package your application + JVM as an
msi/setup.exe, dmg and rpm/deb package. So you can even distribute your
application e.g. through the Mac App Store.

Thats new for me, thanks.

Michael
Previous Topic:Dynamically added MenuItem isn't shown
Next Topic:Welcome or intro in eclipse 4
Goto Forum:
  


Current Time: Thu Dec 18 13:47:41 GMT 2014

Powered by FUDForum. Page generated in 0.06535 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software