Архитектура 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 очень легко разместить как базы данных, так и приложения в облаке.