Architektura AppML


Nowoczesna architektura internetowa

AppML łączy w sobie najnowocześniejsze techniki i idee współczesnego tworzenia stron internetowych.

AppML koncentruje się na szybkości, prostocie i niskich kosztach:

  • Niska cena
  • Szybkie i zwinne tworzenie stron internetowych
  • Zoptymalizowany pod kątem przetwarzania w chmurze
  • Wysoka prędkość i niskie zużycie przepustowości
  • Architektura MVC (Model View Controller)
  • Pełne oddzielenie treści od prezentacji
  • Wysoce skalowalny i testowalny
  • Łatwa konfiguracja i rekonfiguracja
  • Ponowna konfiguracja podczas działania aplikacji
  • Inteligentne wsparcie dla kont użytkowników i ról

Architektura MVC

 

AppML wykorzystuje architekturę MVC

MVC oznacza model, widok, kontroler

Model opisuje twoją aplikację.

Widok wyświetla Twoje dane.

Kontroler kontroluje Twoją aplikację (oczywiście).

 

Wikipedia: model, widok, kontroler

        MVC

MODEL - Tylko JSON

Model opisuje aplikację.

Model nadaje się do wielokrotnego użytku na różnych platformach sprzętowych i programowych (serwer, komputer PC, iPhone, tablety itp.).

Model nie dotyczy prezentacji ani interfejsu użytkownika (UI).

Model jest napisany w 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"}
]
}

WIDOK - Tylko HTML

Widok jest interfejsem użytkownika (interfejsem użytkownika) służącym do wyświetlania (i wprowadzania) danych.

Widok jest napisany w HTML i CSS:

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

KONTROLER — Skrypty klienta i/lub serwera

Skrypt klienta na stronie internetowej może sterować aplikacją:

  • AppML może wyświetlać dane zgodnie z definicją w modelu
  • AppML może wyświetlać dane zgodnie z definicją atrybutów HTML.
  • Aplikacje AppML mogą działać niezależnie od HTML (ukryte)
  • (Opcjonalnie) AppML może żądać danych modelu z serwera WWW (serwera SQL)
  • (Opcjonalnie) Użytkownicy AppML mogą edytować dane
  • (Opcjonalnie) AppML może wysyłać dane do serwera WWW

Skrypt serwera może sterować aplikacją poprzez:

  • Otrzymywanie zapytań od klienta (przeglądarki)
  • Zwrot danych do klienta
  • Otrzymywanie danych od klienta
  • Aktualizacja danych na serwerze
  • Dbanie o uwierzytelnienie i bezpieczeństwo

Sztuka programowania

Utrzymywanie rozmiaru i złożoności aplikacji na niskim poziomie jest głównym problemem wszelkiego programowania.

Kontrolowanie złożoności aplikacji komputerowych to prawdziwa sztuka programowania.


Programowanie deklaratywne

Tworzenie oprogramowania często łamie terminy i budżety. Gotowe oprogramowanie jest często pełne błędów kodowania. Dzieje się tak, ponieważ kod komputerowy jest trudny do opracowania, przetestowania i utrzymania.

Kodowanie jest wyłączone . Powinieneś opisać więcej Co robić, mniej Jak to zrobić.

Z AppML deklarujesz swoją aplikację w Modelu i Widoku .

Z AppML jest mniej (czasem nic) do kodowania .

Wikipedia: Programowanie deklaratywne


Szybkie i zwinne tworzenie aplikacji

Kontrolowanie złożoności aplikacji komputerowych to prawdziwa sztuka programowania.

Utrzymywanie pod kontrolą rozmiaru i złożoności aplikacji jest głównym problemem wszelkiego programowania.

RAD to metoda tworzenia oprogramowania, która wykorzystuje minimalne planowanie na rzecz szybkiego prototypowania.

AppML zapewnia superszybkie prototypowanie, do 100 razy szybsze niż tradycyjne metody programowania.

Prototypy aplikacji można uruchamiać bezpośrednio z modelu aplikacji, bez żadnego kodowania.

Wikipedia: Szybkie tworzenie aplikacji

Zwinne tworzenie oprogramowania to metoda oparta na rozwoju krok po kroku, w której rozwiązania tworzone są przez użytkowników i programistów we współpracy.

Dzięki AppML aplikacje można pisać krok po kroku, w małych przyrostach, od prototypów do pełnych aplikacji.

Wikipedia: zwinne tworzenie oprogramowania


Najpierw kod

Aplikację internetową można opracować na dwa różne sposoby:

1. Code First: Używanie wstępnie zaprogramowanego, wstępnie przetestowanego kodu, dodawanie tylko nowych opisów aplikacji.

2. Najpierw umowa: kodowanie aplikacji od podstaw przy użyciu pełnego opisu wymagań aplikacji.

AppML wykorzystuje najbardziej racjonalną koncepcję: Code First .


Architektura zorientowana na usługi (SOA)

Architektura zorientowana na usługi (SOA) to architektura służąca do tworzenia aplikacji internetowych.

SOA oferuje niskie koszty rozwoju i dużą elastyczność.

Dzięki SOA aplikacje mogą być tworzone od podstaw lub z istniejącej infrastruktury IT i używane przez różne aplikacje na różnym sprzęcie i oprogramowaniu.

SOA doskonale pasuje do MVC i programowania deklaratywnego , gdzie dane mogą być łatwo konsumowane bez obawy o to, jak.


Usługi internetowe

Usługa sieciowa to interfejs do danych identyfikowany przez adres URL, podobnie jak strona internetowa.

Usługa internetowa różni się od strony internetowej tylko sposobem przekazywania informacji.

Typowa usługa sieciowa dostarcza dane tylko do strony internetowej.

W przypadku AppML interfejsem użytkownika jest HTML, a dane udostępnia usługa sieciowa .

Oryginalne usługi sieci Web zostały zaprojektowane do korzystania ze standardów XML, takich jak SOAP, WSDL i UDDI.

Nowoczesne usługi internetowe , takie jak AppML, są znacznie łatwiejsze w użyciu.

  • Łatwiejsze do zrozumienia — mogą być czytane przez ludzi
  • Lekki - bez zbędnego kodu lub znaczników
  • Łatwy do wdrożenia - nie są wymagane żadne narzędzia programistyczne

Korzyści z usług internetowych

  • Usługi internetowe to małe jednostki kodu
  • Usługi internetowe są zaprojektowane do obsługi ograniczonego zestawu zadań
  • Usługi sieciowe korzystają z protokołów komunikacyjnych opartych na HTTP
  • Usługi sieciowe są niezależne od systemów operacyjnych
  • Usługi sieciowe są niezależne od języków programowania
  • Usługi internetowe mogą łączyć różne aplikacje, systemy i urządzenia
  • Usługi sieciowe ułatwiają rozpowszechnianie informacji
  • Usługi sieciowe sprzyjają szybkiemu tworzeniu aplikacji

Przykład: Mały program przeznaczony do dostarczania innym aplikacjom cen giełdowych.

Przykład: rozkłady lotów i systemy rezerwacji biletów.

Ponieważ usługi sieciowe korzystają z protokołu HTTP, są one niezależne zarówno od systemów operacyjnych, jak i języków programowania.


Chmura obliczeniowa

Cloud Computing to rozszerzenie architektury SOA: aplikacja jako usługa, przechowywanie jako usługa, dane jako usługa.

Dla większości ludzi Cloud Computing polega na przechowywaniu danych w sieci:

  • E-maile i kalendarze
  • Dokumenty i arkusze kalkulacyjne
  • Książki, notatki i listy rzeczy do zrobienia
  • Muzyka, zdjęcia i filmy
  • Bazy danych i aplikacje

Powody są dość oczywiste:

  • Mieć dostęp do danych z każdego miejsca
  • Aby udostępnić moje dane innym
  • Aby przetrwać zmiany sprzętu lub awarie

Dzięki AppML bardzo łatwo jest umieścić zarówno bazy danych, jak i aplikacje w chmurze.