Application Development

プライベート・クラウドサービスを運用する企業様向けに、Web以前のクライアント・サーバモデルを進化させた ブラウザ・サーバモデルでSingle Page Application(SPA)の開発を支援致します。

複雑に進化を遂げた Web アプリケーション環境は、今やエネルギーコストの削減のために、新たな変革の時代を迎えています。 加えてWeb アプリケーションにこれまで以上に期待されているのは、Native Applicationからの置き換えです。 WSDでは、Single Page Application(SPA)の開発手法について方法論を開発しました。

Single Page Application 開発

Web以前の開発スタイルのまま既存のコードとしてのフレームワークを用いずに、JavaScript NativeでSingle Page Applicationをシームレスに開発可能にする、アプリケーション・フレームワークです。

WSDの提示するフレームワークとは、コーディングの考え方、意思決定、分析、問題解決、などの枠組みです。

このフレームワークは、サーバサイドとクライアントサイドをJavaScriptでシームレスに開発することで、通常利用されるMVCフレームワークは必要としません。 併せて、SPAに用いられるフレームワークも必要としません。

従って、それらフレームワークの導入によって引き起こされるHTMLの語彙を拡張する必要も、またHTMLが動的ビュー用に設計されていない根本的な問題に対処する必要も、不要です。

ブラウザ・サーバモデル

ブラウザ・サーバモデルとは、Webサービスをコントロールする主体がブラウザにあるという次世代のWeb アプリケーションの形です。

これは、Web以前のクライアント・サーバモデルを進化させ、ブラウザとサーバに役割を分離してSingle Page Applicationを開発するモデルです。

ブラウザ・サーバモデルをこれまでの表現で表すと、以下になります。

  • Browser = View + View-model + Client-side-controller
  • Server = Server-side-controller + Model
  • コードで言うと、

  • View = html + css + JavaScript (固定のページと画面のレイアウトを制御するコード)
  • View-model = DOM+html+JavaScript (画面の要素の制御とビジネスロジック)
  • Client-side-controller = JavaScript (クライアント側のコントローラ)
  • Server-side-controller = JavaScript (サーバ側のコントローラ)
  • Model = JavaScript + SQL + REST (ビジネスロジックとDBアクセス)
  • JavaScript Native

    さらに、ネイティブなエクスペリエンス、つまりネイティブ・アプリケーションに匹敵するほどのエクスペリエンスを実現することです。

    これらを可能にする能力は以前からWebブラウザーに備わっているものの、Web開発はネイティブ・アプリケーションの開発に比べ、まだまだ発達しきれていません。

    WSDでは、ネイティブアプリに逼迫するためのJavaScript Nativeの開発手法や、ネイティブアプリと遜色ないUIを実現するブラウザのイベントモデルとアルゴリズムについて長年研究してきました。

    加えてシングルページ・アプリケーションを開発する過程で、既存のフレームワークというものが必要ないことを確信しました。

    資産としてのコードとラピッド・プロトタイピング

    一度開発された有効なコードは、継続したメンテナンスが必要です。従って、いつまでも誰でも読めるコードであることが要求されます。

    そこでWSDではコードを資産化する要件に、ソリューションとなる2StepのサーバサイドのJavaScript環境を提示します。

  • 1st StepではJaxerによるプロトタイプ・コードの開発
  • 2nd StepではNode.jsによる本番コードの開発
  • 3rd StepではGolangによる本番コードの開発
  • server sideのJavascriptのプログラミングの難易度をJaxerとNode.jsで比較すると、Node.jsでのcallbackプログラミングは非常に難易度が高い。

    このため、最初に逐次性のコードが書けるJaxerの環境でプロトタイプ・コードの開発を行います。Jaxerは、ラピッドなserver side開発を可能にします。

    最初にJaxerで記述するコードは、その後開発するコードのプロトタイプ兼仕様書になります。 次に、プロトタイプが完成したら、応答性能を要求する処理をnode.jsやGolangで、逐次置き換えていきます。 Golangの実行プログラムは、panicを起こして処理が停止しても、サービスそのものは停止しません。

    置き換えを容易にするために、クライアント側でのフォールバック処理を準備しました。

    このフォールバック処理は、node.jsやGoの処理が失敗した時に、代替え処理にリクエストを切り替えるものです。 これにより、Node.jsやGolangでの処理に対し既存のJaxerの処理をフォールバックとして利用することで、可用性を高めることが出来ます。

    シームレスなインターフェイス

    加えて、Jaxer及びNode.js双方共通の、クライアントからサーバfunctionをシームレスに呼び出す"wsd_callback"インターフェイスを開発しました。

    これによって、プログラマは、サーバとクライアントの接続を意識する必要が無くなります。

    併せて、サーバサイドをJaxerからNode.jsに置き換えるコストを、最小にします。

    インターネットにつながないIoT

    ビズネス・Webアプリケーションのネットワーク セキュリティの脅威は以前より増しています。

    そこでWSDでは「インターネットにつながないIoT」を提唱し、インターネットから切り離されたプライベートな領域でサービスを提供します。

    次世代のWebシステムを提示

    グローバル・レベルで活動する企業では、日々のビジネス環境の変化に対応するため、データセンターの環境がさらに複雑化する課題に直面しています。

    そこでWSDでは複雑化する環境に対応し従来型のデータセンターの初期投資を抑え、スケーラビリティの最大化、運営コスト及びネットワークトラフィックの削減という要件に、ソリューションとなる次世代のWebシステムを提示します。

    マッシュアップ+Webサービス=アプリケーション

    これからのアプリケーションはWebサービスの集合体で構成され、このサービスをマッシュアップ(制御し統合)する主体は、ブラウザになります。

    従ってプログラマは、既存のフレームワークを用いないSingle Page Applicationによって、MVCという宗教の教義であるMVCモデルの呪縛から解放されます。