要求開発アライアンスのセッション『Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標』で使用するスライドについて背景説明を行っています。
- 関数型言語の技術マップ
- オブジェクト・モデリングのボトルネック
- 代数的構造デザインパターン
- 圏論デザインパターン
- オブジェクトと関数の連携(1)
- オブジェクトと関数の連携(2)
- オブジェクトと関数の連携(3)
- データフローの実装技術
- 関数型とデータフロー(1)
- 関数型とデータフロー(2)
- 関数型とデータフロー(3)
- 関数型とデータフロー(4)
今回は背景説明第13弾として、「DSL駆動によるクラウド・アプリケーション開発」のスライドを紹介します。
色々と過去に作ったスライドを調べていたら、2009年のModeling Forum 2009向けに、今回のOFADの基盤技術でもあるクラウド・アプリケーションでのOOADによるモデリングとDSL適用について書いたものが見つかったのでご紹介します。ちょっと古いですが、今まで書いた中でこれが内容が一番まとまっています。(この後に作ったのは、セッション時間に収める目的で内容を省略したものが多くなるので。)
なぜかSlideShareに上げ忘れていたのでアップロードしました。
今回OFADについて考えていますが、クラウド・アプリケーションのアーキテクチャ、OOADによるモデリング、DSL駆動開発の適用方法についての認識は基本的にはこのスライドの当時と変わっていません。セッションでは、時間の関係でこのあたりの内容はあまり深く取り扱えないので、さらっと目を通していてもらえると、より突っ込んだ議論ができると思います。
このスライドを書いた時からの差分は以下のような感じです。
- クラウド・アプリケーション向けのサーバーサイドフレームワークの試作(g3フレームワーク)
- Android向けのクライアントサイドフレームワークの試作(g4フレームワーク)
- DSLモデルコンパイラSimpleModelerによるクラウドアプリケーション(クラウドサービス&スマートデバイス)生成の試行
- Scalaによる関数型プログラミング
この他に、業界全体としてはHadoopによる分散並列処理、NoSQL(分散KVS、文書DB)といった技術が興隆してきました。先端応用での興味はストリーミングに移ってきています。また、アジャイル開発が大きなムーブメントになってきました。
クラウドアプリケーションは、サーバーサイドサービスとスマートデバイスの組合せで構成されますが、このクラウドアプリケーションの開発をDSL駆動で効率化したいというのが基本的な動機です。この目的で、いろいろな取組みをしてきました。
サーバーサイド側フレームワーク(g3)、スマートデバイス側フレームワーク(g4)と両プラットフォーム向けへのモデル生成(SimpleModeler)を実装してみて、ある程度クラウド・アプリケーション実装技術の把握ができたと思います。また、g3とSimpleModelerはScalaで開発しており、DSLと関数型プログラミングについて知見を得ることができました。
以上のような技術、情報をベースに改めて今風の開発方法論について考えてみたのが、今回のセッションの内容となります。
0 件のコメント:
コメントを投稿