Locked History Actions

Diff for "vaadin"

Differences between revisions 4 and 5
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
現在のところの理解であるが、vaadinは簡単に言えば、ブラウザをダム端末として扱う仕組みである。 vaadinは簡単に言えば、ブラウザをダム端末として扱う仕組みである。
Line 14: Line 14:
つまり、vaadinで作成されたアプリケーションは、基本的にはブラウザ上では実行されず、サーバ上で実行されるものである。ブラウザ側は単にその結果を表示し、ユーザからの入力をサーバに送り込む役割しか持たないと思われる。 。。。と思ったが、実は違うようだ。vaadinで作成されたアプリを調べてみると、vaadinのグリッドはtableタグで構成されているなど、各vaadinコンポーネントはブラウザ上で適切な要素で表現されているものと思われる。
Line 16: Line 16:
それがゆえに、vaadinによるアプリは、ブラウザとサーバ間のトラフィックがGWTに比較すれば大きなものになることが容易に想像される。アプリを操作すれば、ほぼ常にサーバとのトラフィックが発生すると考えてよい。これは、できることはブラウザ上で行い必要になった時点でサーバとのやりとりを行う、ということを制御可能なGWTに比較すれば非常に大きなアーキテクチャ上の違いであると言える。 ただし、「Javaによるユーザプログラムはサーバサイドで実行される」ということで、これはつまり、コンポーネントの表現変更(CSS変更等)やイベント処理はサーバサイドで行われ、それがクライアントに伝えられる仕組みになっているらしい。これがゆえに、タイトなネットワーク環境ではvaadinの実行は遅くなるものと思われる。
Line 18: Line 18:
上記に示した参考リンクでは最も重要なこの点を完全に無視しているので注意が必要である。

vaadinの開発は10年にのぼるというが、10年前のjavascriptの状況を見れば、このアイデアが素晴らしいものだったことは想像に難くない。しかしいまやhtml5という高機能標準がブラウザに搭載される状況になり、このようなアーキテクチャが存続できるかどうかには疑問が残るし、わざわざこのようなことをするのであれば、ブラウザ用のVNCプラグインでも作成した方がよほど効率がよいだろう。

vaadin

参考

概要

vaadinは簡単に言えば、ブラウザをダム端末として扱う仕組みである。 これは、VNCが単にリモートのコンピュータ上のデスクトップ上でのプログラム実行を表示する(あるいは、ユーザ入力をそこに送り込む)だけのダム端末であるのに似ている。

。。。と思ったが、実は違うようだ。vaadinで作成されたアプリを調べてみると、vaadinのグリッドはtableタグで構成されているなど、各vaadinコンポーネントはブラウザ上で適切な要素で表現されているものと思われる。

ただし、「Javaによるユーザプログラムはサーバサイドで実行される」ということで、これはつまり、コンポーネントの表現変更(CSS変更等)やイベント処理はサーバサイドで行われ、それがクライアントに伝えられる仕組みになっているらしい。これがゆえに、タイトなネットワーク環境ではvaadinの実行は遅くなるものと思われる。

GWTとの関係

上記本家リンクのFAQにGWTとの関係が記述されている。

What is the relation of Vaadin and GWT? Can I use Vaadin without GWT?

The browser side rendering engine of Vaadin is implemented using GWT. At runtime there are no GWT dependencies in the server side, and the browser side is pure Javascript with no dependencies to Google. The javascript code shipping with Vaadin is precompiled, and no GWT compilation is required when using them. Generally you don't need to know anything about GWT or how the browser side works unless you want to create a new component that can not be built as a composition of existing ones. If you wish to extend your app with browser side code you need to write the extensions in pure Java against the GWT API, and compile them to Javascript using the GWT compiler. This is automated very well with our Eclipse plugin or Maven support.

vaadinのブラウザ側エンジンはGWTコンパイラを使って作成されているし、新たなコンポーネントを作成する際にや、GWTのAPIを使いたい場合にはGWTが必要になるが、しかしそれ以外の場合はGWTは不要であるとのこと。つまり、vaadinに備わるコンポーネントを使ってアプリを作成する場合は、GWTは一切関係無いということのようである。