Flex RESTing と MySQL の併用
Adobe Flex はこの市場最古参の機能豊富なインターネットアプリケーション(RIA)技術だ。Flex のツールセットとサポートにより、次回ユーザーインターフェース(UI)を作成する際に多くの選択肢が提供される。
多くのコード開発者と同様、筆者も次回作成するアプリケーションの発想を得て、目を見張る効果とグラフィックスを使って無我夢中でコーディングを開始した。コーディング作業が落ち着くと、筆者は自分のデータをリモートから永続化するメカニズムが必要なことに気付いた。筆者はバックエンドデータベースの統合に多くの時間を費やすことが好きではない。データ管理が重要なことは分かっているが、時間がかかり、その克服にはまた別の学習曲線が必要になる。この学習曲線を短縮するため、Flex アプリケーションをリモート データストアで迅速に運用開始させるためのシンプルなデータサービスインフラを紹介する。本稿を読み終えるころには、以下の技術を深く理解できるようになるだろう。
* 軽量データマッピングフレームワークである iBATIS とデータベースのコミュニケーションを可能にするコンフィギュレーション
* Hypertext Transfer Protocol (HTTP) Web サービスを Flex クライアントに公開する Representational State Transfer (REST)リソースの開発
* 複数の重要なサーバ機能を提供できる軽量 Java コンテナである Spring Framework のコンフィギュレーション
* RESTful Web サービスとコミュニケーションを取るための Flex データコンポーネントの活用
本稿は、読者が Java 2 Platform、Enterprise Edition (J2EE)、および MySQL データベースを基本的に理解しているものと仮定する。しかし、重点はシンプルだが包括的なデータサービスフレームワークを伝達して Flex アプリケーションと素早く統合する部分に置かれている。図1は筆者が提案するデータサービスインフラのハイレベルの概要となっている。
図1 提案データサービスインフラ
必要条件
本稿では以下の技術が使われている。
* データベースマッピング技術:iBATIS バージョン2.3.4
* データベース:MySQL バージョン1.5
* サーバエンタープライズ技術:Spring Framework バージョン2.5.6
* REST Java ライブラリ:Jersey 1.1.2
* Java XML エンジンのシリアライズ:XStream バージョン1.3.1
* リモートクライアント:Flex バージョン4
* Java Virtual Machine (JVM):Java ソフトウェア開発キット(JDK)バージョン1.5
データベースへのブリッジ構築
Java のなかで自分のデータベースにアクセスするのに最も速く、最もシンプルなのは、 データベースマッピングフレームワークを使う方法だ。Java オブジェクトにデータベースをマッピングするフレームワークは複数存在するが、筆者は、Structured Query Language (SQL)のステートメントを昔からの平凡な Java オブジェクト(POJO)にマッピングする軽量フレームワークの iBATIS を使うことにした。POJO はデータベースの中の一列として考える。自分のデータベースとやりとりするため、筆者はデータベースへの API を提供する Data Access Objects (DAO)を活用する。DAO はデータベースで一定の抽象化を行い、SQL の固有部分をアプリケーションから隠すため、既存のコードに影響を与えることなく、自分のデータベースベンダーを簡単に交換することができる。iBATIS は DAO 機能を影響するが、筆者は Spring DAO を代わりに使うのが好きだ。iBATIS と Spring を組み合わせることで、基本的な DAO 機能以外にもかなりのことが可能になる。
Spring Framework は、データアクセス以外にも多数のエンタープライズ機能を提供する。Spring-iBATIS の連携を利用することで、トランザクション管理、データベース例外処理、そして認証/承認など、ほかにも Spring の機能を複数使えるようになる。iBATIS は XML ベースの SQL-Map ファイルでコンフィギュレーションが行われる。読者はおそらく、XML コンフィギュレーションファイルのクイック統合がどうなのか知りたいのではないだろうか? 確かに、XML のコンフィギュレーションは苦痛で時間のかかるプロセスになる場合もある。これを和らげるため、筆者はデータベーススキーマを検査し、検査済みのデータベースを基にしてコードとコンフィギュレーションファイルを生成する「ibator」という iBATIS のコードジェネレータツールを使う。ibator によって生成された成果物の一覧を以下に示す。
* Spring (あるいは iBATIS) DAO ソースコード
* POJO ソースコード(データベーステーブル1つにつき Java クラス1つ)
* SQL コードの構築を支援するヘルパー Java オブジェクト
* SQL-Map コンフィギュレーションファイル
自分のデータベーススキーマをセットアップし、ibator ツールを起動したら、バックエンド開発の大部分は完成となる。ibator コードジェネレータを実行する Ant のビルドファイルを以下に示す。
<?xml version="1.0" encoding="utf-8"?>
<project default="generateRestMySQLIbator">
<target name="generateRestMySQLIbator">
<eclipse.convertPath resourcepath="rest_mysql_build/resources/ibatorConfig-restmysql.xml" property="thePath"/>
</target>
</project>
http://japaninternetcom.pheedo.jp/click.phdo?i=db5a50d8c82c3e97b9f25c6a7224d654
本当のエコって何でしょうか?
割り箸を使わないのはエコにならないって聞きました。だってあの割り箸
なんてのは木を切って出てきたいらない部分、廃材を利用してるって聞き
ましたよ!だから逆に使わないとエコにならないと聞いたことありますw
PICKUP
婚活/お見合い名古屋で探す顧問税理士/税理士事務所中小企業様の為の税理士事務所大宮で探す顧問税理士/税理士事務所税理士選びのポイント【広島】小倉遥 アイドル情報税理士事務所が企業を手助け法定利息を超える金利サラ金返済苦から脱出!身近な税理士を探す[東京都 新宿区]