サーバーサイド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フレームワークが提供する機能です。
Webアプリの構成
  CGJSワークフレームはWindows版とLinux版を準備しています。Windows10/11にApache2、Sqliteをインストールする
だけで、CGJSワークフレームの機能、生産性が確認できますので、一度お試しください。
まだ至らぬところ等がございましたら、ご意見などいただければ幸いです。
3.CGJSフレームワークのサイトマップ
このページは、CGJSワークフレームの紹介がメインですが、その他にも、
CGJSワークフレームのリファレンス、ダウンロード、インストール等のページがあります。
CGJSワークフレームの全体のサイトマップを以下に示します。
同じリンクが画面上部にもございますので、活用してください。
(1) フレームワークの紹介
フレームワークの紹介、アプリケーショんの構成、Web開発の形態など、
フレームワークの概要を理解していただくページ群です。
  • CGJSフレームワークの紹介・概要
  • CGJSフレームワークでのアプリの処理フロー
  • CGJSフレームワークでのWeb開発形態
  • (2) CGJSフレームワークのリファレンス
    フレームワークの設定パラメータ、Javascriptとのインターフェース、拡張関数など、
    フレームワークの仕様を理解していただくページ群です。
  • CGJSの設定
  •           
  • CGIの起動、I/F
  • JavaScriptの拡張
  •           
  • SQL文のBIND
  • JavaScriptの比較
  •  
    (3) CGJSフレームワークのデバッガー
    サーバーサイドのJavascriptをデバッグするデバッガーについてのページで、
    インストール、画面の構成、操作方法を理解していただくページ群です。
  • デバッガーのインストール
  •           
  • デバッガーの画面の構成
  • デバッガーの環境設定
  •           
  • デバッガーの操作
  • (4) CGJSフレームワークのダウンロード
    フレームワークを使用するWeb開発でのOS、データベース毎のインストールファイル、
    デバッガーのインストールファイルをダウンロードするページです。
  • ダウンロード
  • (5) インストール方法の説明
    フレームワークを使用するWeb開発でのOS、データベース毎のインストール方法を
    説明するページ群です。
    OS:Ubuntu
      複数データベース
      Oracle
      SqlServer
      DB2
      PostgreSql
      Sqlite
               OS:Debian
      複数データベース
      Oracle
      SqlServer
      DB2
      PostgreSql
      Sqlite
         
    OS:CentOs
      複数データベース
      Oracle
      SqlServer
      DB2
      PostgreSql
      Sqlite
               OS:Windows
      複数データベース
      Oracle
      SqlServer
      DB2
      PostgreSql
      Sqlite
    (6) デモ用のアプリケーション
    CGJSフレームワークでWebアプリを開発するとどうゆうものになるかを示すため、
    また、フレームワークのインストールが正しく行われたかを確認するための、
    デモ用のアプリケーションの節めいすぉするページ群です。
  • はじめに
  •           
  • 人口一覧画面
  • 人口詳細画面
  •           
    (7) その他
    CGJSフレームワークのライセンス、価格、弊社の会社概要等を説明するページ群です。
  • ライセンス等
  •           
  • 価格、団体割引
  • 法律に基づく表記
  •           
  • 連絡・問合わせ等
  • ライセンスの見積
  •           
  • License管理Tool