소개
SDO(Service Data Object)는 데이터 소스에 독립적이고 연결되지 않은 단일 방식으로 백엔드 데이터에 대한 액세스를 허용하는 프로그래밍 모델에 대한 스펙입니다. 이 모델에서는 임의의 데이터 소스
유형(관계형 데이터베이스, EJB 엔티티 Bean, 웹 서비스, XML 데이터 소스 등)에서 데이터를 검색할 수 있으며 구조화된 데이터 그래프(DataGraph)로서 균일하게 나타낼 수 있습니다. SDO는 백엔드
연결 또는 트랜잭션에 관계 없이 DataGraph 검색을 허용함으로써 연결되지 않은 오퍼레이션에 대해 제공됩니다. 또한 JCP를 통해 JSR(Java Specification Request) 235로서 제출된 제안
스펙입니다.
아키텍처
SDO 아키텍처는 단일 데이터 액세스 계층(데이터 중개자 서비스)을 사용하여 이기종 데이터 소스에서 클라이언트로 DataGraph를 리턴합니다. 그림 4는 SDO 아키텍처의 컴포넌트를 보여줍니다.
그림 4: SDO 아키텍처 데이터 오브젝트
DataObject에는 실제 데이터(예: 관계형 데이터베이스의 데이터 행 또는 기본 값)와 기타 DataObject에 대한 가능한 참조가 포함됩니다. DataObject를 조사하여 해당 유형, 관계 및 제한조건을
판별할 수 있습니다.
DataGraph
DataGraph에는 DataObject 세트가 포함되며 일반적으로 아키텍처 컴포넌트 간 전송 유닛을 나타냅니다. DataGraph는 변경 또는 삭제된 데이터 오브젝트와 새 데이터 오브젝트를 포함하여 모든 데이터
변경사항을 기록합니다.
데이터 중개자 서비스
데이터 중개자 서비스는 데이터 소스와 상호작용하여 데이터를 나타내는 DataGraph를 생성합니다. 기본 데이터 표시는 이 플러그 가능 서비스를 통해 SDO 그래픽 표시로 변환됩니다. 중개자는 또한
DataGraph의 변경사항을 다시 데이터 소스에 적용합니다.
프레임워크 적용 가능성
SDO 기술을 사용하면 도구 및 프레임워크를 쉽게 통합할 수 있습니다. JSF 및 기타 MVC 프레임워크 컨텍스트에서는 다음 두 가지 솔루션을 고려할 수 있습니다.
UI 컴포넌트에서 SDO로 바인딩(JSF)
JSF 프레임워크에서는 데이터 검색을 위해 웹 사용자 인터페이스 컴포넌트의 값을 SDO에 선언적으로 바인드할 수 있습니다. 예를 들어, 데이터 테이블 컴포넌트를 SDO에 바인드하여 백엔드 데이터 소스에서 해당 값을
검색할 수 있습니다. 이 조합을 통해 프로그래밍 작업 없이도 UI 컴포넌트에서 쉽게 데이터를 연결할 수 있습니다. 그림 5는 JSF UI 컴포넌트를 SDO에 바인딩하는 결과 아키텍처를 보여줍니다.
그림 5: JSF에 SDO 사용
SDO에 대한 모델 오브젝트(MVC 프레임워크)
MVC 프레임워크의 모델 계층은 SDO를 사용하여 백엔드 데이터에 액세스할 수 있습니다. 그림 6은 엔티티 EJB를 사용하여 지속되는 데이터에 액세스하기 위해 SDO를 사용하는 모델 클라이언트의 예제를 보여줍니다.
모델 오브젝트는 Stateless 세션 EJB Facade에서 리턴하는 DataGraph를 사용합니다. 이 세션 Bean Facade는 엔티티 EJB 기반 지속성 메커니즘에 대한 데이터 Facade 기능을 수행하는
중개자에서 DataGraph를 검색합니다.
그림 6: 모델 오브젝트 및 EJB에 SDO 사용
자원
다음 링크는 이 문서에서 설명하는 응용프로그램 프레임워크 및 컴포넌트 기술 관련 추가 정보를 제공합니다.
|