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を用意します。

<html>
<head>
<title>Hello World!</title>
</head>
<body>
Hello World!
</body>
</html>

配備

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

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

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

起動

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

$ cozy web

実行

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

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

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

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

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

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

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

> GET /web/HelloWorld/index.html HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.76.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Sun, 27 Feb 2022 04:12:53 GMT
< Content-Type: text/html;charset=utf-8
< Cache-Control: public,max-age=86400
< Expires: Mon, 28 Feb 2022 04:12:59 GMT
< Content-Length: 337
< Server: Jetty(9.4.38.v20210224)
< 
<html>
<head>
<title>Hello World!</title>
</head>
<body>
Hello World!
</body>
</html>

まとめ

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

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

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

諸元

Cozy
0.0.3