AppMLアーキテクチャ


現代のWebアーキテクチャ

AppMLは、最新のWeb開発の技術とアイデアを組み合わせたものです。

AppMLは、速度、シンプルさ、および低コストに重点を置いています。

  • 低価格
  • 迅速でアジャイルなWeb開発
  • クラウドコンピューティング向けに最適化
  • 高速および低帯域幅の消費
  • MVC(モデルVievコントローラー)アーキテクチャ
  • プレゼンテーションからのコンテンツの完全な分離
  • 高度にスケーラブルでテスト可能
  • 簡単な構成と再構成
  • アプリケーションの実行中の再構成
  • ユーザーアカウントとロールのスマートサポート

MVCアーキテクチャ

 

AppMLはMVCアーキテクチャを使用します

MVCは、Model、View、Controllerの略です

モデルアプリケーションを記述します。

ビューデータが表示されます。

コントローラアプリケーションを制御します(もちろん)。

 

ウィキペディア: モデル、ビュー、コントローラー

        MVC

モデル-JSONだけ

モデルはアプリケーションを記述します。

このモデルは、さまざまなハードウェアおよびソフトウェアプラットフォーム(サーバー、PC、iPhone、タブレットなど)で再利用できます。

このモデルは、プレゼンテーションやユーザーインターフェイス(UI)とは関係ありません。

モデルはJSONで記述されています。

モデル

{
"rowsperpage" : 10,
"database" : {
    "connection" : "localmysql",
    "sql" : "SELECT CustomerName, City, Country FROM Customers",
    "orderby" : "CustomerName"
},
"filteritems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}
],
"sortitems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}
]
}

ビュー-HTMLだけ

ビューは、データを表示(および入力)するためのUI(ユーザーインターフェイス)です。

ビューはHTMLとCSSで書かれています:

HTMLビュー

<!DOCTYPE html>
<html lang="en-US">
<title>Customers</title>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<script src="https://www.w3schools.com/appml/2.0.3/appml.js"></script>
<body>

<div class="w3-container" appml-data="local?model=model_customers">
<h1>Customers</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>
<table class="w3-table-all">
  <tr>
    <th>Customer</th>
    <th>City</th>
    <th>Country</th>
  </tr>
  <tr appml-repeat="records">
    <td>{{CustomerName}}</td>
    <td>{{City}}</td>
    <td>{{Country}}</td>
</tr>
</table>
</div>

</body>
</html>

コントローラー-クライアントおよび/またはサーバースクリプト

Webページのクライアントスクリプトは、アプリケーションを制御できます。

  • AppMLは、モデルで定義されたとおりにデータを表示できます
  • AppMLは、HTML属性で定義されたデータを表示できます。
  • AppMLアプリケーションはHTMLから独立して実行できます(非表示)
  • (オプション)AppMLはWebサーバー(SQLサーバー)からモデルデータを要求できます
  • (オプション)AppMLユーザーはデータを編集できます
  • (オプション)AppMLはデータをWebサーバーに送信できます

サーバースクリプトは、次の方法でアプリケーションを制御できます。

  • クライアント(ブラウザ)からのリクエストの受信
  • クライアントにデータを返す
  • クライアントからデータを受信する
  • サーバー上のデータを更新しています
  • 認証とセキュリティの世話をする

プログラミングの芸術

アプリケーションのサイズと複雑さを低く抑えることは、すべてのプログラミングの主な問題です。

コンピュータアプリケーションの複雑さを制御することは、プログラミングの真の芸術です。


宣言型プログラミング

ソフトウェア開発は、多くの場合、期限と予算を破ります。完成したソフトウェアは、多くの場合、コーディングエラーでいっぱいです。これは、コンピューターコードの開発、テスト、および保守が難しいためです。

コーディングが終了しました。あなたはそれを行う方法ではなく、何をすべきかをより多く説明する必要 あります

AppMLを使用すると、モデルビューでアプリケーション を宣言できます。

AppMLを使用すると、コーディングする必要が少なくなります(場合によっては何もありません)

ウィキペディア: 宣言型プログラミング


迅速でアジャイルなアプリケーション開発

コンピュータアプリケーションの複雑さを制御することは、プログラミングの真の芸術です。

アプリケーションのサイズと複雑さを制御下に保つことは、すべてのプログラミングの主な問題です。

RADは、ラピッドプロトタイピングを優先して最小限の計画を使用するソフトウェア開発方法です。

AppMLは、従来の開発方法よりも最大100倍高速な、超高速のプロトタイピングを提供します。

アプリケーションのプロトタイプは、コーディングなしで、アプリケーションモデルから直接実行できます。

ウィキペディア:迅速なアプリケーション開発

アジャイルソフトウェア開発は、段階的な開発に基づく方法であり、ソリューションはユーザーと開発者が協力して作成します。

AppMLを使用すると、プロトタイプから完全なアプリケーションまで、アプリケーションを段階的に少しずつ作成できます。

ウィキペディア:アジャイルソフトウェア開発


コードファースト

Webアプリケーションは、次の2つの方法で開発できます。

1.コードファースト:事前にプログラムされ、事前にテストされたコードを使用して、新しいアプリケーションの説明のみを追加します。

2.最初の契約:完全なアプリケーション要件の説明を使用して、アプリケーションを最初からコーディングします。

AppMLは、最も合理的な概念である コードファーストを使用します。


サービス指向アーキテクチャー(SOA)

サービス指向アーキテクチャー(SOA)は、Webアプリケーションを構築するためのアーキテクチャーです。

SOAは、低い開発コストと高い柔軟性を提供します。

SOAを使用すると、アプリケーションを最初から、または既存のITインフラストラクチャから作成し、さまざまなアプリケーションでさまざまなハードウェアおよびソフトウェアで使用できます。

SOAは、 MVCおよび宣言型プログラミングに最適です。データは方法を気にせずに簡単に消費できます。


ウェブサービス

Webサービスは、Webページと同じように、URLで識別されるデータへのインターフェイスです

Webサービスは、情報を伝達する方法のみがWebページと異なります。

一般的なWebサービスは、Webページにのみデータを提供します。

AppMLでは、HTMLがユーザーインターフェイスであり、Webサービスがデータを提供します。

オリジナルのWebサービスは、SOAP、WSDL、UDDIなどのXML標準を使用するように設計されていました。

AppMLのような最新のWebサービスははるかに使いやすいです。

  • 理解しやすい-人間が読むことができる
  • 軽量-不要なコードやマークアップはありません
  • 実装が簡単-開発ツールは必要ありません

Webサービスの利点

  • Webサービスはコードの小さな単位です
  • Webサービスは、限られた一連のタスクを処理するように設計されています
  • WebサービスはHTTPベースの通信プロトコルを使用します
  • Webサービスはオペレーティングシステムから独立しています
  • Webサービスはプログラミング言語に依存しません
  • Webサービスは、さまざまなアプリケーション、システム、およびデバイスを接続できます
  • Webサービスにより、情報の配布が容易になります
  • Webサービスは迅速なアプリケーション開発を支持します

例:他のアプリケーションに証券取引所の価格を提供するように設計された小さなプログラム。

例:フライトスケジュールとチケット予約システム。

WebサービスはHTTPを使用するため、オペレーティングシステムとプログラミング言語の両方に依存しません。


クラウドコンピューティング

クラウドコンピューティングはSOAの拡張です:サービスとしてのアプリケーション、サービスとしてのストレージ、サービスとしてのデータ。

ほとんどの人にとって、クラウドコンピューティングとは、データをWebに保存することです。

  • メールとカレンダー
  • ドキュメントとスプレッドシート
  • 本、メモ、やることリスト
  • 音楽、写真、映画
  • データベースとアプリケーション

理由はかなり明白です:

  • どこからでもデータにアクセスできるようにする
  • 私のデータを他の人と共有するため
  • ハードウェアの変更やクラッシュに耐えるため

AppMLを使用すると、データベースとアプリケーションの両方をクラウドに配置するのは非常に簡単です。