개념: 웹 어플리케이션 프레임워크

주제

 

소개 To top of page

어플리케이션 프레임워크를 사용하면 소프트웨어 어플리케이션을 구현하는 동안 많은 장점을 얻을 수 있습니다. 프레임워크는 어플리케이션 전체에 공통적인 많은 구현 세부사항을 설명하고 공통적인 구현 문제점에 대한 솔루션을 다시 발견하고 다시 구현하는 일이 없도록 도와주는 재사용 가능한 인프라스트럭처를 제공합니다. 또한 프레임워크는 특정 유형의 어플리케이션 빌드라는 과제에 대한 효과적인 솔루션을 나타내는 프로그래밍 모델을 준수하는 경우가 많습니다. J2EE(Java 2 Enterprise Edition) 웹 어플리케이션의 경우, MVC 설계 패턴을 기반으로 한 프레임워크가 최적으로 간주되는데, 이 중 Struts가 가장 널리 사용됩니다. 최근에 J2EE 표준 위원회에서는 MVC 프레임워크에 추가 장점을 제공하는 JSF(JavaServer Faces) 스펙을 릴리즈했습니다.

이 문서에서는 MVC 설계 패턴의 장점을 설명하고 Struts 및 JSF 프레임워크에 대해 개략적으로 설명합니다. 이 문서에서는 이러한 프레임워크의 목적을 설명하고 장점과 단점을 나열하며, 이들 프레임워크 중에서 선택하는 방법에 관한 가이드라인을 제공합니다. 마지막으로 SDO, EJB 보완 기술을 이러한 프레임워크를 사용하는 구조에 통합하는 방법에 대해서도 설명합니다.

 

MVC 설계 패턴 To top of page

MVC(Model-View-Controller)는 어플리케이션의 사용자 인터페이스를 헤딩 비즈니스 논리에서 분리시키는 설계 패턴입니다. MVC는 어플리케이션의 구조를 세 부분(모델, 보기, 제어기)으로 계층화하여 분리시킵니다. 그림 1은 웹 어플리케이션에 적용한 MVC 구조를 보여줍니다.

그림 1: 웹 어플리케이션에 대한 MVC 구조

모델

모델은 어플리케이션의 상태를 나타내고 이를 수정하는 비즈니스 조치(지속적 데이터 및 비즈니스 논리)를 정의합니다. 일반적으로 보기를 통해 상태를 조회할 수 있으며, 제어기를 통해 상태 변경 요청을 받을 수 있습니다. 모델은 보기 또는 제어기에 대해서는 전혀 알지 못합니다.

보기

보기는 모델에 대한 프리젠테이션을 제공합니다. 보기는 어플리케이션의 모습(사용자 인터페이스)을 나타냅니다. 보기는 사용자 간에 데이터를 제공하고 수집하는 책임을 가집니다. 보기는 모델의 상태를 가져올 수는 있지만 수정할 수는 없습니다.

제어기

제어기는 사용자 입력에 대해 반응하며 그에 따라 상태를 변경하도록 모델에 알립니다. 제어기는 특히 들어오는 사용자 요청을 적절한 비즈니스 논리 기능(모델의)으로 디스패치하고 그 결과에 따라 사용자(보기)에 대한 응답을 선택함으로써 이 사용자 요청을 처리합니다.

장점

MVC 설계 패턴은 비즈니스 논리를 프리젠테이션과 분리시키기 때문에 다음과 같은 장점이 있습니다.

  • 유지보수성 향상

    보기 및 모델 계층이 분리되기 때문에 비즈니스 규칙에 영향을 주지 않고 사용자 인터페이스를 변경할 수 있으며 반대로 사용자 인터페이스에 영향을 주지 않고 비즈니스 규칙도 변경할 수 있습니다. 따라서 변경으로 인한 영향이 최소화됩니다.

  • 모델 재사용성

    동일 모델의 보기를 여러 개 작성할 수 있습니다. 예를 들어, 어플리케이션이 서로 다른 클라이언트 장치 유형을 지원해야 할 경우(예: 휴대폰 및 PDA) 각 기술에 특정한 새 보기를 작성하고 동일한 모델을 재사용할 수 있습니다.

  • 책임 분리

    개발 팀의 서로 다른 구성원이 자신의 전문 분야에 집중할 수 있도록 개발 역할을 분리할 수 있습니다. 예를 들어, 웹 페이지 설계자는 보기 계층을 담당하고 제어기 및 모델 계층 구현에 집중할 수 있는 Java 개발자와 독립적으로 작업할 수 있습니다.

 

Struts To top of page

Struts는 MVC 설계 패턴을 사용하여 동적 웹 어플리케이션을 구축할 수 있도록 하는 어플리케이션 프레임워크입니다. Struts는 Sun의 J2EE 모델 2 구조를 기반으로 어플리케이션의 MVC 구현을 빌드하기 위한 기초로 사용될 수 있는 Java 클래스, Servlet 및 JSP 태그 라이브러리를 통합한 콜렉션입니다.

  • 제어기 계층은 Servlet에 의해 구현됩니다.
  • 보기는 JSP를 사용하여 구현됩니다.
  • 모델 계층은 일반적으로 JavaBean 또는 Enterprise JavaBean을 사용하여 구현됩니다.

구조To top of page

그림 2는 Struts에서의 MVC 구조 구현과 클라이언트 요청 처리 플로우를 표시한 것입니다.

그림 2: Struts MVC 구조 및 요청 처리 플로우

제어기 컴포넌트

Struts의 기본 제어기 컴포넌트는 전면 제어기 servlet, ActionServlet, ActionForm 및 Action 클래스로 구성됩니다.

  • ActionServlet

ActionServlet은 HTTP 요청을 수신하고, 모델에 대해 요청된 조치를 호출하며, 다음에 표시할 보기를 선택합니다. ActionServlet은 프레임워크의 핵심입니다. ActionServlet 클래스의 한 인스턴스가 들어오는 요청을 모두 수신합니다. ActionServlet은 HTTP 요청의 해당 필드를 사용하여 ActionForm의 상태를 설정하고 자체적으로 유효성을 검증할 것인지 물어보고(선택사항) 이를 맵핑된 Action으로 전달합니다. 요청은 형상 파일(struts-config.xml)을 사용하여 Action에 맵핑됩니다.

  • ActionForm

ActionForm 클래스는 양식 데이터를 나타냅니다. ActionServlet 인스턴스는 입력 양식의 값으로 해당 특성을 자동으로 채우고 이를 요청된 Action으로 전달합니다. ActionForm은 또한 보기를 통해 표시될 모델의 동적 테이터를 보유하는 데에도 사용됩니다.

  • Action

Action 클래스에는 모델 계층을 호출하기 위한 논리가 들어 있습니다. 이 클래스는 ActionServlet으로 실행되면 모델 객체를 호출하여 비즈니스 논리를 수행한 후 다음에 이동할 위치를 ActionServlet 제어기에 알립니다.

모델

Struts는 모델에 사용할 기술을 지정하지 않습니다. 그러나 대부분 모델 객체는 단순 JavaBean 또는 보다 강력한 컴포넌트(예: Enterprise JavaBean)를 사용하여 구현됩니다.

보기

보기는 프레임워크와 함께 제공된 JSP 사용자 정의 태그 라이브러리를 활용할 수 있도록 일반적으로 JavaServer Page를 사용하여 구현됩니다. 표시될 동적 데이터는 JavaBean 또는 제어기 계층이 작성한 ActionForm 클래스의 인스턴스에서 검색됩니다. 이 데이터에 액세스하기 위한 기본 메커니즘은 사용자 정의 태그입니다.

장점 To top of page

Struts는 강력한 개발자 커뮤니티에서 지원하는 개방 소스 프레임워크이며, Apache Software Foundation의 Jakarta 프로젝트에서 표준을 관리합니다. Struts는 벤더에 구애되지 않고 여러 개발 툴에서 지원되므로 매력이 있는 선택사항입니다. MVC 기반 프레임워크라는 점 외에도 Struts의 기타 장점은 다음과 같습니다.

  • Struts는 HTTP를 중심으로 하고 하위 레벨 세부사항 HTTP 요청 처리를 숨깁니다.
  • 모델 중립적이며, 개발자가 모델 계층에서 사용할 기술을 선택할 수 있도록 합니다.
  • Struts는 구성 가능성이 높습니다. XML 형상 파일은 어플리케이션의 플로우, 사용자 입력 유효성 검증 및 오류 처리를 제어하는 데 사용됩니다.
  • Struts는 국제화/지역화를 지원하는데, 표준 Java ResourceBundle을 사용하여 이를 지원합니다.
  • Struts는 재사용성을 대폭 향상시키는 다음 기능을 제공합니다.
    • 일반 Bean 조작, 조건 및 반복 논리, HTML 렌더링과 같은 공통 타스크를 처리하기 위한 풍부한 JSP 사용자 정의 태그 라이브러리 세트
    • 재사용 가능한 사용자 인터페이스 템플리트을 작성하여 레이아웃을 제어하고 공통 룩앤필을 촉진할 수 있도록 하는 바둑판식 서브프레임워크
    • 추가 코드를 재사용할 수 있도록 Struts EL(Expression Language)을 통해 JSTL(JSP Standard Tag Library)에 액세스

제한사항To top of page

Struts의 제한사항은 다음과 같습니다.

  • Struts의 개방 소스 특성은 개발자 커뮤니티에 따라 그 지원이 달라진다는 것을 나타냅니다.
  • 보기 계층에 다른 기술을 사용하기 어렵기 때문에 Struts에는 "JSP 사고방식"을 가집니다.
  • Struts는 풍부한 웹 사용자 인터페이스를 빌드할 수 있도록 하기 위해 사용자 인터페이스 컴포넌트 및 이벤트 처리 모델을 제공하지 않습니다.

 

JSF To top of page

JSF(JavaServer Faces)는 사용자 인터페이스 중심의 접근방식을 사용하여 Java 웹 어플리케이션을 구축할 수 있도록 하는 어플리케이션 프레임워크입니다. 이 기술은 서버에서 실행되는 사용자 인터페이스 컴포넌트 모델을 사용하여 웹 어플리케이션을 빌드하기 위한 인프라스트럭처를 제공합니다. JSF의 목표는 프로그래밍 모델을 단순화하고 사용자 인터페이스 지향의 이벤트 중심 웹 개발을 촉진하여 웹 어플리케이션을 보다 수월하게 개발하도록 하는 것입니다.

구조To top of page

JSF는 MVC 기반의 어플리케이션 프레임워크입니다. JSF는 사용자 인터페이스 컴포넌트를 정의하고 서버에서 이들 컴포넌트의 상태를 관리하며 클라이언트가 생성한 이벤트를 처리하기 위한 풍부한 구조를 제공합니다. 사용자 입력 유효성 검증 및 페이지 탐색 제어에 대한 지원도 제공합니다. 그림 3에서는 JSF 구조의 기본 컴포넌트를 보여주고 클라이언트 요청 처리 플로우를 설명합니다.

그림 3: JSF 컴포넌트 구조 및 페이지 요청 처리 플로우

FacesServlet

FacesServlet은 JSF 페이지에 대한 모든 요청의 시작점입니다. 페이지의 라이프사이클을 제어하기 위해 프레임워크에서 필요한 자원을 초기화한 후, 페이지를 호출하여 요청을 처리합니다. 어플리케이션에 대한 전면 제어기의 역할을 합니다.

JSF 페이지

JSF 페이지는 포함된 모든 사용자 인터페이스 컴포넌트를 표시하기 위해 JSF 태그를 포함하는 JSP 페이지입니다. 각 컴포넌트는 Backing Bean 특성을 사용하여 값 연관을 선언하고 필요한 이벤트 리스너, 유효성 검증기 및 변환기를 지정합니다. 프레임워크는 컴포넌트의 데이터를 연관된 Backing Bean의 바운드 특성과 자동으로 동기화합니다.

사용자 인터페이스 컴포넌트 트리

JSF 페이지의 사용자 인터페이스 컴포넌트는 컴포넌트 트리("보기")로 서버에 표시됩니다. 프레임워크가 요청을 처리할 때 이 트리가 작성되거나(초기 페이지 요청의 경우) 저장된 상태로부터 복원됩니다(후속 페이지 요청의 경우).

유효성 검증기

유효성 검증기는 사용자 입력의 유효성을 검증하는 데 사용됩니다. JSF는 수 많은 표준 유효성 검증기 클래스를 포함하고 있으며, 사용자 정의 유효성 검증기 작성을 지원합니다.

Backing Bean

Backing Bean은 JSF 페이지의 사용자 인터페이스 컴포넌트에 대한 데이터를 보유하고 이들 컴포넌트의 작동을 지원하는 메소드를 구현하는 JavaBean입니다. 이들 메소드는 일반적으로 이벤트 처리, 유효성 검증 및 탐색 제어를 수행하는 논리를 포함합니다. Backing Bean은 일반적으로 비즈니스 논리를 수행하기 위해 모델 객체로부터 메소드를 호출합니다. JSF를 사용하면 페이지에서 사용되는 모든 Backing Bean을 Faces 형상 파일(face-config.xml)에 선언하여 어플리케이션 시작시 웹 컨테이너가 이를 자동으로 인스턴스화하도록 할 수 있습니다(이러한 bean을 관리 Bean이라고 함). 또한 형상 파일은 Backing Bean에서 탐색 제어 논리와 결합하여 작업하는 페이지 탐색 규칙을 지정합니다.

이벤트 리스너

이벤트 리스너는 특정 유형의 컴포넌트가 생성한 이벤트를 처리하도록 설계된 사용자 정의 클래스입니다. JSF는 값이 변경된 이벤트(예: 사용자가 컴포넌트의 값을 변경한 경우), 조치 이벤트(예: 사용자가 단추를 누른 경우), 데이터 모델 이벤트(사용자가 데이터 세트의 새 행을 선택한 경우) 등 세 가지 유형의 이벤트를 지원합니다.

Renderer Kit

Renderer Kit은 특정 클라이언트 유형에 대한 렌더러 그룹입니다. 렌더러는 특정 클라이언트 장치에 사용자 인터페이스 컴포넌트를 표시하기 위한 적절한 출력을 생성하는 클래스입니다. JSF는 컴포넌트 표시를 위한 HTML을 생성하고 기타 클라이언트 유형에 대해 사용자 고유의 렌더 킷을 빌드할 수 있도록 하는 표준 HTML 렌더 킷을 제공합니다.

변환기

변환기는 표시를 위해 객체를 문자열로 변환하고 처리를 위해 문자열을 객체로 변환하는 데 사용됩니다. 포맷팅 및 지역화 선택사항을 적용하는 데에도 사용됩니다.

장점To top of page

JSF는 JCP(Java Community Process)를 통해 개발된 표준 기반 프레임워크이며, J2EE 스펙의 향후 릴리스에 포함될 예정입니다. 이와 같이, JSF는 Java 서버측 사용자 인터페이스를 빌드하기 위한 공식 표준을 설정합니다. JSF의 주요 강점으로는 MVC 특성을 통해 어플리케이션 논리를 프리젠테이션과 명확하게 분리하는 유연한 구조와 개발자가 적은 노력으로 웹 어플리케이션을 빌드할 수 있도록 하는 단순화된 프로그래밍 모델을 들 수 있습니다. 이런 강점으로 인하여 다음과 같은 장점이 얻어집니다.

  • 신속한 어플리케이션 개발

    JSF는 단순화된 프로그래밍 모델을 통해 웹 어플리케이션을 신속히 개발할 수 있도록 합니다. 개발자들은 재사용 가능한 사용자 인터페이스 컴포넌트를 쉽게 한 페이지에 정리하여 이를 어플리케이션 데이터 소스에 연결하고 클라이언트가 생성한 이벤트를 서버측 이벤트 핸들러에 연결할 수 있습니다. 프레임워크는 컴포넌트 상태를 자동으로 동기화하고 사용자 입력의 유효성 검증, 비즈니스 논리 실행, 페이지 탐색 제어와 같은 공통 웹 프로그래밍 타스크를 포괄적으로 지원합니다. 또한 생산성을 보다 향상시키기 위해 비주얼한 방법으로 JSF를 사용하여 웹 사용자 인터페이스를 빌드할 수 있도록 하기 위한 툴 지원을 제공하는 벤더들이 점점 늘어나고 있습니다.

  • 유지보수성

    JSF는 사용자 인터페이스 컴포넌트 레벨에서 작동과 프리젠테이션을 명확히 분리하므로 향상된 유지보수성과 문제점이 세밀하게 분리되어 나타납니다.

    o 페이지 설계자는 Java 개발자가 작동을 구현하는 동안 컴포넌트를 표시하기 위해 태그를 사용하는 것에 중점을 둘 수 있습니다. 완료되면 JSF의 단순 프로그래밍 모델을 사용하여 신속히 단편을 링크할 수 있습니다.

    o 컴포넌트의 프리젠테이션 변경사항은 작동에 영향을 주지 않습니다. 예를 들어, 새 태그를 선택하여 "behind it" 코드를 변경할 필요 없이 컴포넌트를 표시할 수 있습니다.

  • 유연성

    JSF에서는 특정 프리젠테이션 기술 또는 마크업 언어를 사용하지 않아도 됩니다.

    o JSF의 유연한 렌더링 모델은 컴포넌트가 클라이언트 장치 독립적이 될 수 있도록 합니다. 서로 다른 마크업 언어를 생성하는 렌더러를 사용하여 HTML 외의 다른 방법으로 컴포넌트를 표시할 수 있습니다. 따라서 서로 다른 렌더러를 사용하여 다중 클라이언트 유형에 동일한 컴포넌트 논리를 재사용할 수 있습니다.

    o JSF는 JSP 페이지에 컴포넌트를 표시하기 위한 JSP 사용자 정의 태그 라이브러리를 제공하지만 JSP 외의 다른 프리젠테이션 기술을 사용하게 할 수도 있습니다. 이는 JSF 기술이 Servlet API 맨 위에서 직접 계층화되기 때문에 가능합니다.

  • 확장 가능성

    JSF의 사용자 인터페이스 컴포넌트 모델을 확장하여 사용자 정의 컴포넌트를 작성할 수 있습니다. 따라서 트리 및 메뉴와 같은 복잡한 컴포넌트를 작성하고 웹 어플리케이션에 보다 풍부하고 사용자에게 보다 친숙한 사용자 인터페이스를 빌드할 수 있습니다.

 

제한사항To top of page

JSF의 제한사항은 다음과 같습니다.

  • 시간이 지나면서 계속 개선되는 신기술입니다.
  • JSF에는 일치하는 룩앤필을 촉진하기 위한 레이아웃 관리 기능이 없으며, 페이지를 개별적으로 처리된 세션으로 나눌 수 있습니다.
  • 툴 지원을 받지 않고 수동으로 수행된 경우에는 JSF 개발이 어렵습니다. RAD 장점은 IDE를 비주얼 설계 툴과 함께 사용하는 경우에만 실제로 구현됩니다.

 

프레임워크 선택 가이드To top of page

베스트 프랙티스로서 MVC 구조를 따르는 어플리케이션 프레임워크를 사용해야 합니다. Struts와 JSF 모두 MVC 구조를 따르므로 훌륭한 선택입니다. 그러나 이 둘을 비교할 경우 둘 다 겹치는 기능이 있음이 명백해집니다. 예를 들어, 두 가지 모두 입력 유효성 검증, 요청 처리 및 페이지 탐색을 지원합니다. 두 가지 중 어떤 것을 선택하시겠습니까? 표 1은 중요한 프레임워크 기능을 나열하고 Struts와 JSF가 이런 기능을 지원하는 방법을 비교하고 있습니다. 이 표를 가이드로 사용하여 사용자에게 필요한 기능 및 이 기능을 가장 잘 지원하는 프레임워크를 토대로 결정을 내릴 수 있습니다.

 

  Struts JSF
프로그래밍 모델
  • 양식 처리 스타일
  • 이벤트 중심 스타일
UI 컴포넌트 및 지원
  • Struts-HTML 태그 라이브러리에 단순 UI 컴포넌트 제공
  • ActionForm Bean에 대한 데이터 바인딩 제공
  • 풍부한 UI 컴포넌트
  • 추가 사용자 정의 컴포넌트 작성 가능
  • Backing Bean 또는 모든 모델 객체에 대한 데이터 바인딩 지원
  • 이벤트 처리 지원 제공
클라이언트 장치 독립성
  • 지원되지 않음
  • 렌더 킷이 장치 독립성 제공
오류 처리 및 유효성 검증
  • XML 파일(validation.xml)로 구동된 유효성 검증 프레임워크
  • 많은 유효성 검증기가 사전정의되어 있는 유효성 검증 프레임워크
  • 사용자 정의 유효성 검증기 작성 가능
스크립팅
  • Java Action 클래스에 작성된 스크립트
  • 스크립트는 양식 데이터에만 액세스할 수 있음
  • Backing Bean, 모델 클래스 또는 이벤트 리스너 클래스에 작성된 스크립트
  • 스크립트를 이벤트에 첨부할 수 있음
  • 스크립트가 UI 컴포넌트 및 해당 데이터에 액세스할 수 있음
페이지 플로우
  • 복잡하고 유연한 프레임워크
  • XML 파일 기반
  • 복잡하고 유연한 프레임워크
  • XML 파일(faces-config.xml)에 구성됨
세션 및 객체 상태 관리
  • 수동
  • 자동

표 1: Struts와 JSF의 기능 비교

또한 반드시 둘 중 하나를 선택해야 하는 것이 아님을 참조하십시오. Apache 프로젝트에서 개발한 Struts-Faces 통합 라이브러리를 사용하여 두 기술을 결합할 수도 있습니다(#resources -- This hyperlink in not present in this generated website자원 참조). 이 라이브러리를 사용하면 웹 사용자 인터페이스에 있는 JSF 컴포넌트를 Struts 제어기 컴포넌트, 조치 및 비즈니스 논리와 함께 사용할 수 있습니다.

결국, 새 프로젝트에 JSF를 사용하고 기존 Struts 프로젝트를 JSF로 이주시킬 것을 권장합니다. 이 이면의 근본적 이유는 다음과 같이 요약할 수 있습니다.

  • JSF는 사용자가 오랫동안 기다려 왔고 Struts가 제공하지 않는 풍부함을 웹 사용자 인터페이스에 더해줍니다.
  • JSF의 단순 프로그래밍 모델은 생산성을 향상시키는 높은 수준의 추상적 개념을 제공합니다. JSF를 사용하면 Struts에서의 기본 "양식 및 필드" 처리와는 반대로 사용자 인터페이스 컴포넌트 및 클라이언트 이벤트 측면에서 생각할 수 있습니다.
  • JSF는 웹 어플리케이션을 빌드하기 위한 완벽한 솔루션을 제공하며, SDO와 같은 신기술과 쉽게 통합됩니다(#complementary -- This hyperlink in not present in this generated website보완 기술 참조).
  • 현재 RAD 6.0과 같은 강력한 IDE가 이미 JSF를 지원하고 있습니다.
  • JSF는 향후 J2EE 스펙에 포함될 예정이므로 여러 벤더들이 광범위한 툴 지원을 제공하게 될 것입니다.

 

보완 기술 To top of page

이 섹션에서는 다음 기술을 Struts 또는 JSF 프레임워크에 통합하여 강력하면서도 완벽한 엔드-투-엔드 구현 솔루션인 SDO 및 EJB를 생성하는 방법을 살펴봅니다.

EJB 기술에 대한 설명은 가이드라인: EJB를 참조하십시오.

 

SDO To top of page

SDO는 일관되고 데이터 소스 독립적이며 단절된 방법으로 백엔드 데이터에 액세스할 수 있도록 하는 프로그래밍 모델에 대한 스펙입니다. 이 모델을 사용하면 모든 유형의 데이터 소스(관계형 데이터베이스, EJB 엔티티 Bean, 웹 서비스, XML 데이터 소스 등)에서 데이터를 검색하여 구조화된 데이터 그래프(DataGraph)로 일관되게 제공할 수 있습니다. SDO는 백엔드 연결 또는 트랜잭션과 독립적으로 DataGraph를 검색할 수 있도록 함으로써 단절된 조작을 제공합니다. SDO는 JCP를 통해 JSR(Java Specification Request) 235로서 제출된 제안 스펙입니다.

구조

SDO 구조는 일관된 데이터 액세스 계층(데이터 조정 서비스)을 사용하여 이기종의 데이터 소스에서 클라이언트로 DataGraph를 리턴합니다. 그림 4는 SDO 구조의 컴포넌트를 표시한 것입니다.

그림 4: SDO 구조

DataObject

DataObject는 실제 데이터(예: 관계형 데이터베이스의 데이터 행 또는 기본 값) 및 다른 DataObject에 대한 가능한 참조를 보유합니다. 내부 분석을 통해 유형, 관계 및 제한조건을 판별할 수 있습니다.

DataGraph

DataGraph는 DataObject 세트를 보유하며, 일반적으로 해당 구조의 컴포넌트 간 전송 단위를 표시합니다. 새로 작성되거나 변경 또는 삭제된 데이터 객체를 포함하여 데이터에 대한 모든 변경사항을 기록합니다.

데이터 조정 서비스

데이터 조정 서비스는 데이터를 표시하는 DataGraph를 생성하기 위해 데이터 소스와 상호작용하는 책임이 있습니다. 원시 데이터 표시는 이 플러그 가능 서비스에 의해 SDO 그래픽 표시로 변환됩니다. 또한 조정자는 DataGraph의 변경사항을 다시 데이터 소스에 적용하는 역할도 합니다.

 

LFramework 적용 가능성To top of page

SDO 기술은 사용하기 쉬운 툴과 프레임워크 통합을 약속합니다. JSF 및 기타 MVC 프레임워크의 컨텍스트에서 다음 두 가지 솔루션을 고려할 수 있습니다.

UI 컴포넌트에서 SDO로의 바인딩(JSF)

JSF 프레임워크에서 데이터 검색을 목적으로 웹 사용자 인터페이스 컴포넌트의 값을 선언적으로 SDO에 바인드할 수 있습니다. 예를 들어, 백엔드 데이터 소스에서 값을 검색하기 위해 데이터 테이블 컴포넌트를 SDO에 바인드할 수 있습니다. 이 조합은 프로그래밍할 필요 없이 UI 컴포넌트에서 쉽게 데이터 연결을 할 수 있도록 합니다. 그림 5는 JSF UI 컴포넌트를 SDO에 바인딩한 구조의 모습을 나타낸 것입니다.

그림 5: JSF에서 SDO 사용

SDO에 대한 모델 객체(모든 MVC 프레임워크)

MVC 프레임워크의 모델 계층은 SDO를 사용하여 백엔드 데이터에 액세스할 수 있습니다. 그림 6은 SDO를 사용하여 엔티티 EJB를 사용하여 지속된 데이터에 액세스하는 모델 클라이언트의 예를 표시한 것입니다. 모델 객체는 Stateless 세션 EJB 전면이 리턴한 DataGraph를 사용합니다. 이 세션 Bean 전면은 엔티티 EJB 기반 지속성 메커니즘에 대한 데이터 전면의 역할을 하는 조정자에서 차례로 DataGraph를 검색합니다.

그림 6: SDO를 모델 객체 및 EJB와 함께 사용

 

자원 To top of page

다음 링크는 본 문서에서 설명한 어플리케이션 프레임워크 및 컴포넌트 기술과 관련된 추가 정보를 제공합니다.

Rational Unified Process   2003.06.15