สถาปัตยกรรมAppML


สถาปัตยกรรมเว็บสมัยใหม่

AppML ผสมผสานเทคนิคและแนวคิดที่ทันสมัยที่สุดในการพัฒนาเว็บสมัยใหม่

AppML มุ่งเน้นไปที่ความเร็ว ความเรียบง่าย และต้นทุนต่ำ:

  • ราคาถูก
  • การพัฒนาเว็บที่รวดเร็วและคล่องตัว
  • ปรับให้เหมาะสมสำหรับการประมวลผลแบบคลาวด์
  • ความเร็วสูงและการใช้แบนด์วิดท์ต่ำ
  • สถาปัตยกรรม MVC (ตัวควบคุม Model Viev)
  • การแยกเนื้อหาจากการนำเสนอทั้งหมด
  • ปรับขนาดได้สูงและทดสอบได้
  • กำหนดค่าและกำหนดค่าใหม่ได้ง่าย
  • การกำหนดค่าใหม่ในขณะที่แอปพลิเคชันกำลังทำงานอยู่
  • การสนับสนุนที่ชาญฉลาดสำหรับบัญชีผู้ใช้และบทบาท

สถาปัตยกรรม MVC

 

AppML ใช้สถาปัตยกรรม MVC

MVC ย่อมาจาก Model, View, Controller

โมเดลจะอธิบายการใช้งานของคุณ

มุมมองจะแสดงข้อมูลของคุณ

ตัวควบคุมจะควบคุมแอปพลิเคชันของคุณ (แน่นอน)

 

วิกิพีเดีย: แบบจำลอง ดู ตัวควบคุม

        MVC

รุ่น - Just JSON

โมเดลอธิบายการใช้งาน

โมเดลนี้ใช้ซ้ำได้บนแพลตฟอร์มฮาร์ดแวร์และซอฟต์แวร์ต่างๆ (เซิร์ฟเวอร์, พีซี, 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>

The CONTROLLER - สคริปต์ไคลเอนต์และ/หรือเซิร์ฟเวอร์

สคริปต์ไคลเอนต์ในหน้าเว็บสามารถควบคุมแอปพลิเคชัน:

  • AppML สามารถแสดงข้อมูลตามที่กำหนดใน model
  • AppML สามารถแสดงข้อมูลตามที่กำหนดโดยแอตทริบิวต์ HTML
  • แอปพลิเคชัน AppML สามารถทำงานโดยไม่ขึ้นกับ HTML (ซ่อน)
  • (ทางเลือก) AppML สามารถขอข้อมูลโมเดลจากเว็บเซิร์ฟเวอร์ (เซิร์ฟเวอร์ SQL)
  • (ทางเลือก) ผู้ใช้ AppML สามารถแก้ไขข้อมูลได้
  • (ทางเลือก) AppML สามารถส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์

สคริปต์เซิร์ฟเวอร์สามารถควบคุมแอปพลิเคชันได้โดย:

  • รับคำขอจากลูกค้า (เบราว์เซอร์)
  • คืนข้อมูลให้ลูกค้า
  • รับข้อมูลจากลูกค้า
  • กำลังอัปเดตข้อมูลบนเซิร์ฟเวอร์
  • ดูแลการตรวจสอบและความปลอดภัย

ศิลปะแห่งการเขียนโปรแกรม

การรักษาขนาดและความซับซ้อนของแอปพลิเคชันให้ต่ำ เป็นปัญหาหลักของการเขียนโปรแกรมทั้งหมด

การควบคุมความซับซ้อนของแอปพลิเคชันคอมพิวเตอร์เป็นศิลปะที่แท้จริงของการเขียนโปรแกรม


การเขียนโปรแกรมประกาศ

การพัฒนาซอฟต์แวร์มักจะทำลายเส้นตายและงบประมาณ ซอฟต์แวร์สำเร็จรูปมักเต็มไปด้วยข้อผิดพลาดในการเข้ารหัส เนื่องจากรหัสคอมพิวเตอร์นั้นยากต่อการพัฒนา ทดสอบ และบำรุงรักษา

การเข้ารหัสหมด คุณควรอธิบายเพิ่มเติม ว่าต้องทำ อะไร ให้น้อยลงทำอย่างไร

ด้วย AppML คุณประกาศแอปพลิเคชันของคุณใน Modelและ ในView

ด้วยAppML โค้ด . _

Wikipedia: การเขียนโปรแกรมการประกาศ


การพัฒนาแอปพลิเคชันที่รวดเร็วและคล่องตัว

การควบคุมความซับซ้อนของแอพพลิเคชั่นคอมพิวเตอร์เป็นศิลปะที่แท้จริงของการเขียนโปรแกรม

การรักษาขนาดและความซับซ้อนของแอปพลิเคชันภายใต้การควบคุมเป็นปัญหาหลักของการเขียนโปรแกรมทั้งหมด

RAD เป็นวิธีการพัฒนาซอฟต์แวร์ที่ใช้การวางแผนน้อยที่สุดเพื่อสนับสนุนการสร้างต้นแบบอย่างรวดเร็ว

AppML นำเสนอการสร้างต้นแบบที่เร็วมาก เร็วกว่าวิธีการพัฒนาแบบเดิมถึง 100 เท่า

ต้นแบบแอปพลิเคชันสามารถรันได้โดยตรงจากโมเดลแอปพลิเคชัน โดยไม่ต้องเขียนโค้ดใดๆ

Wikipedia: การพัฒนาแอปพลิเคชันอย่างรวดเร็ว

การพัฒนาซอฟต์แวร์แบบ Agile เป็นวิธีการที่มีพื้นฐานมาจากการพัฒนาแบบเป็นขั้นเป็นตอน โดยที่ผู้ใช้และนักพัฒนาร่วมกันสร้างโซลูชันขึ้นมา

ด้วย AppML คุณสามารถเขียนแอปพลิเคชันได้ทีละน้อยทีละน้อย ตั้งแต่ต้นแบบไปจนถึงแอปพลิเคชันเต็มรูปแบบ

Wikipedia: การพัฒนาซอฟต์แวร์ Agile


รหัสก่อน

เว็บแอปพลิเคชันสามารถพัฒนาได้สองวิธี:

1. รหัสก่อน: ใช้รหัสที่ทดสอบไว้ล่วงหน้าซึ่งตั้งโปรแกรมไว้ล่วงหน้า เพิ่มเฉพาะคำอธิบายแอปพลิเคชันใหม่เท่านั้น

2. ทำสัญญาก่อน: เข้ารหัสแอปพลิเคชันตั้งแต่เริ่มต้นโดยใช้คำอธิบายข้อกำหนดการสมัครแบบเต็ม

AppMLใช้แนวคิดที่มีเหตุผลที่สุด: Code First


สถาปัตยกรรมเชิงบริการ (SOA)

สถาปัตยกรรมเชิงบริการ (SOA)เป็นสถาปัตยกรรมสำหรับการสร้างเว็บแอปพลิเคชัน

SOAให้ต้นทุนการพัฒนาต่ำและมีความยืดหยุ่นสูง

ด้วยSOAแอปพลิเคชันสามารถสร้างได้ตั้งแต่เริ่มต้น หรือจากโครงสร้างพื้นฐานด้านไอทีที่มีอยู่ และใช้งานโดยแอปพลิเคชันต่างๆ บนฮาร์ดแวร์และซอฟต์แวร์ที่แตกต่างกัน

SOAเหมาะอย่างยิ่งสำหรับMVCและDeclarative Programmingซึ่งสามารถใช้ข้อมูลได้อย่างง่ายดายโดยไม่ต้องกังวลว่าจะทำอย่างไร


บริการเว็บ

บริการเว็บเป็นส่วนต่อประสานกับข้อมูลซึ่งระบุโดย URL เช่นเดียวกับหน้าเว็บ

Web Service แตกต่างจาก หน้าเว็บ เฉพาะในวิธีการสื่อสารข้อมูลเท่านั้น

Web Serviceทั่วไปให้ข้อมูลกับหน้าเว็บเท่านั้น

ด้วย AppML HTML เป็นส่วนติดต่อผู้ใช้บริการเว็บให้ข้อมูล

Original Web Servicesออกแบบมาเพื่อใช้มาตรฐาน XML เช่น SOAP, WSDL และ UDDI

Modern Web Servicesเช่น AppML ใช้งานง่ายกว่ามาก

  • เข้าใจง่ายขึ้น - มนุษย์สามารถอ่านได้
  • น้ำหนักเบา - ไม่มีโค้ดหรือมาร์กอัปที่ไม่จำเป็น
  • ใช้งานง่าย - ไม่ต้องใช้เครื่องมือในการพัฒนา

ประโยชน์ของบริการเว็บ

  • บริการเว็บเป็นหน่วยเล็ก ๆ ของรหัส
  • บริการเว็บออกแบบมาเพื่อจัดการกับชุดงานที่จำกัด
  • บริการเว็บใช้โปรโตคอลการสื่อสารที่ใช้ HTTP
  • บริการเว็บเป็นอิสระจากระบบปฏิบัติการ
  • บริการเว็บไม่ขึ้นกับภาษาโปรแกรม
  • บริการเว็บสามารถเชื่อมต่อแอปพลิเคชัน ระบบ และอุปกรณ์ต่างๆ ได้
  • Web Services ทำให้ง่ายต่อการเผยแพร่ข้อมูล
  • บริการเว็บสนับสนุนการพัฒนาแอปพลิเคชันอย่างรวดเร็ว

ตัวอย่าง: โปรแกรมขนาดเล็กที่ออกแบบมาเพื่อจัดหาแอปพลิเคชันอื่นๆ ด้วยราคาหุ้น

ตัวอย่าง: ตารางเที่ยวบินและระบบจองตั๋ว

เนื่องจากบริการเว็บใช้ HTTP จึงไม่ขึ้นกับทั้งระบบปฏิบัติการและภาษาโปรแกรม


คลาวด์คอมพิวติ้ง

Cloud Computingเป็นส่วนขยายของ SOA: Application-as-a service, Storage-as-a-service, Data-as-a-service

สำหรับคนส่วนใหญ่ Cloud Computing เกี่ยวกับการจัดเก็บข้อมูลบนเว็บ:

  • อีเมลและปฏิทิน
  • เอกสารและสเปรดชีต
  • หนังสือ บันทึกย่อ และรายการสิ่งที่ต้องทำ
  • เพลง รูปภาพ และภาพยนตร์
  • ฐานข้อมูลและแอปพลิเคชัน

เหตุผลค่อนข้างชัดเจน:

  • เพื่อเข้าถึงข้อมูลจากทุกที่
  • เพื่อแบ่งปันข้อมูลของฉันกับผู้อื่น
  • เพื่อความอยู่รอดของฮาร์ดแวร์ที่เปลี่ยนแปลงหรือล่ม

ด้วย AppML มันง่ายมากที่จะใส่ทั้งฐานข้อมูลและแอปพลิเคชันในคลาวด์