학습 목표
이 모듈을 마치면 다음을 수행 할 수 있습니다.
- Mendix 클라이언트, Mendix 런타임 및 데이터베이스 서버가 함께 작동하는 방식을 요약합니다.
- 페이지에 데이터를 표시할 소스 선택
아키텍처 개요
Mendix 플랫폼에서 사용하는 세 가지 기본 구성 요소는 Mendix 클라이언트, Mendix 런타임 및 데이터베이스 서버입니다. 이 세 가지 구성 요소는 함께 작동하여 사용자에게 앱을 제공합니다.
Mendix 클라이언트
사용자가 버튼을 클릭하면 서버의 JVM(Java Virtual Machine)에 의해 실행되는 Mendix Runtime으로 신호가 전송됩니다. 이 시점에서 모든 관련 마이크로플로우(트랜잭션)가 발생하고 데이터가 처리됩니다.
멘딕스 런타임
Mendix Runtime은 Java Virtual Machine 내에서 Java 애플리케이션으로 실행됩니다.
트랜잭션이 완료되면 Runtime은 연결된 개체 캐시를 버립니다.
이 데이터는 Java 가비지 콜렉션이 발생할 때까지 서버의 JVM에 계속 남아 있지만 Mendix는 더 이상 액세스할 수 없습니다.
데이터베이스 서버
데이터베이스는 플랫폼에서 지원하는 모든 유형(예: PostgreSQL 또는 MS SQL)일 수 있습니다.
Mendix 런타임과 데이터베이스 서버 간의 통신
Mendix 런타임은 JDBC(Java Database Connectivity)를 사용하여 지원되는 데이터베이스 서버와 통신합니다. JDBC는 Java 프로그램이 데이터베이스 관리 시스템에 액세스할 수 있도록 하는 표준 API(Application Programming Interface)의 JavaSoft 스펙입니다. 데이터 검색은 내부적으로 OQL을 통해 XPath에서 SQL로 변환되고 데이터베이스 서버에서 실행됩니다.
통신 패턴
대부분의 Mendix 응용 프로그램의 핵심 기능은 Mendix 개체에 저장된 데이터에 대한 CRUD(Create, Read, Update, Delete) 패턴의 변형을 중심으로 이루어집니다.
목록 위젯에 대한 데이터베이스 검색과 XPath 검색 비교
- XPath 제약 조건은 복잡한 제약 조건을 구문 분석하는 것이 많은 모바일 장치에서 너무 리소스를 많이 사용하기 때문에 오프라인 모바일 모드에서는 사용할 수 없습니다. 단순하고 리소스 집약적이지 않은 제약 조건만 허용하는 데이터베이스 옵션은 오프라인 모바일 앱에서 사용할 수 있습니다.
- 가능하면 데이터베이스 옵션을 사용하는 것이 좋습니다. 그러나 XPath 제약 조건이 유일한 옵션인 특정 시나리오가 있습니다. XPath에 의한 제한은 예를 들어 엔티티에 걸쳐 있거나 시스템 변수를 사용할 수 있는 더 복잡한 제약 조건을 허용하는 반면 데이터베이스 옵션은 검색된 엔티티에 대한 간단한 제약 조건만 허용합니다. 즉, 일부 시나리오에서는 XPath 제약 조건만 사용할 수 있습니다.