クラウドとモデル・コンパイラ

スパランチ!


モデルコンパイラSimpleModelerを作りながら、ふと考えたこと。

クラウド・アプリケーションの開発について気をつけなければならないのは、サービスの再利用はWebプラットフォーム上に存在するサービスをRESTで使用するということでよいのだけれど、サービスの実装そのものは何らかのプラットフォームに依存しなければならないということです。
Google App EngineAmazon EC2 + HadoopAmazon EC2 + JavaEEなど、色々な選択肢があります。このような多種多様なプラットフォームの混在がクラウド環境の本質ともいえます。
しかしこういった環境上では、アプリケーションを複数のプラットフォームの組合せで構築したり、SLAの問題などによってアプリケーションを構築するプラットフォームを引越ししたりするといったことが起こりえます。

このような問題に対応できる解が、Google App EngineJava EEといったPSM(Platform Specific Model)ではなくて、プラットフォーム独立のPIM(Platform Independent Model)としてモデルを作成しておいて、必要に応じてモデル・コンパイラによってGoogle App EngineJava EEのPSMや実装を生成するという手法です。
このような手法を取ることによって、複数のプラットフォームが混在した環境でもスムーズにドメイン・モデル(データ・モデル)の共通化を図ることができます。
また、プラットフォームの引越しも比較的スムーズに進めることができると思われます。

SimpleModeling/SimpleModelerは、元々こういった運用も想定して開発を進めてきたわけですが、現実にクラウド・コンピューティングが立ち上がりつつある中で改めて考えてみると、SimpleModeling/SimpleModelerが提供しているようなモデル・コンパイラの技術はクラウド・アプリケーションの構築技術としてかなり重要なものではないかと思えてきました。