Arsitektur AppML


Arsitektur Web Modern

AppML menggabungkan teknik dan ide paling mutakhir dari pengembangan web modern.

AppML fokus pada kecepatan, kesederhanaan, dan biaya rendah:

  • Biaya rendah
  • Pengembangan Web yang Cepat dan Lincah
  • Dioptimalkan untuk Komputasi Awan
  • Kecepatan Tinggi dan Konsumsi Bandwidth Rendah
  • Arsitektur MVC (Model Viev Controller)
  • Pemisahan Penuh Konten dari Presentasi
  • Sangat Terukur dan Dapat Diuji
  • Konfigurasi dan Konfigurasi Ulang yang Mudah
  • Konfigurasi ulang saat aplikasi sedang berjalan
  • Dukungan Cerdas untuk Akun dan Peran Pengguna

Arsitektur MVC

 

AppML menggunakan Arsitektur MVC

MVC adalah singkatan dari Model, View, Controller

Model menjelaskan aplikasi Anda .

Tampilan menampilkan data Anda .

Controller mengontrol aplikasi Anda (tentu saja).

 

Wikipedia: Model, Tampilan, Pengontrol

        MVC

MODEL - Hanya JSON

Model menjelaskan aplikasi.

Model ini dapat digunakan kembali pada platform perangkat keras dan perangkat lunak yang berbeda (Server, PC, iPhone, Tablet, dll.).

Model tidak memperhatikan presentasi atau antarmuka pengguna (UI).

Modelnya ditulis dalam JSON:

Model

{
"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 - Hanya HTML

Tampilannya adalah UI (User Interface) untuk menampilkan (dan menginput) data.

Tampilan ditulis dalam HTML dan CSS:

Tampilan 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>

CONTROLLER - Skrip Klien dan/atau Server

Skrip klien di halaman web dapat mengontrol aplikasi:

  • AppML dapat menampilkan data seperti yang didefinisikan dalam model
  • AppML dapat menampilkan data seperti yang didefinisikan oleh atribut HTML.
  • Aplikasi AppML dapat berjalan secara independen dari HTML (tersembunyi)
  • (Opsional) AppML dapat meminta data model dari server web (SQL server)
  • (Opsional) Pengguna AppML dapat mengedit data
  • (Opsional) AppML dapat mengirim data ke server web

Skrip server dapat mengontrol aplikasi dengan:

  • Menerima permintaan dari klien (browser)
  • Mengembalikan data ke klien
  • Menerima data dari klien
  • Memperbarui data di server
  • Menjaga otentikasi dan keamanan

Seni Pemrograman

Menjaga ukuran dan kompleksitas aplikasi tetap rendah, adalah masalah utama semua pemrograman.

Mengontrol kompleksitas aplikasi komputer, adalah seni pemrograman yang sebenarnya.


Pemrograman Deklaratif

Pengembangan perangkat lunak sering melanggar tenggat waktu dan anggaran. Perangkat lunak yang sudah jadi seringkali penuh dengan kesalahan pengkodean. Ini karena kode komputer sulit untuk dikembangkan, diuji, dan dipelihara.

Pengkodean Keluar . Anda harus menjelaskan lebih banyak Apa yang harus dilakukan, lebih sedikit Bagaimana melakukannya.

Dengan AppML Anda Mendeklarasikan aplikasi Anda di Model dan di View .

Dengan AppML ada lebih sedikit (terkadang tidak ada) kode .

Wikipedia: Pemrograman Deklaratif


Pengembangan Aplikasi yang Cepat dan Agile

Mengontrol kompleksitas aplikasi komputer adalah seni pemrograman yang sebenarnya.

Menjaga ukuran dan kompleksitas aplikasi di bawah kendali adalah masalah utama dari semua pemrograman.

RAD adalah metode pengembangan perangkat lunak yang menggunakan perencanaan minimal yang mendukung pembuatan prototipe cepat.

AppML memberikan prototyping super cepat, hingga 100 kali lebih cepat daripada metode pengembangan tradisional.

Prototipe aplikasi dapat dijalankan langsung dari model aplikasi, tanpa coding apapun.

Wikipedia: Pengembangan Aplikasi Cepat

Pengembangan perangkat lunak tangkas adalah metode yang didasarkan pada pengembangan langkah demi langkah, di mana solusi dibuat oleh pengguna dan pengembang dalam kolaborasi.

Dengan AppML, aplikasi dapat ditulis langkah demi langkah, sedikit demi sedikit, dari prototipe hingga aplikasi lengkap.

Wikipedia: Pengembangan Perangkat Lunak Agile


Kode Pertama

Aplikasi web dapat dikembangkan dengan dua cara berbeda:

1. Kode Pertama: Menggunakan kode yang telah diprogram dan telah diuji sebelumnya, hanya menambahkan deskripsi aplikasi baru.

2. Kontrak Pertama: Mengkodekan aplikasi dari awal menggunakan deskripsi persyaratan aplikasi lengkap.

AppML menggunakan konsep yang paling rasional: Code First .


Arsitektur Berorientasi Layanan (SOA)

Service Oriented Architecture (SOA) adalah arsitektur untuk membangun aplikasi web.

SOA menawarkan biaya pengembangan yang rendah dan fleksibilitas yang tinggi.

Dengan SOA , aplikasi dapat dibuat dari awal, atau dari infrastruktur TI yang ada, dan digunakan, oleh aplikasi yang berbeda, pada perangkat keras dan perangkat lunak yang berbeda.

SOA sangat cocok untuk MVC dan Pemrograman Deklaratif , di mana data dapat dengan mudah dikonsumsi tanpa khawatir tentang caranya.


Layanan web

Layanan Web adalah antarmuka ke data, yang diidentifikasi oleh URL, seperti halnya halaman web.

Layanan Web berbeda dari halaman web, hanya dalam cara mengkomunikasikan informasi.

Layanan Web biasa hanya menyediakan data ke halaman web.

Dengan AppML, HTML adalah antarmuka pengguna, Layanan Web menyediakan data.

Layanan Web Asli dirancang untuk menggunakan standar XML seperti SOAP, WSDL, dan UDDI.

Layanan Web modern seperti AppML jauh lebih mudah digunakan.

  • Lebih mudah dipahami - Dapat dibaca oleh manusia
  • Ringan - tidak ada kode atau markup yang tidak perlu
  • Mudah diimplementasikan - tidak diperlukan alat pengembangan

Manfaat Layanan Web

  • Layanan web adalah unit kecil kode
  • Layanan web dirancang untuk menangani serangkaian tugas terbatas
  • Layanan web menggunakan protokol komunikasi berbasis HTTP
  • Layanan web tidak bergantung pada sistem operasi
  • Layanan web tidak bergantung pada bahasa pemrograman
  • Layanan web dapat menghubungkan berbagai aplikasi, sistem, dan perangkat
  • Layanan Web memudahkan untuk mendistribusikan informasi
  • Layanan Web mendukung pengembangan aplikasi yang cepat

Contoh: Sebuah program kecil yang dirancang untuk memasok aplikasi lain dengan harga bursa.

Contoh: Jadwal penerbangan dan sistem reservasi tiket.

Karena layanan web menggunakan HTTP, mereka tidak bergantung pada sistem operasi dan bahasa pemrograman.


Komputasi awan

Cloud Computing adalah perpanjangan dari SOA: Aplikasi sebagai layanan, Penyimpanan sebagai layanan, Data sebagai layanan.

Bagi kebanyakan orang, Cloud Computing adalah tentang menyimpan data di web:

  • Email dan kalender
  • Dokumen dan spreadsheet
  • Buku, catatan, dan daftar tugas
  • Musik, gambar, dan film
  • Database dan aplikasi

Alasannya cukup jelas:

  • Untuk memiliki akses ke data dari mana saja
  • Untuk berbagi data saya dengan orang lain
  • Untuk bertahan dari perubahan perangkat keras atau crash

Dengan AppML, sangat mudah untuk menempatkan database dan aplikasi di cloud.