XRX(웹 애플리케이션 아키텍처)

XRX (web application architecture)

소프트웨어 개발에서 XRXXForms, RESTXQuery를 기반으로 하는 웹 애플리케이션 아키텍처다.XRX 응용프로그램은 웹 클라이언트와 웹 서버 모두에 데이터를 XML 형식으로 저장하며 데이터 형식 간 변환을 요구하지 않는다.XRX는 클라이언트와 서버 시스템 간 데이터 전송에 필요한 최소한의 번역만으로 단순하고 우아한 애플리케이션 아키텍처로 평가받고[1] 있다.XRX 아키텍처는 또한 W3C 표준(CSS, XHTML 2.0, XPath, XML Schema)[2][3]과 밀접하게 결합되어 있어 향후 XRX 애플리케이션이 강건해질 것을 보장한다.XRX 애플리케이션은 클라이언트의 선언적 언어와 서버의 기능적 언어를 활용하기 때문에 자바스크립트, 자바 또는 와 같은 전통적인 명령어 언어에 익숙하지 않은 비개발자에게 권한을 부여하도록 설계된다.그물.

XRX 개요

XRX는 XML을 사용하여 클라이언트 웹 브라우저, 애플리케이션 서버 및 데이터베이스 서버에 데이터를 저장하는 제로 변환 애플리케이션 아키텍처다.이들 각 계층은 XRX 애플리케이션이 데이터 구조를 개체와 관계형 데이터 구조로 변환하거나 변환할 필요가 없는 동일한 구조 데이터 모델로 XML을 사용하기 때문이다.번역의 필요성이 부족하기 때문에 XRX는 깔끔하고 우아한 디자인으로 평가받고 있다.XRX 웹 애플리케이션 아키텍처는 개발자들이 번역 문제가 아닌 비즈니스 문제에 집중할 수 있게 해준다.XRX는 소프트웨어 기술의 몇 가지 발전으로부터 이익을 얻는다.

클라이언트 아키텍처 기능

  • 데이터를 프레젠테이션 및 비즈니스 로직에서 분리하는 MVC(모델-뷰-컨트롤러) 아키텍처.
  • 모든 서버 제출을 위한 단일 요소(xf:제출)이것은 대부분의 AJAX 애플리케이션에 필요한 자바스크립트 코드의 대부분을 대체한다.
  • W3C 표준과 일치하는 고급 이벤트 모델(XML 이벤트)으로, 응용프로그램이 벤더별 및 브라우저별 이벤트 처리를 처리할 필요가 없다.
  • 클라이언트 컨트롤러의 종속성 구조를 저장하는 데 사용되는 종속성 그래프.이를 통해 개발자는 응용프로그램의 데이터가 변경될 때 모델 또는 뷰를 수동으로 업데이트하지 않아도 된다.이를 통해 스프레드시트와 같은 응용프로그램을 클라이언트에 거의 힘들이지 않고 만들 수 있다.
  • 대부분의 클라이언트 XForms 애플리케이션을 약 20개의 요소로 구성된 작은 세트를 사용하여 만들 수 있는 선언적 프로그래밍 스타일.이것은 JavaScript나 다른 절차적 스크립팅 언어에 대한 지식 없이 풍부한 클라이언트 애플리케이션을 만들 수 있게 한다.
  • EXTensible Bindings Language를 사용하여 새 사용자 인터페이스 컨트롤을 만들 수 있는 손쉬운 확장 시스템.이를 통해 개발자는 W3C 표준과의 비호환성을 우려하지 않고 언제든지 새로운 제어장치를 추가할 수 있다.

서버 아키텍처 기능

  • 많은 네이티브 XML 데이터베이스에는 REST 인터페이스가 내장되어 있어 각 XQuery는 본질적으로 RESTful 웹 서비스를 제공한다.
  • 디버깅하기 쉽고 여러 프로세서에서 실행하기 쉬운 부작용 없는 시스템을 촉진하는 기능 프로그래밍 모델.
  • XQuery 기능과 모듈을 사용하여 쉽게 확장할 수 있는 시스템.

클라이언트와 서버 모두

  • XRX 클라이언트 및 서버 구성요소 모두 XPath, XML 스키마XML 네임스페이스와 같은 광범위한 XML 관련 표준을 지원
  • As-You-type 데이터 확인 및 제안 기능을 포함한 모든 데이터 전송을 위해 클라이언트와 서버 간에 데이터를 교환하기 위한 REST 인터페이스의 일관된 사용
  • XPath 및 XML Schema 데이터 유형 사용을 포함한 W3C 표준의 일관성 있는 통합
  • 클라이언트와 서버 모두에서 사용되는 기능 표준의 대형 라이브러리

XRX의 전반적인 이점

XRX 아키텍처의 주요 이점 중 하나는 복잡한 데이터 구조를 관계 구조로 "분해"한 다음 클라이언트에서 레코드를 편집할 때 데이터를 구조로 다시 재구성해야 하는 요구사항을 피하는 것이다.

XRX 웹 애플리케이션 아키텍처의 또 다른 이점은 객체-관계 임피던스 불일치 주변의 대부분의 문제를 방지한다는 것이다.

클라이언트 개발자가 클라이언트에서 자바스크립트를 배울 필요가 없다는 것도 장점이다.

기존 객체/관계형 웹 애플리케이션 아키텍처와의 비교

1990년 말에 만들어진 많은 전통적인 웹 애플리케이션 아키텍처는 표 형식의 데이터 스트림과 관계형 데이터베이스 시스템을 사용하는 중간 객체 계층과 지속성 계층에 기초하였다.이들 각 계층은 모델을 저장하기 위해 서로 다른 구조를 사용했기 때문에, 시스템은 계층들 간에 변환하기 위해 많은 추가적인 복잡성을 필요로 했다.

XRX의 역사

다중 계층 시스템에서 제로 변환 아키텍처를 사용하는 초기 예는 1990년대에 객체 지향 데이터베이스의 증가로 거슬러 올라갈 수 있다.OODBMS 내역 참조

Mark Birbeck는 2006년 9월에 영국 XML 사용자 그룹과의 미팅에서 XForms, XQuery와 두 사람 사이의 REST 인터페이스의 조합이 많은 장점을 가지고 있다고 제안했다.[4]그의 프레젠테이션은 XForms와 XQuery의 세 가지 기술이 REST 인터페이스와 결합하면 놀랄 만큼 유익한 효과를 얻을 수 있다는 것을 구체적으로 제시한 첫 번째 사례 중 하나이다.마크는 이 과정을 "스킴밍"이라고 불렀지만, 그 용어는 전염성이 있는 것 같지 않았다.

오르베온에릭 브루체즈는 2007년 12월 보스턴에서 열린 XML 2007 콘퍼런스에서 연설했다.[5]Bruchez는 "XForms와 eXist XML 데이터베이스: 완벽한 커플" 발표에서 많은 사람들이 XForms의 클라이언트와 서버 상의 XQuery의 시너지 효과를 발견하고 있음을 보여주었다.

XRX의 라벨은 2007년 12월 14일 댄 맥크레리가 블로그에 올린 글에 의해 제안되었다.[6]댄이 XRX 아키텍처의 이면에 있는 아이디어들을 위해 전염성이 있는 밈의 필요성을 제안한 것은 이 글에서였다.

XRX의 일반화

XRX는 원래 클라이언트에서 XForms, REST를 인터페이스로 사용하고 서버에서 XQuery를 사용하는 것을 의미하기 위한 것이었지만, 클라이언트와 서버에서 XML을 대칭적으로 사용하는 다른 지지자들은 XML 중심의 웹 클라이언트와 XML 문서를 저장하고 쿼리할 수 있는 서버를 포함하도록 용어를 일반화했다.XRX의 이러한 용도는 일반적으로 "shallow XRX"라고 불린다.이러한 일반화는 단순화된 제로 변환 아키텍처에서 이익을 얻지만, 많은 것들이 REST 인터페이스, 일관된 데이터 선택을 위한 XPath, 클라이언트의 선언적 시스템 및 서버의 기능 언어(XRX의 주요 측면 중 하나)로부터 이익을 얻지 못한다.세 가지 기술(XForms, REST, XQuery)을 모두 사용하는 것을 "딥 XRX"라고 한다.

XRX 아키텍처는 XForms와 XQuery를 중심으로 하고 있지만, XSLT, XProc, XSL-FO와 같이 XML을 본질적으로 조작하는 다른 기술의 사용을 배제하지는 않는다.

참고 항목

참조

  1. ^ McCreary, Dan (2008-05-23). "XRX: Simple, Elegant, Disruptive". Retrieved 2011-07-14.
  2. ^ "Worldwide Web Consortium Query". Retrieved 2011-07-14.
  3. ^ "Worldwide Web Consortium Forms". Retrieved 2011-07-14.
  4. ^ Birbeck, Mark (2006-09-26). "XForms and XQuery vis REST" (PDF). Retrieved 2008-10-26.[데드링크]
  5. ^ Bruchez, Erik (2007-12-04). "XForms and the eXist XML database: a perfect couple". Archived from the original on June 22, 2008. Retrieved 2008-10-26.
  6. ^ McCreary, Dan (2007-12-14). "Introducing the XRX Architecture: XForms/REST/XQuery". Retrieved 2008-10-26.

추가 리소스