2022年2月28日月曜日

Cozy Web

Modegramming Styleブログではモデリングとプログラミングの一体化を指向したModegrammingというコンセプトを提唱しており、その実現のための技術体系としてSimpleModelingを整備しています。

SimpleModelingを実現するためのプラットフォームとして以下の4つのプロダクトを集約したCozyを立ち上げたことを前回ご紹介しました。

SmartDox
文書処理系
SimpleModeler
モデルコンパイラ
Kaleidox
アクション言語
Arcadia
Webフレームワーク

CozyはGitHubで開発を進めています。

  • https://github.com/asami/cozy

Cozy Web

モデル駆動開発をWebアプリケーションまで広げるためには、モデル駆動対応したWebプラットフォームが必要です。このためのWebフレームワークとして開発を進めてきたのがArcadiaです。

CozyはこのArcadiaをベースに動作させることでモデル駆動の基盤のWebプラットフォームとして動作します。

CozyをWebプラットフォームとして動作させる形態をCozy Webと呼ぶことにします。

HelloWorld

Cozy Webの最小構成アプリケーションとしてHelloWorldを作成し、動作させてみます。

アプリケーション

最小構成のアプリケーションなので、index.htmlのみを配備します。以下のindex.htmlを用意します。

  1. <html>  
  2. <head>  
  3. <title>Hello World!</title>  
  4. </head>  
  5. <body>  
  6. Hello World!  
  7. </body>  
  8. </html>  

配備

cozyを起動するディレクトリにwebappsディレクトリを作成します。

ここにアプリケーションのホームとなるディレクトリHelloWorldを作成します。

このHelloWorldディレクトリに前述のindex.htmlを作成すればOKです。

起動

Cozyをwebコマンドで起動するとWebプラットフォームとして起動します。

  1. $ cozy web  

実行

curlコマンドによってローカルホストの8080ポート上の /web/HelloWorld/index.html を取得します。

/web はCozy上のWebアプリケーションのホームです。その配下のHelloWorldが、先程作成したディレクトリHelloWorldに対応するもので、ディレクトリ名がアプリケーション名になっています。

  1. curl -v http://localhost:8080/web/HelloWorld/index.html  

取得結果は以下になります。無事登録したHTMLファイルを取得することができました。

-vスイッチが指定されているので、HTTPのプロトコルヘッダーも表示されています。

取得結果は以下になります。無事登録したHTMLファイルを取得することができました。

-vスイッチが指定されているので、HTTPのプロトコルヘッダーも表示されています。

  1. > GET /web/HelloWorld/index.html HTTP/1.1  
  2. > Host: localhost:8080  
  3. > User-Agent: curl/7.76.1  
  4. > Accept: */*  
  5. >   
  6. < HTTP/1.1 200 OK  
  7. < Date: Sun, 27 Feb 2022 04:12:53 GMT  
  8. < Content-Type: text/html;charset=utf-8  
  9. < Cache-Control: public,max-age=86400  
  10. < Expires: Mon, 28 Feb 2022 04:12:59 GMT  
  11. < Content-Length: 337  
  12. < Server: Jetty(9.4.38.v20210224)  
  13. <   
  14. <html>  
  15. <head>  
  16. <title>Hello World!</title>  
  17. </head>  
  18. <body>  
  19. Hello World!  
  20. </body>  
  21. </html>  

まとめ

今回はモデル駆動開発向けのWebプラットフォームCozy Webを紹介しました。

ごく簡単なWebアプリケーションをHelloWorldとして配備して実行することが確認できました。

次回以降Cozy Webの機能を紹介していく予定です。

諸元

Cozy
0.0.3