BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
- Java,
作者 Sebastien Auvray, 翻訳者 編集部 投稿日 2007年9月4日 午前12時23分
JavaビルドシステムMaven 1.0は3年前にリリースされ、広くオープンソースの世界や産業界に導入されてきた。それ以降、2.0が新しくリリースされたが、同じようには認められなかった。同じ頃、Rubyの評判はますます上がり、内部DSLの概念が、Rakeのようなツールとともに大変役に立つことがわかってきた。
「一方で、一般の言語の中で記述されたDSLが実に役に立っています。高級言語の簡単さを享受しながら、コンピュータの処理能力の限界まで拡張することができるのです。」
時とともに、BakeやRantといった全く新しいビルドシステムがRubyで書かれるようになった。ほかには、Rakeを拡張したRavenなどがあるが、これは外部リポジトリala Mavenをサポートする。
新顔のBuildrは特にJava buildsを簡単にすることを目的としている。作者のAssaf Arkin氏はxml化や過剰設計されたソリューションより簡単であると主張している。―それは、Arkin氏のブログまたは集めるthumblr の引用からわかる。その簡単さがApache Odeといった彼のプロジェクトからMaven2を外そうとした理由である。
すぐにMaven不確定性原理と名づけました。しかし、正直に言えばビルドが動作するかどうか、不確実性や疑問がほとんどないことはわかっていました。その通りでした。結局、いつだったか、もうたくさんだと思ったのです。テストケースは中断しました…。どちらにしても、アジャイルかMavenか選ばねばならなかったのです。一つは廃れていくことになるでしょう。」
Assaf氏はAntに戻ることに疑いを持った。
「それからまったくMavenなしに生活する幸せな生活を想像し始めました。ジグザグに進んでAntにいたるのでしょうか?欠点はありますが、少なくともAnt buildsは動作します。確かに、Antはソフトウェア開発者の誰もが望む「宣言型」ではありません。しかし、下手な宣言型のコードは、命令型のどんなスパゲッティコードより性質が悪いのです。」
…そして結局Rakeに落ち着くのである。
「だからそうしたのです。Rakeを使って始めました。驚きに水を差すようですが、結局素晴らしい選択であったことがわかりました。Rakeは好調にスタートしましたが、期待していたものではありませんでした。われわれが取り組んでいる典型的なJavaアプリケーションにはいくつかのモジュールがありますが、そのすべてに同じ共通のライフサイクルタスク、-コンパイル、テスト、パッケージ、デプロイ-があります。これらをモジュールごとにすべて何回も繰り返して書くのでは、Antとたいして変わらないでしょう。もっといい方法があるはずです。」
この冒険談が結果的にBuildrの誕生を招き、それによって身近な目標も達成し、(XML Beansの処理など)、普通のRubyコードを基本タスクを完了するために信頼に足るものにしてくれた。さらに広く導入するのを最後に止めるのは性能かもしれないが,「猛烈な勢いの」BuildrはMavenと張り合えることがわかった。
「われわれは同じコードをビルドし、同じテストを実行し、同じXMLBeansをコンパイルし、同じHibernateスキーマを作成し、同じリモートおよびローカルなリポジトリを共有しています。これらはすべて、ブラックボックスと同じであると言えます。同じプロジェクトを入力すると、同じJAR、WAR,配布ファイルを生成するのです。」
同じものをビルドするのですが、異なる点は、52のXMLを多用するファイルから1つのスクリプトまで、スクリプトのサイズが91%まで小さくなっていたことです。しかし、それだけではなく、Buildrはビルド時間を何とか50%まで減らしたのです!部分的なビルドでもBuildrはMavenと同等かそれ以上で実行しました。
同じものをビルドするのだが、異なる点は、52のXMLを多用するファイルから1つのスクリプトまで、スクリプトのサイズが91%まで小さくなっていたことであった。しかし、それだけではなく、Buildrはビルド時間を何とか50%まで減らしたのだ!部分的なビルドでもBuildrはMavenと同等かそれ以上で実行した。
「もちろん、Ruby単体をピュアなJavaと比較して計っているわけではありません。1つの実装をもう一方と比較しており、その実装において両者は同じことを行っており、ブラックボックスと同じことです。これこそ現実のベンチマークです。」
Assaf氏は素晴らしい結論で締めくくっている。
「Rubyは遅いかもしれませんが、それでビルドしたものは恐ろしく速くなるかも可能性があります。」
MavenとBuildrの直接対決を見るのは面白いことだろう。
この文書は現在RDocとApache Rakefileに限定されていますが、完全な説明書が作成中である。
(原文は2007年5月7日にリリースされた記事です)
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。
Google Chartは、チャートを作成するためのWebサービスです。本稿では、Google Chartのインターフェースと、Rubyコードから簡単にチャートを生成することができるgchartrbライブラリの説明をします。
全二回からなるこの記事では、ダイナミックビジネスアプリケーション(Dynamic Business Applications:DBAs)の開発についての全体的な眺望を、アーキテクチャと方法論の観点から見ていくことになります。我々のゴールは、「ビジネスの変化や、その他に必要とされる変更に対して、いかにして容易に適応できるアプリケーションを構築していくか」を導きだすことです。
本稿では、Adrien Louis氏がESBベースのSOAに対する2つの接続形態についての賛否について説明しています。その2つとは、会社での単一のESB対「部門毎」に相互接続するESBによるシステムです。
誕生から2年を経てCometは「何が出来るのか」という議論から、「いかに実現するか」という議論に関心が移ってきたように見えます。そこで本稿では同じくJavaOneで数多く取り上げられたNetBeans 6.1とGlassFish v3を使いながら、サンプルを交えてCometを解説していく事にします。
この記事では、WSS3とMOSS 2007に難しい設定など一切せず、すぐに利用可能なWebサービスと、Javaと.NETからそのWebサービスを消費する方法に目を向けます。
この記事の始まりは、知的で思慮深い人たちの魅力的なグループが食事会を終えて話をしているところです。話はレトロスペクティブ(振り返り)プロセスの要であるプライムディレクティブ(最初の指示)に及んでいます。
No comments
返信