Reflex概要

Reflexとは


 リソースから様々なReflex(反射像)を取り出すためのフレームワーク

 1) リソース志向のフレームワークを提供
    o RESTful設計により物理的なロケーションに依存しないリソースの管理と容易なアクセス手段を提供する
    o 1つのリソースから様々な表現(HTML,XML,JSON,PDFなど)を取り出すことを可能にする

 2) 真に分業可能な設計モデルを提供
    o 構造が崩れない統一したEntityを設計することにより真に分業可能な設計モデルを提供する

 3) スケーラビリティを確保できるシステムを提供
    o Key/Valueストレージやクラウドコンピューティングと組み合わせることでスケーラブルなシステムを提供する
    o Google App EngineのJDOなどをJSONやXMLなどの様々な表現に変換する

 (参考)Reflex Core
 (参考)MVCモデルは進化する  

Reflex設計


 Reflex設計はRestfulな設計を行います (参考)APIをやめデータ構造に着目する


  Entity≒リソース、Entity設計に重きを置く
    o リソースは自己完結したデータの集合
    o リソースはデータ構造をもち公開できる
    o リソースに対してCRUDで操作する
    o リソースは特定できるアドレス(URI)をもつ
    o リソースに対して1UOWで操作する

 


Resource Mapper


 Entityの構造を変えることなくJSON/XML/Tableに変換することができる

 * XMLマッピング
    o 高速に処理できるPull型パーサXStreamを 拡張してXMLのSerializer/deserializerとして使える
    o JavaBean のClass 名やpublic Field 名が自動的に変換されマッピングファイルは必要ない。
     (Convention Over Configuration)
    o 子ノードの多重度が0,1 の場合は1つのインスタンス、0,∞ の場合はList の複数インスタンスが持てる。
     (Java 5のGenerics を使用して直感的なソースコードを記述できる
    o Java のPackage 名を分けることで複数のXML名前空間を使用できる
    o Clean なXML が出力される (関連)きれいなXMLは好きですか

 * JSONマッピング
    o XMLと同じ構造で出力される
    o 名前空間は使用できない
    o 配列に対応している

 * DBマッピング
    o テーブルのカラム名とJavaとのマッピングが可能(DBUtilを使用)
    o XML/JSONと同じ構造のBeanを使用する
    o Google App EngineのJDOを使用する (関連)JDOから直接ATOM、SOAP