BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Exadel社のFlamingoプロジェクト - FlexとJavaによるラピッドデベロップメント

Exadel社のFlamingoプロジェクト - FlexとJavaによるラピッドデベロップメント

ブックマーク

Exadel社のFlamingoプロジェクトは、Javaバックエンドで構築されるRIAアプリケーションをブートストラップするツールである。このツールは、ミドルティアでSeamとSpringの両方をサポートする。プレゼンテーションティアでは、FlamingoはFlexとJavaFXをサポートする。ツールは、より伝統的なJavaウェブ・ティア・フレームワークとして利用できるAppFuseプロジェクトと似たアプローチで、アプリケーションのブートストラップを行う。InfoQは、Flamingoについてより深く知るために、Exadel社のIgor PolevoyとFima Katzに接触してみた。

IgorとFimaは、Flamingoの機能詳細を教えることから始めてくれた。

私は、現在の機能は、3つの論理的グループに分類することができると思っています。
  1. ツール
    Flamingoは、単純な機能を実現するプロジェクトを、素早く立ち上げる能力を提供しています。プロジェクトをまとめるのには、時間のかかる努力が必要であるのは、誰でも知っています。加えて、それにJavaで取り組もうとした場合、多くの異なるやり方あります。我々はこの問題を認識し、ソリューションとしてFlamingoツール群を作成しました。Flamingoツール群を利用すると、新規プロジェクトを素早く生成することができるだけではなく、開発サイクルの途中で、必要に応じてアプリケーションの構成部品を作成することができるようになります。
  2. 統合ライブラリ
    統合ライブラリは、クライアントとサーバのコード間の接続部分として機能します。バイナリ・プロトコルが最も効率的なので、我々は、バイナリのプロトコルしか使いません。プロジェクト作成時に、すべての、とは言っても小さいものですが、構成定義を行います。従って、開発者は手元のビジネス上の課題以外のことを考える必要はありません。
  3. クライアント側コンポーネント:
    ビジュアルではありませんが、検証や複数のリクエストを一つに纏める機能などを提供しています。Flamingoの面白い特徴の1つに、ダイナミックで持続的なメソッド群があります。このメソッド群を使うと、SQLではなく、英語のような直観的な問合せを使ってデータベースをアクセスできるようになります。実際には、SQLは、Flamingoが実行時に自動的に生成します。この特徴だけでも、大きな開発生産性向上を実現できます。
IgorとFimaは、その後、Flamingoをどのように使うかを話してくれた。
我々は、Mavenをプロジェクトの作成と組織に使っています。Mavenのブートストラップウィザードは、いろいろな観点からプロジェクトについての質問をしてきます。以前行った選択に基づいて、例えば、サーバーサイドテクノロジ(Seam/Spring)、クライアント・テクノロジ(Flex/JavaFX)、データベース・タイプ、場所、証明書に関する質問を行います。その後で、Mavenのプロジェクトを生成します。このプロジェクトには、小規模のプロジェクトに必要な、単体テスト、持続的ユニット、作業画面のようなコンポーネントが含まれます。その後の展開には、標準的なMavenコマンドを使います。これで、数分のうちに、新しく完全に構成されたプロジェクトができあがります。
InfoQは、RIAテクノロジと統合するのを前提にした場合にSpringとSeamテクノロジで何か違うのかを尋ねた。
Spring/Hibernateの組合せもSeam/JPAの組合せも、FlamingoとFlexまたはJavaFXでRIAアプリケーションを実装するための現実的なソリューションです。あるものかべつのなにかを選ぶ時には、殆どの場合、ほかにどんな特徴的な機能があるかよりも、既存の組織や開発スタッフの好みといった現在の文化と基盤に依存するものです。一般的に、たとえ所々で重複する場合でも、SeamとSpringを比較するのは困難です。SeamとSpringは、異なる目的のために設計されました。Flamingoは、できるだけ中立であろうとしています。たとえ、どのバックエンド・テクノロジが選択されても、Flamingoはできるだけ同じようにサポートします。私は、ある組織がJava Enterpriseで標準化を行い、万全のサポートを行えるのであれば、その組織でSeamを選択するのは問題ないが、そうでないのならば、Spring/Hibernateの組合せを検討した方がいいのではないかと思います。
IgorとFimaは、どのような人がFlamingoの利用を考えるべきかについて以下のようにコメントしてくれた。
ターゲットとする顧客は、企業と企業のアプリケーション開発者です。我々は、企業レベルでRIAテクノロジがかなり採用されていると考えています。例えばいろんな種類のAjaxです。通常、Ajaxテクノロジは、Enterprise Javaベースのバックエンドシステムとよく統合されています。我々は、独自にJSF(Java Server Faces)とAjaxを組み合わせて、そのような企業ソリューションのひとつであるRichFacesを開発しました。しかし、Ajaxのいいところや悪いところの話をするまでもなく、企業の開発組織は、Flexのような代わりのソリューションを持つ大きな必要性をもていると考えています。Javaを使って企業システムを構築している人たちは、Flamingoを使うことで、非常に容易にFlexとJavaを使用する新しいアプリケーションを作成できるようになります。
そして、オープンソースであることについて、
我々は、長い間オープンソースに関わってきたので、コミュニティとそのアプローチが非常強力であると知っています。
InfoQは、Flamingoがアジャイルな開発をどのようにサポートするかについてもっと詳しく教えて欲しいと頼んだ。
  1. 統合
    今までお話ししたのが、我々が今日提供できるものです。Flamingoを使わないと、マニュアルコーディングが必要ですが、それは不要になりましたし、SeamやSpringとFlexやJavaFXを組合せてシームレスな開発ができるようになりました。その結果、開発を、非常に簡単に、より速く、より低いコストで行えます。
  2. 先進のツールを含むアジャイルなRIAプラットホーム 
    「アジャイル」や「ラピッド」開発を実現するというチャレンジに答えるために、Ruby on RailsやGrailsのような技術的なソリューションが出てきました。こういったフレームワークは確かに優れものではありますが、リッチインターネット・アプリケーションをアジャイルに開発するには向いているという訳ではありません。Flamingoは、RIAに対して新しいツールとコンポーネントを導入することによって、これを打開することを目標としています。Flamingoコード・ウィザードは、プロジェクトと単純なスクリーンを生成します。Flamingoの次のリリースでは、さらに強力なツールをお見せできます。また、サーバとクライアント・コンポーネントの繋ぎは、なんの手間をかけなくてもFlamingoがすべて実行します。従って、プロジェクトの立ち上げ時間を短縮できるようになります。Flamingoの3つ目のアジャイルな側面は、そのクライアント側コンポーネントです。クライアント側コンポーネントによって、クライアントは、非常に簡単なコーディングパターンでデータベースに実行時リクエストを生成することができます。この機能だけでも、時間節約に非常に有効ですが、もしFlamingoのすべての機能を使うのであれば、いろいろな組織のための非常に望ましいアジャイルな開発プラットホームになります。
  3. オンデマンドのRIA開発プラットホーム
    このプラットホームには、ビジュアルなものとそうでないプリビルドなコンポーネントと、データアクセス/ナビゲーションのためのdVisionようなプリビルドなアプリケーション・コンポーネントが含まれています。

Flamingoについて詳しく知るためには、Flamingoプロジェクト・ホームページ(サイト・英語)をチェックして下さい。

原文はこちらです:http://www.infoq.com/news/2008/06/flamingo-flex-and-java-dev

この記事に星をつける

おすすめ度
スタイル

BT