Архитектура AppML


Современная веб-архитектура

AppML сочетает в себе самые современные методы и идеи современной веб-разработки.

AppML фокусируется на скорости, простоте и низкой стоимости:

  • Бюджетный
  • Быстрая и гибкая веб-разработка
  • Оптимизирован для облачных вычислений
  • Высокая скорость и низкое потребление полосы пропускания
  • Архитектура MVC (Model Viev Controller)
  • Полное отделение контента от презентации
  • Высокая масштабируемость и возможность тестирования
  • Простая конфигурация и реконфигурация
  • Реконфигурация во время работы приложений
  • Интеллектуальная поддержка учетных записей и ролей пользователей

Архитектура MVC

 

AppML использует архитектуру MVC.

MVC расшифровывается как Model, View, Controller.

Модель описывает ваше приложение.

Представление отображает ваши данные.

Контроллер управляет вашим приложением (конечно).

 

Википедия: Модель, Представление, Контроллер

        МВК

МОДЕЛЬ - Просто 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

Представление — это пользовательский интерфейс (пользовательский интерфейс) для отображения (и ввода) данных.

Представление написано на 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>

КОНТРОЛЛЕР — клиентские и/или серверные сценарии

Клиентский скрипт на веб-странице может управлять приложением:

  • AppML может отображать данные, как определено в модели
  • AppML может отображать данные в соответствии с атрибутами HTML.
  • Приложения AppML могут работать независимо от HTML (скрыто)
  • (Необязательно) AppML может запрашивать данные модели с веб-сервера (SQL-сервера).
  • (Необязательно) Пользователи AppML могут редактировать данные
  • (Необязательно) AppML может отправлять данные на веб-сервер

Серверный скрипт может управлять приложением:

  • Прием запросов от клиента (браузера)
  • Возврат данных клиенту
  • Получение данных от клиента
  • Обновление данных на сервере
  • Забота об аутентификации и безопасности

Искусство программирования

Сохранение размера и сложности приложения на низком уровне — главная проблема любого программирования.

Управление сложностью компьютерных приложений — это настоящее искусство программирования.


Декларативное программирование

Разработка программного обеспечения часто нарушает сроки и бюджеты. Готовое программное обеспечение часто содержит ошибки кодирования. Это связано с тем, что компьютерный код сложно разрабатывать, тестировать и поддерживать.

Кодирование отсутствует . Вы должны больше описывать , что делать, меньше, как это делать.

С AppML вы объявляете свое приложение в модели и в представлении .

С AppML меньше (иногда вообще ничего) кода .

Википедия: декларативное программирование


Быстрая и гибкая разработка приложений

Управление сложностью компьютерных приложений — это настоящее искусство программирования.

Держать под контролем размер и сложность приложения — главная проблема любого программирования.

RAD — это метод разработки программного обеспечения, который использует минимальное планирование в пользу быстрого прототипирования.

AppML обеспечивает сверхбыстрое прототипирование, до 100 раз быстрее, чем традиционные методы разработки.

Прототипы приложений могут запускаться непосредственно из модели приложения без какого-либо программирования.

Википедия: быстрая разработка приложений

Гибкая разработка программного обеспечения — это метод, основанный на пошаговой разработке, при котором решения создаются пользователями и разработчиками в сотрудничестве.

С помощью AppML приложения можно писать шаг за шагом, небольшими шагами, от прототипов до полноценных приложений.

Википедия: Гибкая разработка программного обеспечения


Код сначала

Веб-приложение может быть разработано двумя способами:

1. Code First: использование предварительно запрограммированного, предварительно протестированного кода, добавление только новых описаний приложений.

2. Contract First: написание кода приложения с нуля с использованием полного описания требований к приложению.

AppML использует наиболее рациональную концепцию: Code First .


Сервис-ориентированная архитектура (SOA)

Сервис-ориентированная архитектура (SOA) — это архитектура для создания веб-приложений.

SOA предлагает низкие затраты на разработку и высокую гибкость.

С помощью SOA приложения можно создавать с нуля или из существующей ИТ-инфраструктуры и использовать в разных приложениях на различном оборудовании и программном обеспечении.

SOA идеально подходит для MVC и декларативного программирования , где данные можно легко использовать, не задумываясь о том, как это сделать.


Веб-сервисы

Веб -служба — это интерфейс к данным, идентифицируемый URL-адресом, как и веб-страница.

Веб -сервис отличается от веб-страницы только тем, как он передает информацию.

Типичная веб-служба предоставляет данные только веб-странице.

В AppML HTML — это пользовательский интерфейс, а веб-служба предоставляет данные.

Оригинальные веб-службы были разработаны для использования таких стандартов XML, как SOAP, WSDL и UDDI.

Современные веб-службы , такие как AppML, намного проще в использовании.

  • Проще понять - может быть прочитан людьми
  • Легкий — без лишнего кода или разметки
  • Простота реализации — инструменты разработки не требуются.

Преимущества веб-сервисов

  • Веб-сервисы — это небольшие блоки кода
  • Веб-сервисы предназначены для обработки ограниченного набора задач.
  • Веб-службы используют протоколы связи на основе HTTP.
  • Веб-сервисы не зависят от операционных систем
  • Веб-сервисы не зависят от языков программирования
  • Веб-службы могут соединять различные приложения, системы и устройства.
  • Веб-сервисы упрощают распространение информации
  • Веб-службы способствуют быстрой разработке приложений

Пример: Небольшая программа, предназначенная для предоставления другим приложениям биржевых цен.

Пример: расписания рейсов и системы бронирования билетов.

Поскольку веб-службы используют HTTP, они не зависят ни от операционных систем, ни от языков программирования.


Облачные вычисления

Облачные вычисления — это расширение SOA: приложение как услуга, хранилище как услуга, данные как услуга.

Для большинства людей облачные вычисления — это хранение данных в Интернете:

  • Электронная почта и календари
  • Документы и электронные таблицы
  • Книги, заметки и списки дел
  • Музыка, картинки и фильмы
  • Базы данных и приложения

Причины довольно очевидны:

  • Чтобы иметь доступ к данным отовсюду
  • Делиться своими данными с другими
  • Чтобы пережить аппаратные изменения или сбои

С AppML очень легко разместить как базы данных, так и приложения в облаке.