イントラマートのスクリプト開発モデルの基本
イントラマートの開発手法には「スクリプト開発モデル」と「JavaEE開発モデル」という2つの開発モデルがあります。
「スクリプト開発モデル」はHTMLとJavaScriptのファイルだけでWEBアプリケーションが作れる開発効率の良い開発モデルです。
この記事では「スクリプト開発モデル」についての基本事項を説明していきます。
イントラマートのスクリプト開発モデル
スクリプト開発モデルは
- ファンクションコンテナー
- プレゼンテーションページ
という2つのファイルがペアになって機能します。
ファンクションコンテナーとプレゼンテーションページは同じ名前でペアになります。
(例)
SamplePage.html(プレゼンテーションページ)
SamplePage.js(ファンクションコンテナー)
スクリプト開発モデルの処理の流れ
ブラウザからリクエストがあった場合、以下のように処理が流れます。
- ブラウザからのリクエスト受付
- session.js内のinit()関数実行
- action属性関数の実行
- ファンクションコンテナーのinit()関数の実行
- プレゼンテーションページhtmlの実行
- session.js内のclose()関数実行
- ページ返却
ファンクションコンテナーとは
ファンクションコンテナーとは、HTTPリクエストやデータベース、ファイルなどから画面(ブラウザー)に表示するための情報を作り出す役割を持ったファイルです。
MVC(Model View Controller)モデルの「Model」を担いなす。
ファンクションコンテナーの構造
言語はJavascriptで書かれており、関数の始まりは「init(バッチジョブではexecute)」から始まる処理です。
function init( request ) { ・ ・ ・ }
イントラマートはブラウザーからの要求を受けると、まず該当のファンクションコンテナーを呼び出します。
呼び出されたファンクションコンテナーは必要な情報を作成し、グローバルデータを介してプレゼンテーションページにデータを渡します。
var HtmlData = new Object() ; //プレゼンテーションページにデータを渡すためのオブジェクト function init( request ) { HtmlData.myName = "SystemTrust" ; }
プレゼンテーションページとは
プレゼンテーションページとはファンクションコンテナーが作成したデータをもとに、そのデータを画面(ブラウザー)に表示するためのHTMLを記述します。
プレゼンテーションページには「<IMART>タグ」という特別なタグを記述することで、その部分をイントラマートが解析し、実際のHTMLに変換していきます。
MVC(Model View Controller)モデルの「View」を担いなす。
<!-- HEADタグ --> <imart type="head"> ・ ・ ・ </imart> <imart type = "string" value = HtmlData.myName /> ・ ・ ・
このようなプレゼンテーションページを作成することで、「<IMART>タグ」が「SystemTrust」に変換され画面(ブラウザー)に表示されます。
スクリプト開発モデルのメリット・デメリット
スクリプト開発モデルで開発を進めていく最大のメリットとしてはJavaEE開発モデルに比べると、初期段階での取得時間が少なくて済むことでしょう。
覚える言語は「Javascript」と「HTML」だけで良いですし、基本はイントラマートが提供しているオブジェクト群を呼び出して処理するだけなので、それほど多くのことを学ぶ必要はありません。
簡単な画面であれば「JavaScript」と「HTML」を数行書くだけで画面表示はできます。
特別なクラスを準備したり、おまじないのような手続きも不要です。
デメリットとしては、イントラマートから提供されているオブジェクト(クラス)がJavaEE開発モデルに比べると少ないということです。
イントラマートの機能を使った一般的な機能は「スクリプト開発モデルのオブジェクト」でできるのですが、細かいことを実現しようとすると、どうしてもJavaのクラスを直接呼ばなければならない事が発生してしまいます。
実際は「Packages.クラス名」で呼び出せるので、難しくはないのですが、欲しいクラスを探すのが結構大変です。
まとめ
イントラマートのスクリプト開発は技術者の立ち上げコストが抑えられ、ファンクションコンテナーとプレゼンテーションページのペアで完結できるので、見通し良いプログラムを作成することができます。
実際には「スクリプト開発モデル」だからできないということは少ないので、開発効率を考えると積極的に「スクリプト開発モデル」でシステム構築をしていくのもよい判断だと思います。