BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
- Java,
作者 Ryan Slobojan, 翻訳者 白石 俊平 投稿日 2008年2月12日 午前6時6分
最近、Maven(サイト・英語)の実用性についてたくさんの論議がなされている。MavenとはJavaベースの依存性管理ツールのことで、多くのプロジェクトで利用されている。InfoQは、問題の争点が何であるか、またどういった結果をもたらすのかを理解するために、この議論をより詳しく調査した。
Apache Tapestry(サイト・英語)とApache HiveMind(サイト・英語)の生みの親であるHoward Lewis Ship(source)は最近、彼の携わっているプロジェクトがMavenを使っていて遭遇した、いくつかの問題についてブログエントリを投稿した(source)。
EclipseとIDEAの双方において、Mavenは非常に遅く、バグが多く、そのうえ不安定でした。IDEA7は同期が明示的に行われるので、Eclipse(とMavenプラグイン0.0.12)よりは多少ましです。それでもやはり物事をうまく運ぶためには、果てしない量の調整とフィックス、そして祈りが必要だと思われます。
本質的にはMavenは偉大なアイデア(依存性管理については非常によく考えられています)ですが、ビルドの実行については、不快と言えるほど悪いプラグインシステムの上に成り立っています。その不快な部分というのは、何か新しい壊れたプラグインが中央のMavenリポジトリにリリースされたおかげで、月曜に成功していたビルドが火曜には失敗するかもしれない、と言うことです。
Shipは、Mavenを理解して利用するための大きな障害はドキュメントの不足にもあると述べ、依存性管理システムの代用品としてIvy(source)を推奨した。Eugene Kuleshov(source) はMavenのpom.xml内にプラグインのバージョン番号を記すことが、プラグインの問題解決になるだろうと指摘した(source)。またCharles Miller(source)はそれに答え(source)、そうしたアドバイスがMavenユーザガイドやセットアップガイドのどこにも無い、としている。
Don Brown(source)も最近、Maven 2に見られるいくつかの問題 - HTTP接続のプーリングや、並列アーティファクトダウンロードを含む - を解決する、彼が作ったMavenの新しいビルドについて投稿している(source)。Mavenのこのブランチは作業中(source)で、この変更がトランクに(source)統合される望みがある。
この議論に加わっている人は他にもいる。Jonas Fagundes(source)は、「なぜGrailsはMavenを使わないのか」(source)という質問を投げかけると同時に、こんなコメントをしている。
Maven は素晴らしいツールであり、あらゆる言語に存在してほしいと我々が望むタイプのツールです。これはモジュール化されたプロジェクトのビルドツールなのです。依存関係、ビルドサイクル、テスト、パッケージング、そしてあなたの作成したアーティファクトをリポジトリにて公開することが可能です。これはプロジェクトをビルドするためのツールであり、標準的なビルドツールより一歩進んでいます(現に、最初のバージョンはAntの上に構築されていました)。プロジェクトに対してデフォルトのディレクトリレイアウト - 非常によいデフォルトです- を提供しており、プロジェクトを開始するのに必要なのはプロジェクトの名前を選ぶことだけで、デフォルトのパッケージが生成されます。何も手を加えずとも全てはうまく動作しますし、もし何かを変えたければ、Mavenリポジトリで管理されるであろう新しいプラグインを提供したりして、コンフィグレーションを行うこともできます(そのプラグインは、単にある種の依存性であり、POMの設定語に自動的にダウンロードされます)。railsコミュニティによって考え出された「Convention over Configuration」(設定よりも規約)を大々的に採用しています。
Fagundes氏の「なぜGrailsはMavenを使わないのか」という質問に対して、G2One(サイト・英語)のCTOであるGraeme Rocher氏(source)は「Grailsの主な狙いはJavaEEの簡素化である」と回答している(source)。
今のところ、Mavenはこれに完全に逆流しています。なぜプロジェクトを作りたいときに、いつもマニュアルを読まなきゃならないのでしょう?つまり、私はそうした全てのたわごとを覚えているすべを持たないし、取りかかろうとしてもドキュメントがあまりに酷い、ということです。Rocher氏はGrailsにおけるMavenサポートは存在する(サイト・英語)がデフォルトではなく、最終的にはGant(サイト・英語)、 Raven(サイト・英語)、Buildr(サイト・英語)など他のビルドツールで置き換えられるだろう、と示唆している。
私は、Mavenのように複雑なビルドシステムの受け入れに前向きなのはJavaユーザだけだと思っています。その他のコミュニティにとっては、"これはなんの地獄だ?"と言うことになるでしょう。私にとってのMavenは、ビルドシステムにおけるEJB2です。:複雑すぎて、技術的すぎて、知識を要しすぎます。コードを生成してくれるIDEだけが、Mavenとうまくやれるでしょう。
Matt Raible 氏(source)はRocher氏の記事に加えて(source)、2つの大きな問題点と、それらの潜在的な解決策を示唆した・
加えて、Raible氏はこう言っている。
私はまだMavenのファンです。その主な理由としては、AppFuseの管理とリリースが非常に簡易化されているからです。私が将来GWTやSeam、Grailsの開発を行うときには、Mavenを開発に使おうとトライするのは間違いありません。なぜかというと、私は使い方を学んできたし、他の人が言っているような苦痛を感じていないからです。Mavenは本当に大きなプロジェクト(例えば、30個以上のWARファイルを生成するような場合)でこそ真の力を発するのだとも思っています。本当に大きなプロジェクトにおける Antベースのシステムは、非常に大きな負担となり、保守も難しくなる可能性があります。それだけではなく、(単独のWARをビルド/テスト/デプロイするという環境で)モジュール化されたビルドシステムをAntで維持することはとても困難です。私の経験上、個々が依存関係で結ばれたMavenベースを最新に保つのに比べ、本当に巨大なAntベースのシステムで、全てを最新に保とうとするのは非常に時間がかかります。きっと、Antで全てのテストプロセスを実行するのに5分待つよりは、サブプロジェクトで”mvn install”コマンドを実行するほうがよりスマートでしょう。
いくつか、他からも引用すると、
あなたはどう考える?
原文はこちらです:http://www.infoq.com/news/2008/01/maven-debate
現在の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
返信