Translate

2014年7月28日月曜日

Vaadinの英語サイトのごく一部(Learn)を翻訳してみる

GWT.create(GWTをテーマにしたイベント、ドイツとアメリカで開催)の
ページを見ていると、Vaadinというフレームワークがよく出てくる。

どうも出自は2010年ころからでているが、日本はGWTがなぜか流行らないので情報が殆ど無い。どこぞの記事に紹介があったが3ページ目辺りで会員登録しないと見せないよっていう意地悪をされたので萎えてそのままだった。

でも、せっかくなのでイントロくらいは読んでおこうと思い、以下のページだけ翻訳してみた。

Introduction to Vaadin Development
https://vaadin.com/learn

以下私の翻訳ですが、直訳しているだけなのでとっても読みにくいです。
Yahoo翻訳よりまし程度で読んでください。
(もちろん、at your own riskで)

------

Vaadin開発へのイントロダクション


[YouTube] Vaadin Step-by-Step
https://www.youtube.com/watch?feature=player_embedded&v=KsvvF1zgMQM

この短いビデオは、Vaadin7、Vaadin Eclipse プラグイン、Apache Tomcatを使った開発のチュートリアルです。


Vaadinとは何?


Vaadinは リッチインターネットアプリケーション(RIA)のためのWebアプリケーションフレームワークです。ソリューションベースのJavaScriptライブラリやブラウザプラグインとは対照的に、Vaadinは、強力なサーバサイドプログラミングモデル、そしてGWTやHTML5ベースのクライアント再度開発ツールが特徴です。RPCやクロスブラウザ互換性、全てのレイヤをまたがったフルコントロールといった実装時の細々としたことから分離された短期開発モデルを要約します。

VaadinはUIコンポーネントの巨大な集まりです。「ボタン(http://demo.vaadin.com/sampler/#Buttons)」、「テーブル(http://demo.vaadin.com/sampler/#GridsAndTrees)」、「ツリー(http://demo.vaadin.com/sampler/#GridsAndTrees)」や「レイアウト(http://demo.vaadin.com/sampler#ComponentContainers)」といったコンポーネントからアプリケーションユーザ・インタフェイスを構築します。コンポーネントはビジネスロジックや相互にコミュニケーションをとるイベント、リスナ、データバインディングを使用します。

Vaadinは短期アプリケーション開発のための強力なアーキテクチャです。コンポーネントベースのアーキテクチャ、ならびに静的Java言語、そしてデータバインディングは、より簡単にモジュール化され必要に応じて再分解されたアプリケーション構築を支援する特徴を持ちます。「ビジュアルデザインツール(http://vaadin.com/eclipse/#visual-designer)」を含む「IDEやツール化支援(http://vaadin.com/tooling)」により、ユーザインターフェイスを高速に開発することができます。


詳細は「Vaadinの特徴(https://vaadin.com/features)」へ


Vaadinを使うと...


衝撃的なWebアプリケーション、ルックアンドフィールが違いを生む。Vaadinは素晴らしいコンポーネントや多くのカスタマイズ可能なテーマを提供します。

GWTベースのウィジェットによるブラウザ独立したウェブアプリケーション構築、Vaadinアプリケーションはリッチなユーザエクスペリエンスを提供し、かつプラグインのインストールなしですべてのモダンなブラウザをサポートします。

Vaadinを使った短期開発、数分でWebアプリケーションを作成します。数行のJavaコードだけでVaadinがのこりを世話します。複雑なXML設定なし、JavaScriptなし、RPCなし。

セキュアなWebアプリケーション、Vaadinコンポーネントを使うことで、証明されたサーバサイドアーキテクチャがアプリケーションコードをブラウザに送信しないことを保証します。

保守しやすいアプリケーション、ピュアJavaによるアプリケーション構築ががより簡単な拡張性と長期の保守性をもたらします。

オフラインかつステートレスなアプリケーション、必要に応じてブラウザ上で実行するJavaScriptへコンパイルすることで、Vaadinはクライアント側の機能をJavaで記述することを許可します。



フリーなオープンソース


VaadinはApache Software License 2.0に準拠します。これは非商用、商用プロジェクトどちらも無料であることを意味します。

ライセンスの詳細はこちら(http://vaadin.com/license


簡単なプログラミングモデル



サーバサイドJava


XML、JavaScript、ブラウザ、RPCについては忘れなさい、サーバサイドJavaコードが動作します。この分離はVaadinがGWTのようなクライアント中心のJavaフレームワークであることを示しています。

クライアントサイドJava


新たなユーザインターフェイスコンポーネントを構築するため、あるいはオフラインのアプリケーションを構築するためのHTML5、JavaScript、GWTを使用している拡張されたクライアントサイドVaadin。

コード例


 Hello World - 伝統的な例
  HelloWorld.java(http://demo.vaadin.com/docs/example-source/com/vaadin/demo/HelloWorld.java.html
  アプリの実行(http://demo.vaadin.com/HelloWorld
 Calculator - 単純なイベントハンドリング&ロジック
  Calc.java(http://demo.vaadin.com/docs/example-source/com/vaadin/demo/Calc.java.html
  アプリの実行(http://demo.vaadin.com/Calc
 Addressbook Tutorial – アノテートされたアプリの例
    vaadin.com/tutorial(https://vaadin.com/tutorial



Vaadin アーキテクチャ


どのようにしてVaadinが動作するか、そして異なるプラットフォームやほかのフレームワークと統合しているかを見てください。
https://vaadin.com/image/image_gallery?uuid=453a301a-798c-4daf-aea7-3fd115c0d88a&groupId=10187&t=1349442259604
詳細なアーキテクチャはBook of Vaadinにかかれています。

・Vaadin Introduction(https://vaadin.com/book/-/page/intro.html#intro.overview
・Application Architecure(https://vaadin.com/book/-/page/application.html)
・Communication Architecture(https://vaadin.com/book/-/page/architecture.client-side.html



ブラウザ独立


Vaadinはブラウザ互換性問題を引き離し、アプリケーションの開発に集中させてくれます。すべてのVaadinコンポーネントは以下のブラウザと互換性があります。

・Internet Explorer
・Mozilla Firefox
・Safari
・Opera
・Google Chrome


完全互換性情報はこちら(https://vaadin.com/features


ブラウザプラグイン不要


VaadinはGWT、JavaScriptベースなのでエンドユーザにプラグインのインストールを要求しません。


フレームワーク比較


VaadinとほかのJava Web フレームワークのサイドバイサイドな比較。
「フレームワーク比較(https://vaadin.com/comparison)」へ進んでください。


------
ビデオはまだ見ていないが、わかったことはGWTベースのフレームワークでUIのデザインツールなんかがあって短期開発アプリ向けだということ。

Apache2.0準拠のオープンソースであることはわかった。

数行のJavaコードでWebアプリつくれまっせ..っていうのは眉唾だなあ..やっぱり画面の作り方がどれだけ簡単かみてみないとなあ..


というかGWT関連の記事ってことごとくPVが一回り桁数少ないんだよなあ..
日本のGWTユーザはレッドコード扱いになっているのかもしれないなあ..

2014年7月10日木曜日

【解決しました】Proxy環境だとIBM BlueMix Tools EclipseプラグインからBlueMixサイトへ繋がらない




IBM BlueMixのハンズオンへ行ってきた人の資料を借りて
とりあえずデプロイするところまでためそうとしたのだけど..

プラグインをマーケットプレイスからインストールした後
サーバにあらかじめBlueMix上に作ったサーバを登録しようと
サーバタブ選択→右クリック「新規」>「サーバ」>「IBM: IBMBlueMix」
を実行、サーバを作ったアカウントのメールアドレスとパスワードを入れて
Validate Account」ボタンを押したら

Unable to communicate with server - I/O error on GET request for "https://api.ng.bluemix.net/info": api.ng.bluemix.net; nested exception is java.net.UnknownHostException: api.ng.bluemix.net





というエラーが出た。

ブラウザから「https://api.ng.bluemix.net/info」をたたくと

{"name":"BlueMix","build":"169001","support":"http://ibm.com","version":2,"description":"IBM BlueMix","authorization_endpoint":"https://login.ng.bluemix.net/UAALoginServerWAR","token_endpoint":"http://uaa.ng.bluemix.net","allow_debug":true}

上記のJSONデータが帰ってくる..

..ので見れないわけないんだけど..


で例によってプロクシかな..とおもい
プロクシではない環境で実行したら
すんなり次へ行った..


Cloud Foundry(MicroCloudFoundry)やOpenShift(LiveCD)はローカルの仮想環境イメージも提供しているので
BlueMixにもあるかと探したけど..ない..

検索力がないから見つからないのかもしれないけど..


IBMのサービスだから企業向けかと思ったけど..

企業なんかProxy前提の環境ばかりなのに
こんなんじゃ使い物にならないよ...

どのポート使ってるのか調べようかと思ったけど
たぶんPivotalみたいにMCFにかわるイメージをくばるんじゃないかなとおもい
諦めました..


だれか、プロクシ経由でもBlueMix上のサーバへデプロイできる環境作れたら
教えてください..



《2014/10/07追記》
実は、
IBMの担当者に聞いて"proxy経由で接続できる" との回答をもらった人がいて、
あきらめず再度試してみました。

どうも、
ウィンドウ>設定>一般>ネットワーク接続 で、
ネイティブ」設定でやっていると失敗するようで、
ここを「マニュアル」にしてプロクシサーバやポートなどをEclipse上に直接設定したら
うまくつながりました。

なんかβ版もでているようなので
最新のプラグインでは治っているかもしれませんが..


マーケットプレイスつながるんだから、
「ネイティブ」設定で全然大丈夫だったのに..


ハマった人、ご注意ください。

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...