<AppML> Architecture

MVC Architecture


<AppML> uses an MVC Architecture

MVC stands for Model, View, Controller

The Model describes your application.

The View displays your data.

The Controller controls your application (of course).


Wikipedia: Model, View, Controller



The MODEL - Just a Simple XML File

The model describes your application, and is reusable for different hardware and software platforms (PC, iPhone, Tablets, etc). It is not concerned with user interface (UI) or presentation.

The model is written in XML, and stored on your web server:


    <sql>SELECT CustomerName,ContactName,City,Country FROM Customers</sql>

  <field label="Customer">CustomerName</field>
  <field label="Customer">CustomerName</field>


The model above defines the data source to be from a database named Northwind.

The model allows data to be fetched using a predefined SQL. It also allows data to be ordered by and queried by Customer, City, and Country.

The VIEW - Just a Normal HTML File

The view is the UI (User Interface). Normally it is an HTML page for displaying and (optionally) input data:

<!DOCTYPE html>
<link rel="stylesheet" href="appml.css" />

<h1>My First Web Application</h1>
<div id="Place01"></div>

<script src="appml.js"></script>
customers=new AppML("appml.asp","Customers.xml");


The HTML page above runs a script that creates an AppML object on the screen for displaying data inside a placeholder called "Place01".

The JavaScript "appml.js" takes care of it.

The CONTROLLER - Just a Browser and Server Script

The server script controls the application by:

  • Receiving requests from the browser
  • Returning model and data the browser
  • Receiving updated data from the browser
  • Updating data on the server
  • Taking care of authentication and security

The browser script controls the application this way:

  • When a web page loads, you can load the <AppML> controller into the page.
  • With the controller, you can create an <AppML> object on your page.
  • When the <AppML> object runs, it asks your server for data.
  • The <AppML> object receives the data (with a data model) from the server.
  • The <AppML> object (or your code) displays the data in your web page.
  • (Optionally) A web user can change data.
  • (Optionally) <AppML> can send changed data back to the server.

Typical Web Files and Folders:


Your web folder: Demo

Your data folder: Data

Your images folder: Images

Your models folder: Models

Your application: Demo.htm

Your stylesheet: Demo.css


<AppML> Configuration: appml_config.php (or .aspx)

<AppML> Stylesheet: appml.css

<AppML> Browser Controller: appml.js

<AppML> Server Controller: appml.php (or .aspx)

Rapid and Agile Application Development

RAD is a software development method that uses minimal planning in favor of rapid prototyping.

<AppML> delivers super-fast prototyping, up to 100 times faster than traditional software development methods.

Application prototypes can run directly from the application model, without any coding.

Wikipedia: Rapid Application Development

Agile software development is a method based on step-by-step development, where solutions are created by users and developers in collaboration.

With <AppML>, applications can be written step by step, in small increments, from prototypes to a full applications.

Wikipedia: Agile Software Development

Declarative Programming

Software development often breaks deadlines and budgets. Finished software is often full of coding errors. This is because computer code is difficult to develop, test, and maintain.

Coding is Out. You should describe more What to do, less How to do it.

With <AppML> you Declare your application in the Model.

With <AppML> there is less (or nothing) to code.

Wikipedia: Declarative Programming

Code First

A web application can be developed in two different ways:

1. Code First: Using pre-programmed, pre-tested code, adding only new application descriptions.

2. Contract First: Coding the application from scratch using the full application requirement description.

<AppML> uses the most rational concept: Code First.

Service Oriented Architecture (SOA)

A Web Service is an interface to data, identified by a URL, just like a web page. It differs from a web page, only in the way it communicates information.

A typical Web Service provides data to a web page.

With <AppML>, HTML displays the user interface, and <AppML> provides the data.

Original Web Services were designed to use XML standards like SOAP, WSDL, and UDDI.

Modern Web Services like <AppML> are much easier to use.

  • Simpler to understand - Can be read by humans
  • Lightweight - no unnecessary code or markup
  • Easy to implement - no development tools required

Service Oriented Architecture (SOA) is an architecture for building web applications. It offers low development costs and high flexibility. With SOA, applications can be created from scratch, or from existing IT infrastructures, and be used, by different applications, on different hardware and software. SOA is a perfect fit for MVC and Declarative Programming, where data can be easily consumed without the concern about how.

Benefits of Web Services

  • Web services are small units of code
  • Web services are designed to handle a limited set of tasks
  • Web services use HTTP based communicating protocols
  • Web services are independent of operating systems
  • Web services are independent of programming languages
  • Web services can connect different applications, systems, and devices
  • Web Services makes it easy to distribute information
  • Web Services favours rapid application development

An example of a web service can be a small program designed to supply other applications with the latest stock exchange prices.

Since web services use HTTP protocols to communicate with other systems, web services are independent of both operating systems and programming languages.

An application calling a web service will always send its requests using HTTP. The calling application will never be concerned about the operating system or the programming language running on the other computer.

Web services can create new possibilities for many businesses, because it provides an easy way to distribute information to a large number of consumers.

One example could be flight schedules and ticket reservation systems.

Cloud Computing

Cloud Computing is an extension of SOA: Application-as-a service, Storage-as-a-service, Data-as-a-service.

For most people, Cloud Computing is about storing data on the web:

  • Emails and calendars
  • Documents and spreadsheets
  • Books, notes, and todo lists
  • Mmusic, pictures and movies
  • Databases and applications

The reasons are pretty obvious:

  • To have access to data from everywhere
  • To share my data with others
  • To survive hardware changes or crashes

With <AppML>, it is very easily to put databases and applications in the cloud.