下地忠史 2013 年 7 月 13 日 ( 土 )
1951 年生 62 歳 20~30 代 汎用コンピュータ COBOL 40 代前半 Mcintosh HyprCrdでパッケージ開発 40 代後半 Windows VB C++ 50 代 Jvの商用フレームワークWbtribを開発 還暦 Rmnuの開発に着手 ( オープンソース )
1.Json データフロー 2. サーバサイド MVC 3. クライアントサイド SMVC 参考 ( ハイパーリンク ) jvscript サンプルソース json サンプルソース
クライアントサーバ ブラウザ (HTML5) データセット json SQLjson 業務系プログラムの目的は ブラウザで入力されたデータをデータベースに格納し データベースに格納されているデータをブラウザに表示する と表現できます Rmnu がデータセット json SQLjson の四つのファイルを使用して どのような方法でこの目的を実現しているかを説明します
クライアント サーバ ブラウザ (HTML5) データセット json SQLjson データセット json に記述する項目 HTML のフォームコントロールにつけられた nm を記述します 前画面から引き渡されたセッションデータ (sssionstorg) を記述します ブラウザから入力されたデータは nm を使用してデータセットに格納されます データセットのデータは nm を使用してブラウザに表示されます
クライアント サーバ ブラウザ (HTML5 ) データセット json SQLjson とは サーバに送信する項目を データセットの項目から指定します データベースへの登録 変更 削除 照会等 機能毎に json を作成します リクエストに指定されている項目の nm から データセットのデータを取得します
クライアント サーバ ブラウザ (HTML5 ) データセット json SQLjson SQLjson とは SQL を生成するための情報 (tbl 名 whr 条件等 ) を指定します SQL の入力項目を リクエストの項目から指定します SQL の出力項目 ( テーブルのフィールド ) を データセットの項目から指定します 上記各項目から SQL 文を生成し 入力データをバインド SQL 文を実行し 実行結果を出力項目に出力します SQL は複数回 指定可能です
クライアント サーバ ブラウザ (HTML5 ) データセット json SQLjson とは ブラウザに送信する項目を データセットの項目から指定します ヘッダ 明細 フッター等 ブラウザのデザインを考慮してレスポンスの項目を指定します レスポンスに指定されている項目の nm から SQL 出力項目 ( 実行結果 ) のデータを取得します
クライアント サーバ ブラウザ (HTML5 ) データセット json SQLjson レスポンスに指定されている項目の nm から データセットにデータを設定します データセットに指定されている項目の nm から ブラウザに表示します
Wb サーバ アプリケーションサーバ A p c h P s s n g r R c k コントローラ sql json sql json モデル ビュー sql 結果 Rck コントローラ間は druby(ruby で実装された分散オブジェクトシステム ) を使用しオブジェクト通信を行います 同様に コントローラ モデル コントローラ ビュー間もオブジェクト通信を行います それらのオブジェクト通信のインターフェースに json データを使用しています コントローラ モデル ビューは 別プロセスで動作します 同じ IP アドレス ポート番号を指定することで 同一プロセス上で動作させることも可能です
Wb サーバ アプリケーションサーバ A p c h P s s n g r R c k コントローラ sql json sql json モデル ビュー sql 結果 Rck から を受信します の html タグ ( ファイルパス ) を使用し vlidtion.json を読み込み リクエストデータのチェックを行います をモデルに送信し SQLjson を受信します と SQLjson をビューに送信し を受信します を Rck に送信します
Wb サーバ アプリケーションサーバ A p c h P s s n g r R c k コントローラ sql json sql json モデル ビュー sql 結果 コントローラから を受信します の html タグ mod タグを使用し SQLjson を読み込みます SQLjson から SQL 文を生成 入力項目の値を から取得し SQL 文を実行します からの結果データを SQLjson の出力項目に設定します SQLjson をコントローラに送信します
Wb サーバ アプリケーションサーバ A p c h P s s n g r R c k コントローラ sql json sql json モデル ビュー sql 結果 コントローラから SQLjson を受信します の html タグ mod タグを使用し を読み込みます の項目の値を SQLjson もしくは から取得します をコントローラに送信します
クライアント サーバ モデル ( データ操作 Ajx 通信 ) ブラウザ (HTML5) コントローラ ( イベントハンドラー ) ビュー ( 画面操作 ) A p c h コントローラブラウザからのイベント (onfocus onblur onclick ) を処理し モデル ビューの関数を呼び出します モデルデータセット トランザクション ( リクエスト レスポンス ) を保持し ブラウザとのデータ同期 サーバとの通信を行います ビューコントローラ経由で受け取ったデータを ブラウザに表示します
名前空間とクラス root.rmnu 別名 :$R 基本クラスを定義しています (rmnu.mvc.js) Clss クラス Evnt クラス PubSub クラス Synchro クラス Dtst クラス Vlidtion クラス Trnsction クラス TrnControll クラス AppSpc クラス Modl クラス Viw クラス Controllr クラス $R. Librry プラグイン可能な 共通関数を定義しています controllr.mixin.js modl.mixin.js vlidtion.mixin.js viw.mixin.js formt.mixin.js $R. Appliction. 画面名画面毎に以下の構成でプログラムを作成します indx.html 画面名.ppspc クラス (.js) 画面名.controllr クラス (.js) 画面名.modl クラス (.js) 画面名.viw クラス (.js) 上記クラスは 基本クラス mixin を継承しています 補足画面毎に以下の json を作成します 画面名 _dtst.json 画面名 _vlidtion.json 画面名 _ モード _trn.json 画面名 _ モード _sql.json モード : 登録 変更 削除 照会等の機能名を記述します trn.json:rqust と rspons の両方を記述します
AppSpc とクラス構成 ppspc Json 定義 イベント 定義 カスタムイベント定義 Json 情報 イベント情報 controllr modl vnt pubsub viw modl dtst クラス vlidtio クラス trncontroll クラス pubsub クラス クラスクラスクラスクラス viw カスタム イベント イベント Trncontroll trnsction クラス A trnsction クラス B ブラウザ (HTML5) 表示 リクエスト レスポンス pubsub クラス formt カスタムイベント情報 formt クラス formt unformt
ご清聴を感謝します