AppML 아키텍처


현대 웹 아키텍처

AppML은 최신 웹 개발의 최신 기술과 아이디어를 결합합니다.

AppML은 속도, 단순성 및 저렴한 비용에 중점을 둡니다.

  • 저렴한 비용
  • 빠르고 민첩한 웹 개발
  • 클라우드 컴퓨팅에 최적화
  • 고속 및 낮은 대역폭 소비
  • MVC(모델 Viev 컨트롤러) 아키텍처
  • 프레젠테이션에서 콘텐츠의 완전한 분리
  • 확장성 및 테스트 용이성
  • 손쉬운 구성 및 재구성
  • 애플리케이션 실행 중 재구성
  • 사용자 계정 및 역할에 대한 스마트 지원

MVC 아키텍처

 

AppML은 MVC 아키텍처를 사용합니다.

MVC는 Model, View, Controller의 약자입니다.

모델애플리케이션을 설명합니다.

보기데이터가 표시됩니다.

컨트롤러애플리케이션을 제어합니다(물론).

 

Wikipedia: 모델, 보기, 컨트롤러

        MVC

모델 - JSON만

모델은 애플리케이션을 설명합니다.

이 모델은 다양한 하드웨어 및 소프트웨어 플랫폼(서버, PC, 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>

컨트롤러 - 클라이언트 및/또는 서버 스크립트

웹 페이지의 클라이언트 스크립트는 애플리케이션을 제어할 수 있습니다.

  • AppML은 모델에 정의된 대로 데이터를 표시할 수 있습니다.
  • AppML은 HTML 속성에 정의된 대로 데이터를 표시할 수 있습니다.
  • AppML 애플리케이션은 HTML과 독립적으로 실행할 수 있음(숨김)
  • (선택 사항) AppML은 웹 서버(SQL 서버)에서 모델 데이터를 요청할 수 있습니다.
  • (선택 사항) AppML 사용자는 데이터를 편집할 수 있습니다.
  • (선택 사항) AppML은 웹 서버에 데이터를 보낼 수 있습니다.

서버 스크립트는 다음을 통해 애플리케이션을 제어할 수 있습니다.

  • 클라이언트(브라우저)로부터 요청 수신
  • 클라이언트에 데이터 반환
  • 클라이언트에서 데이터 수신
  • 서버에서 데이터 업데이트
  • 인증 및 보안 관리

프로그래밍의 예술

애플리케이션 크기와 복잡성을 낮게 유지하는 것은 모든 프로그래밍의 주요 문제입니다.

컴퓨터 응용 프로그램의 복잡성을 제어하는 ​​것은 프로그래밍의 진정한 예술입니다.


선언적 프로그래밍

소프트웨어 개발은 ​​종종 기한과 예산을 어깁니다. 완성된 소프트웨어는 종종 코딩 오류로 가득 차 있습니다. 컴퓨터 코드는 개발, 테스트 및 유지 관리가 어렵기 때문입니다.

코딩이 종료되었습니다 . 무엇 을 해야 하는지, 어떻게 해야 하는지에 대해 더 많이 설명 해야 합니다.

AppML을 사용하면 ModelView 에서 애플리케이션 을 선언 합니다 .

AppML 을 사용하면 코딩 할 것이 적습니다(때로는 아무것도 없음) .

Wikipedia: 선언적 프로그래밍


신속하고 민첩한 애플리케이션 개발

컴퓨터 응용 프로그램의 복잡성을 제어하는 ​​것은 프로그래밍의 진정한 예술입니다.

애플리케이션 크기와 복잡성을 통제하에 유지하는 것은 모든 프로그래밍의 주요 문제입니다.

RAD는 신속한 프로토타이핑을 위해 최소한의 계획을 사용하는 소프트웨어 개발 방법입니다.

AppML은 기존 개발 방법보다 최대 100배 빠른 초고속 프로토타이핑을 제공합니다.

애플리케이션 프로토타입은 코딩 없이 애플리케이션 모델에서 직접 실행할 수 있습니다.

Wikipedia: 신속한 애플리케이션 개발

애자일 소프트웨어 개발은 ​​사용자와 개발자가 협업하여 솔루션을 만드는 단계별 개발을 기반으로 하는 방법입니다.

AppML을 사용하면 프로토타입에서 전체 애플리케이션에 이르기까지 조금씩 점진적으로 애플리케이션을 작성할 수 있습니다.

Wikipedia: 애자일 소프트웨어 개발


코드 우선

웹 애플리케이션은 두 가지 다른 방법으로 개발할 수 있습니다.

1. 코드 우선: 사전 프로그래밍되고 사전 테스트된 코드를 사용하여 새로운 애플리케이션 설명만 추가합니다.

2. 계약 우선: 전체 애플리케이션 요구 사항 설명을 사용하여 처음부터 애플리케이션 코딩.

AppML 은 가장 합리적인 개념인 Code First 를 사용 합니다.


서비스 지향 아키텍처(SOA)

SOA(서비스 지향 아키텍처) 는 웹 애플리케이션을 구축하기 위한 아키텍처입니다.

SOA 는 낮은 개발 비용과 높은 유연성을 제공합니다.

SOA 를 사용하면 응용 프로그램을 처음부터 새로 만들거나 기존 IT 인프라에서 만들 수 있으며 다른 응용 프로그램에서 다른 하드웨어 및 소프트웨어에서 사용할 수 있습니다.

SOA 는 MVC선언적 프로그래밍 에 완벽하게 적합하며 , 여기서 데이터는 방법에 대한 걱정 없이 쉽게 소비될 수 있습니다.


웹 서비스

웹 서비스 는 웹 페이지와 마찬가지로 URL로 식별되는 데이터에 대한 인터페이스입니다 .

웹 서비스 는 정보를 전달 하는 방식에서만 웹 페이지와 다릅니다.

일반적인 웹 서비스 는 웹 페이지에만 데이터를 제공합니다.

AppML에서 HTML은 사용자 인터페이스이고 웹 서비스 는 데이터를 제공합니다.

원래 웹 서비스 는 SOAP, WSDL 및 UDDI와 같은 XML 표준을 사용하도록 설계되었습니다.

AppML과 같은 최신 웹 서비스 는 사용하기가 훨씬 쉽습니다.

  • 이해하기 쉬움 - 사람이 읽을 수 있음
  • 가벼움 - 불필요한 코드나 마크업 없음
  • 구현이 간편함 - 개발 도구가 필요하지 않음

웹 서비스의 이점

  • 웹 서비스는 코드의 작은 단위입니다.
  • 웹 서비스는 제한된 작업 집합을 처리하도록 설계되었습니다.
  • 웹 서비스는 HTTP 기반 통신 프로토콜을 사용합니다.
  • 웹 서비스는 운영 체제와 독립적입니다.
  • 웹 서비스는 프로그래밍 언어와 독립적입니다.
  • 웹 서비스는 다양한 애플리케이션, 시스템 및 장치를 연결할 수 있습니다.
  • 웹 서비스를 통해 정보 배포 용이
  • 웹 서비스는 신속한 애플리케이션 개발을 선호합니다.

예: 다른 애플리케이션에 증권 거래소 가격을 제공하도록 설계된 작은 프로그램.

예: 항공편 일정 및 티켓 예약 시스템.

웹 서비스는 HTTP를 사용하기 때문에 운영 체제와 프로그래밍 언어 모두에 독립적입니다.


클라우드 컴퓨팅

클라우드 컴퓨팅 은 SOA(서비스로서의 애플리케이션, 서비스로서의 스토리지, 서비스로서의 데이터)의 확장입니다.

대부분의 사람들에게 클라우드 컴퓨팅은 웹에 데이터를 저장하는 것입니다.

  • 이메일 및 캘린더
  • 문서 및 스프레드시트
  • 책, 메모 및 할 일 목록
  • 음악, 사진 및 영화
  • 데이터베이스 및 애플리케이션

그 이유는 매우 분명합니다.

  • 어디서나 데이터에 액세스하려면
  • 내 데이터를 다른 사람과 공유하려면
  • 하드웨어 변경 또는 충돌에서 살아남기 위해

AppML을 사용하면 데이터베이스와 애플리케이션을 모두 클라우드에 배치하는 것이 매우 쉽습니다.