연결된 데이터 개체
Connected Data ObjectsCDO(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, MySQL 및 Oracle(TBD) 지원 포함
- 플러그형 매핑 전략
- 수평 매핑 전략 포함(콘크리트 클래스당 테이블 1개)
- 수직 매핑 전략 포함(TBD, 계층의 클래스당 하나의 테이블)
- 컬렉션에 대해 서로 다른 매핑 모드 지원
