サーバーサイドJavaScriptによるWeb開発フレームワークの紹介
1.Javascriptフレームワーク CGJS-FWの概要
CGJSとは、Common Gateway JavaScript
の大文字部分だけで作成した用語で、HTTPサーバーで動作する自作の
JavaScriptインタープリタを中心とした、以下の4つの機能・特徴を持つWeb開発用のフレームワークです。
vue.js、angular.js、jQuery等のFront部のJavaScriptとシームレスなJSONのI/Fを持つBack End部のJavaScriptで、
データベース関連の拡張関数によりJSONデータで簡単にDBにアクセス・操作できます。
また、Client PCで作成中のJavaScriptをBackEndで実行できるGUI I/Fのデバッガーがあり、
単体テストWeb画面と併用すれば、アプリ開発の生産性が向上するフレームワークです。
(1) サーバーでJavaScriptを実行する共通CGI
実行速度と脆弱性を考慮し、C言語の基本的なライブラリだけで作成した、JavaScriptインタープリタCGIです。
Front部のAjaxでHTTPサーバーから起動され、Back EndのAPI(JavaScript)を実行し、結果をFrontに返して
CGIは終了します。
CGIは、JavaScriptのソースを解析・実行するだけでなく、事前にコンパイルされた中間コードも実行します。
Front<--->Back End間のJavaScriptで、複雑に何層にも構造化したJSON構造体の送受信が可能です。
Back Endで検索した一覧表等のレコード群や、Front画面の表形式で入力された登録・更新レコード群が、
Ajaxを介してFrontとBack End間で簡単に送受信できます。
(2) DB関連(Oracle、SqlServer、DB2、PostgreSql、Sqlite、MongoDb、Redis)の拡張関数
CGIが実行するJavaScriptにはDBへの接続、Bind Parameterを含むSQLを実行する拡張関数が準備されています。
DBへのアクセスは、C言語APIのライブラリを動的にリンクして行われます。
拡張関数の引数、返値にJSON構造体が使用でき、検索結果のレコード群をJSONで返す事や、引数がJSONの
レコード群でテーブルの複数レコードを一括登録・更新するなどの処理が、拡張関数を使えば簡単に行えます。
同一JavaScriptソース中で、Oracle、SqlServer等複数のデータベースを操作することができます。
また、OracleやSqlServer等のDBMSが異なっても、CGJSでは同じJavaScriptソースが使用できます。
ただし、SQL文中の関数、キャスト方法は各DB固有のままなので注意が必要です。
NoSqlのMongoDb、Redisでも集合関数、MAP関数が準備されています。
(3) GUIデバッガー
CGJSのCGIは開発用と本番用の2種類あり、開発用CGIはHTTP接続してきたクライアント端末で起動中のデバッガーと
通信する機能を持っています。この機能により、開発時はクライアント端末にある編集中のJavaScriptをCGIが取得
して実行し、JavaScriptソースにブレークポイントを設定して、STEP実行や、変数の値を参照・設定が可能です。
さらに、JavaScript実行時に関数の引数・返値を表示するトレースログや、console.logでデバッグログを
クライアントのデバッガーに表示することもできます。
(4) セキュリティ対策
不正アクセス防止のため、CGIのサーバー・クライアント間通信でトークン認証・トークンリフレッシュが行えます。
また、端末の放置時間監視タイマーの設定も可能です。
Linuxサーバーの場合、セキュリティソフトSelinux、AppArmorが有効な状態でも、適切に設定すればCGIは動作します。
最初はpermissiveモードでCGJSのデモアプリが正常に動作することを確認し、permissiveモードのログファイルから
Profile、ポリシーのファイルを作成し、SelinuxやAppArmorを有効化してください。
2.Javascriptフレームワーク CGJS-FWのシステム構成
CGJSでのWebアプリの開発は、HTML画面(JavaScript、css)等のFront部を作成する事と、DBにアクセスし、
データを操作するBack End部のAPI(JavaScript)を作成する事です。
CGJSでのWeb開発に必要なプログラム言語はJavaScript、SQLだけですみます。
下図の赤枠・黒字の部分がアプリ開発者が記述する部分で、黒枠・赤字の部分はCGJSフレームワークが提供する機能です。
CGJSワークフレームはWindows版とLinux版を準備しています。Windows10/11にApache2、Sqliteをインストールする
だけで、CGJSワークフレームの機能、生産性が確認できますので、一度お試しください。
まだ至らぬところ等がございましたら、ご意見などいただければ幸いです。
3.CGJSフレームワークのサイトマップ
このページは、CGJSワークフレームの紹介がメインですが、その他にも、
CGJSワークフレームのリファレンス、ダウンロード、インストール等のページがあります。
CGJSワークフレームの全体のサイトマップを以下に示します。
同じリンクが画面上部にもございますので、活用してください。
(1) フレームワークの紹介
フレームワークの紹介、アプリケーショんの構成、Web開発の形態など、
フレームワークの概要を理解していただくページ群です。
(2) CGJSフレームワークのリファレンス
フレームワークの設定パラメータ、Javascriptとのインターフェース、拡張関数など、
フレームワークの仕様を理解していただくページ群です。
(3) CGJSフレームワークのデバッガー
サーバーサイドのJavascriptをデバッグするデバッガーについてのページで、
インストール、画面の構成、操作方法を理解していただくページ群です。
(4) CGJSフレームワークのダウンロード
フレームワークを使用するWeb開発でのOS、データベース毎のインストールファイル、
デバッガーのインストールファイルをダウンロードするページです。
(5) インストール方法の説明
フレームワークを使用するWeb開発でのOS、データベース毎のインストール方法を
説明するページ群です。
(6) デモ用のアプリケーション
CGJSフレームワークでWebアプリを開発するとどうゆうものになるかを示すため、
また、フレームワークのインストールが正しく行われたかを確認するための、
デモ用のアプリケーションの節めいすぉするページ群です。
(7) その他
CGJSフレームワークのライセンス、価格、弊社の会社概要等を説明するページ群です。