AppML アーキテクチャ


現代の Web アーキテクチャ

AppML は、最新の技術と近代的な web 開発のアイデアを兼ね備えています。

AppML は、スピード、シンプル、低コストに焦点を当てています:


MVC アーキテクチャ

 

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

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

Model は、アプリケーションを記述します。

View は、データを表示します。

Controller は、もちろんアプリケーションを制御します。

 

Wikipedia: Model, View, Controller

        MVC

MODEL - 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"}
]
}

VIEW - HTML

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

ビューは、HTML と CSS で記述します:

HTML ビュー

<!DOCTYPE html>
<html lang="ja">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src="http://www.w3schools.com/appml/2.0.3/appml.js"></script>
<body>

<div class="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="table table-striped table-bordered">
<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>
Try It Yourself »

CONTROLLER - クライアント・サーバースクリプト

Web ページ内のクライアントスクリプトは、アプリケーションを制御することができます:

サーバスクリプトは、以下によりアプリケーションを制御することができます:


プログラミングの芸術

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

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


宣言型プログラミング

ソフトウェア開発は、よく期限や予算を超える場合があります。完成したソフトウェアには、時としてコーディングエラーが 多数あったりします。これは、コンピュータコードの開発、テスト、メンテナンスが難しいためです。

コーディングは Out(?)です。何をするについては多くを、 どのようするかについては少なく記述すべきです。

AppML により、ModelView 内にアプリケーションを宣言します。

AppML により、コードを減少 (時により無しに) します

Wikipedia: Declarative Programming


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

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

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

RAD は、ラピッドプロトタイピングを採用し、計画を最小限に抑えたソフトウェア開発手法です。

AppML は、従来の開発手法よりも最大100倍まで速い、超高速プロトタイピングを実現します。

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

Wikipedia: Rapid Application Development

アジャイルソフトウェア開発は、ステップバイステップの開発に基づく手法で、 ソリューションはユーザと開発者の共同によって作成されます。

AppML では、アプリケーションをプロトタイプから完全なアプリケーションに、少しずつ、段階的に書き込むことができます。

Wikipedia: Agile Software Development


コードファースト

web アプリケーションは、2つの異なる方法で開発することができます:

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

2. コントラクトファースト:完全なアプリケーションの要求記述を使用して、最初からアプリケーションをコーディングします。

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


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

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

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

SOA を使用すると、最初からでも、既存の IT インフラからでもアプリケーションは作成することができます。 このアプリケーションは、異なるハードウェアやソフトウェア上の様々なアプリケーションで使用することができます。

SOA は、データを方法に関する心配なしに簡単に消費することができる、 MVC宣言型プログラミングに最適です。 (SOA is a perfect fit for MVC and Declarative Programming, where data can be easily consumed without the concern about how.)


Web サービス

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

Web サービスは、情報を伝達する方法だけで web ページとは異なります。

代表的な Web サービスは、Web ページにデータを提供するだけです。

AppML を使用すれば、HTML はユーザインタフェースで、Web サービス はデータを提供するものです。

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

AppML のような現代の Web サービスは、以下の点で使用するのが非常に簡単になっています。


Web サービスの利点

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

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

web サービスは、HTTPを使用しているので、オペレーティングシステムやプログラミング言語の両方から独立しています。


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

クラウドコンピューティングSOA を拡張したものです:Application-as-a service、 Storage-as-a-service、Data-as-a-service。

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

理由はかなり明白です:

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