연결된 데이터 개체

Connected Data Objects

CDO(Connected Data Objects)는 Eclipse Modeling Framework(EMF) 위에 분산 공유 모델을 무료로 구현한 것이다.

CDO를 사용하면 프로그래머는 기존 EMF 모델을 중앙 모델 저장소에 저장하여 유지 관리할 수 있는 방식으로 쉽게 개선할 수 있다.서버 쪽의 JDBC 데이터 소스에 대한 개체 관계 매핑이 기본 제공이지만 CDO는 다른 매퍼(: 최대 절전 모드 또는 OODB 기반)를 개발하고 사용할 수 있는 플러그형 스토리지 어댑터를 제공한다.CDO 프로토콜 위에 있는 다른 모델 통합도 상상할 수 있지만 클라이언트측에서 CDO는 Eclipse Modeling Framework인 EMF와의 기본 통합을 제공한다.

모델 통합 기능

  • 모델 레벨에서의 EMF 통합(편집 레벨과 반대로)
  • 생성된 모델 지원(두 개의 .genmodel 속성만 전환)
  • 동적 모델 지원(.ecore 파일만 로드하고 리포지토리에 커밋)
  • 레거시 모델 지원(.genmodel에 액세스하지 않고 컴파일된 모델의 경우)
  • Ecore 메타 모델 및 하위 모델 지원

사용자 인터페이스 기능

  • CDO 세션, 트랜잭션, 보기 및 리소스로 작업하기 위한 Eclipse 보기
  • 세션당 Package Manager 대화 상자
  • 리소스 및 개체 작업을 위한 Eclipse 편집기

클라이언트 측 기능

  • 여러 서버의 여러 리포지토리에 대한 여러 세션
  • 세션당 여러 트랜잭션
  • 세션당 여러 개의 읽기 전용 보기
  • 세션당 여러 감사 보기(감사는 리포지토리의 일관된 과거 버전을 보여주는 보기)
  • 보기당 여러 리소스(보기는 항상 자체 EMF 리소스 세트와 연결됨)
  • 리소스 간 프록시 확인
  • 리소스당 여러 루트 개체 수
  • 세션의 모든 보기 간에 공유되는 개체 상태
  • 내부적으로 연결되지 않은 개체 그래프(그래프의 사용되지 않는 부분은 가비지 수집기가 쉽게 회수할 수 있음)
  • 트랜잭션에서 커밋된 새 개체 및 수정된 개체만
  • 트랜잭션은 여러 리소스에 걸쳐 있을 수 있음
  • 개체 로딩 요구(리소스가 탐색될 때 채워짐)
  • 컬렉션 부분 로딩(세션당 청크 크기를 구성할 수 있음)
  • 적응성 있는 물체 프리페치(다양한 지능형 사용 분석기 사용 가능)
  • 비동기 개체 무효화(옵션)
  • 세션, 보기, 트랜잭션 및 개체와 함께 사용할 수 있는 클린 API
  • CDOResource도 EOBject임
  • 개체가 ID, 상태, 버전 및 수명 등과 같은 메타 정보를 전송함
  • OSGi 환경 지원(헤드리스, Eclipse RCP 등)
  • 독립 실행형 애플리케이션 지원(OSGi가 아닌 경우)

네트워크 프로토콜 기능

  • Net4j 기반 바이너리 애플리케이션 프로토콜
  • 플러그형 전송 계층(NIO 소켓 전송 및 JVM 내장 전송과 함께 제공)
  • 플러그형 장애 극복 지원
  • 플러그형 인증(챌린지/응답 협상과 함께 제공)
  • 서버당 여러 개의 승인자

서버측 기능

  • 플러그형 스토리지 어댑터
  • 서버당 여러 개의 리포지토리
  • 리포지토리당 여러 모델(패키지)
  • 리포지토리당 여러 리소스(인스턴스 문서)
  • 표현식 XML 구성 파일
  • 저장소당 구성 가능한 스토리지 어댑터(아래 참조)
  • 리포지토리당 구성 가능한 캐싱
  • 리포지토리, 세션, 보기, 트랜잭션 및 리비전과 함께 사용할 수 있는 클린 API
  • OSGi 환경 지원(대개 헤드리스)
  • 독립 실행형 애플리케이션 지원(OSGi가 아닌 경우)

DB 저장소 기능

  • CDO 서버의 모든 선택적 기능 지원
  • 플러그형 SQL 언어 어댑터
  • Derby, HSQLDB, MySQLOracle(TBD) 지원 포함
  • 플러그형 매핑 전략
  • 수평 매핑 전략 포함(콘크리트 클래스당 테이블 1개)
  • 수직 매핑 전략 포함(TBD, 계층의 클래스당 하나의 테이블)
  • 컬렉션에 대해 서로 다른 매핑 모드 지원

외부 링크