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