Data Model Definition Languare (DMDL)は、Asakusa Frameworkで利用するJavaのデータモデルクラスを定義するための言語です。DMDLではそれぞれのデータモデルが持つプロパティなどを定義でき、DMDLで定義されたデータモデルをDMDLコンパイラに渡すと、対応したJavaのデータモデルクラスを自動的に作成します。
Asakusa Framewokを利用する場合、DMDLを利用してデータモデルを作成することが推奨されます。これは、次のような理由があります。
Asakusa DSLの内部で利用するデータモデルは、DSLのコンパイルの途中で内部的に別のデータ構造に分解されます。DMDLで生成したデータモデルには、コンパイラに必要なメタ情報が自動的に作成されます。
Hadoopは独自のWritableというインターフェースを利用したオブジェクトの直列化機構を利用しています。DMDLで生成したデータモデルは、この直列化機構を利用するための機能を自動的に提供します。
DMDLコンパイラは外部システムとの連係情報を自動的に生成するためのプラグイン機構を提供しています。DMDLを中心としてデータモデルを定義することで、ThunderGateなどの外部システムと整合性を保ちながらデータモデルを管理できます。