[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipse-incubator-e4-dev] E4 towards generic connection management (was: e4 beyond the ongoing UI conversations...)

Hi Kevin, Jeff, and all,

Some thoughts about Kevin's very interesting posting.

Although network distribution at the file system layer (i.e. EFS or VFS or NFS, etc) is a good approach, I would argue that it's not the only way...and sometimes not the right way...to do distribution. For some components, it makes more sense to distribute and/or or replicate the component-specific model (or pieces of model), and do model synchronization in an application specific way, rather than distributing without application knowledge (i.e. at the level of resources...files and folders, only) and synchronizing in a generic way (i.e. via transactions). With component-level knowledge, components can control things like replication strategies, model synchronization, network failure handling, and performance...and I would assert that sometimes they need to control these things (depending upon the app's requirements). As a simple example, ECF's real-time shared editing does these things...i.e. it replicates the IDocument, and then applies a synchronization algorithm (cola) to deal with asynchronous state changes (aka typing :).

Happily, things like the OSGi service layer, along with remote services, allow for the creation of a variety of local and/or remote abstractions...in addition to networked file systems. I think that having several ways of doing network distribution (virtual file systems, but also remote services, component-specific communication) are all going to be needed (and desired) for E4. So I might modify Kevin's thought just slightly...in the following way:

>So take the Eclipse 1.0 thinking and add "network" to "file system". Maybe *this* is what the E4 platform needs to be.

In any case, returning to the original set of thoughts for this thread, I still believe/agree that having generic connection management makes sense.

Scott

Jeff McAffer wrote:
Yup. its a lot of work. Good news however is that John has done a lot of separation with EFS. there will still be a lot of assumptions and expectations to work though. Fundamentaly you have to give people some structure to work with. When you start mixing in more and more different systems that common API/model becomes harder and harder (or it becomes less and less). Its a balancing act. As Kevin points out, it is definitely worth reviewing. The world has moved quite a bit since the original work on the Eclipse resource model was put in place (that work was done well before Eclipse).

Jeff

Kevin McGuire wrote:

Thanks Brian!

Stepping back a minute:

An initial fundamental decision we made way-back-when on Eclipse was that we'd be file system based. It seemed the best way to ensure we could interoperate with non-Eclipse based applications, with the file system being the one thing in common.

Personally, I'm not sure that's so compelling anymore. At the time, it was a world where there'd be a small number of Eclipse plugins trying to work with a huge amount of pre-existing applications. The only way to work together is via the file system. So it was probably the right decision then. But now that Eclipse has taken over the world <grin>, I don't think the scenarios still match.

Today the interesting scenarios are around data sharing, data syncing, remote access, remote computation, remote services ... that's the current pain point of interoperability. I'm talking more than just common shared components for the transports and services (obviously an important pre-requisite), but rather a deep integration with what it means to be a resource. Things like: you can't assume they're local, you can have a tremendous number of them, maybe each IResource has both a local storage and a remote URI, treating local storage as a cache, keeping track of sync state, transparently accessing the transports...

So take the Eclipse 1.0 thinking and replace "file system" with "network". Maybe *this* is what the E4 platform needs to be.

Easier said then done though. The existing code is tied to the a file system based resource model with many subtle assumptions which complicate even more the problem of backwards compatibility of API and behaviour.

Nonetheless, I do believe that a rethinking of our resource model, with the view to remote data interop, could be the fundamental shift for E4 and is probably what we need to do to have any kind of forward thinking desktop presence. It is however a ton of work (Jeff McAffer and John Arthorne will I'm sure attest to that).

Regards,
Kevin





*brian.fitzpatrick@xxxxxxxxxx*
Sent by: eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx

08/22/2008 11:42 AM
Please respond to
E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>



To
E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>
cc

Subject
Re: [eclipse-incubator-e4-dev] E4 towards generic connection management (was: e4 beyond the ongoing UI conversations...)











Hey Kevin!

Those are definitely some cool ideas!

I think using URIs to map to remote resources (or local ones even) would give us a ton of flexibility, but would definitely present some interesting challenges. And the whole idea of remote servers and resources playing into a common UI for users (or multiple common UIs, all with a similar look and feel) would fit into our discussions nicely.

A "cloud" of Eclipse plug-ins and resources all accessible through a common UI. What a concept. :)

--Fitz

Brian Fitzpatrick
Eclipse Data Tools Platform PMC Chair
Eclipse Data Tools Platform Connectivity Team Lead
Staff Software Engineer, Sybase, Inc.


*Kevin McGuire <Kevin_McGuire@xxxxxxxxxx>* Sent by: eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx

08/22/2008 09:31 AM
Please respond to
E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>


To
E4 developer list <eclipse-incubator-e4-dev@xxxxxxxxxxx>
cc

Subject
Re: [eclipse-incubator-e4-dev] E4 towards generic connection management (was: e4 beyond the ongoing UI conversations...)












Hi gang,

> I fully agree that in a world where the "Network" is becoming more
> important than the local client, a generic approach for the user to
> manage connections of all kinds will simplify user experience
> (and help reducing code duplication and bloat).

About a year ago I was looking into an area they were terming "WebOS". The notion was that for rich applications, you need some kind of lightweight platform pre-installed on the desktop from which you could serve up applications written against it (presumably in JS or PHP or whatever). One platform service was of course a communication framework, since generally some or all of your data is going to be on the server. This included synchronization as a first class platform service so you can treat the local storage as a cache or offline access. There were a number of players in this area (approx. 4-5 companies). I don't the current state.

At the time, my reaction was, "Hmm, we could be one of those!". We essentially have all the components they talked about, though not integrated to the same degree, and with p2 we have a first class provisioning route.

I view this issue as being intimately tied to the flexible resource model topic. For real data mobility, instead of assuming that resources map to files as we do now, we should assume they map to URIs, served up from anywhere (e.g. a MySQL database), with local proxies providing anything from summary information (name, size), enough say for navigation, to the full contents for editing purposes. Current desktop services such as Search then need to be changed since the number of resource can be huge, and searchable content could be remote.

So this is a very different notion of "the platform" than what we have now. A pretty cool one though!

There a more thoughts squirreled away in my brain somewhere ...

Regards,
Kevin "Not Just About Pretty UIs" McGuire_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev


------------------------------------------------------------------------

_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev
------------------------------------------------------------------------

_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev