Re: Re: 回复:RE: remotely root file view

From: Rene Brun <Rene.Brun_at_cern.ch>
Date: Fri, 05 Oct 2007 15:19:28 +0200


Christian,

Of course we know about Ajax and Carrot. Both systems have very serious shortcomings
  -either having to run ROOT (or user application) on the web server   -or/and have a very slow rendering because only very low level graphics objects (jpg, gif, svg, etc) files are transported across the net   -or/and use only a very small subset of the client capabilities.

The point is that processing ROOT objects (visualization of histograms, Trees, etc, or queries to Trees require a substantial fraction of the ROOT core classes on the client side.
And the problem is that installing the ROOT libraries is not just a few seconds exercise.

Because we are very well aware of these requirements, we launched several months ago the BOOT project (see my talk at CHEP07 about BOOT). The idea is that from any web browser, you can easily install the minimum set of libraries to run the tasks described above (say less than one minute install time).
Using the new TBrowser you can browse any web file, including ROOT files, or alternatively via the Remote login facility start a remote session where you execute your normal scripts). In both modes graphics is native graphics and only high level objects transported through the network with the existing ROOt I/O machinery. This is the solution adopted by other major tools like the videoplayers, Adobe, etc.

We investigated the possibility to have a plug-in to the local client browser, but we were totally disappointed by the instability in this area and the frequent changes in protocols. We opted instead for a separate window running native ROOT/BOOT.

One of the requirements for BOOT was to achieve a very small size for the executable.
With version 5.17 we are now around 15 MBytes of virtual memory and 7 MBytes of real memory.
The development of BOOT will still take a few more months. Once BOOT will be available,
it will include an automatic update facility like the ones found on most operating systems today, such that
moving to a new version (or going back to an old version) should be extremely easy.

Rene Brun

Christian Holm Christensen wrote:
> Hi Rene,
>
> On Thu, 2007-10-04 at 07:16 +0200, Rene Brun wrote:
>
>> Let me repeat again what I already said in previous messages.
>>
>
> I think there's a misunderstanding here. Rene is talking about using
> ROOT as a client, and 杨苏立 et al are talking about using a web-browser
> as the client.
>
> I think what people are after, is to _not_ have ROOT installed on the
> client machine, and use their favorit web-browser as the interface to
> ROOT.
>
> That is, some remote machine, say root.foo.bar has some web-server
> (Apache) and ROOT installed. A user, sitting at workstation.gnus.gnat
> then connects to the server at root.foo.bar using the standard http(s)
> protocol, possibly on some specific port, with their favorit web-browser
> (IceWeasel?)
>
> http://root.foo.bar/
>
> Now, using the UI of the web-browser, the user at workstation.gnus.gnat
> would like to open a ROOT file, browse its contents, plot histograms,
> fit functions to data, and so on - but using the UI of the web-browser,
> with no installation of ROOT on workstation.gnus.gnat.
>
> The old Carrot project could do something like that. However, with all
> the recent developments in Ajax and similar, perhaps it would be better
> to do it in those frameworks. In fact, that would probably not require
> any Apache plug-in.
>
> CGI scripts can go a long way, but it's harder to make the content
> UI-friendly.
>
> Perhaps, one could couple something like ajaxterm with the rendering
> capabilities of the browser, to get a nice remote UI.
>
> Other people would say - why not simply use SSH (-X for protocol 1, -Y
> for protocol 2), and make sure the client is running a proper OS with X
> and so on :-)
>
>
>> Since version 5.16 you do not need any changes (or plug-ins) to the
>> Apache module to read ROOT files. ROOT is now able to communicate
>> directly with the Apache web server to read
>> remote files. The following session should work in your case
>> root > TFile *f = TFile::Open("http://root.cern.ch/files/pippa.root");
>> root > TBrowser b; //now you can plot any histogram in the file
>>
>
> This is all well and fine if you have ROOT installed on the client
> machine. But if you don't, then this is not the solution. BTW, doing
>
>
>> root > TFile *f = TFile::Open("http://root.cern.ch/files/pippa.root");
>>
>
> isn't htat just a fancy way of doing
>
> $ f=`mktemp /tmp/rootXXXXX`
> $ wget http://root.cern.ch/files/pippa.root -O $f
> $ root $f
>
>
>> You can run the ROOT session from ny client (Linux, Windows, mac).
>>
>
> The point being, of course, that you run the ROOT client on the client
> machine. I think what people are after, is that ROOT runs on the
> _server_! This would make a lot of sense if you're browsing very large
> files, and your band-width is limited. Since an Apache server running
> ROOT in the background only need to serve the graphical representation
> and not the full data set, it leaves the client with fairly little to
> do, and saves a lot of band-width.
>
> Yours,
>
>
>
Received on Fri Oct 05 2007 - 15:19:25 CEST

This archive was generated by hypermail 2.2.0 : Fri Oct 05 2007 - 17:50:02 CEST