※ 충남대학교 컴퓨터공학과 분산 이동컴퓨팅 연구실에서 개발한 CNU SyncML Server 2.0 에 관한 내용을 기술한 곳입니다. |
CNU SyncML Server 2.0은 다음과 같은 6개의 프레임 구조를 가진다. |
CNU SyncML Server 2.0 의 모듈 구조 |
Server Application SyncML을 이용하여 클라이언트와 데이터 동기를 수행하는 어플리케이션 또는 서버 데이터베이스를 접근하여 직접 데이터베이스의 데이터를 변경시키는 어플리케이션. |
Sync Adapter Adapter Communication Adapter 를 통하여 전달되는 데이터를 처리하여 입력/출력 인스턴스를 초기화하고, SyncML Toolkit으로 전달한다. Adapter Callback SyncML Toolkit으로부터 전달된 커맨드별 파싱 정보를 Sync Agent내의 Command Handler에게 전달한다 |
Sync Agent Command Handler Adapter Callback 모듈로부터 전달된 커맨드를 Session Manager에 등록하고, Message Handler 에 등록하는 일을 담당한다. 또한 해당 커맨드에 대한 상태(Status) 메시지를 생성하여, Message Handler 와 Session Manager에 등록한다. Command Builder SyncML Toolkit을 이용하여 Status 커맨드와 클라이언트에게 보내질 커맨드를 생성한다. Message Handler Command Handler 로부터 요구되어진 커맨드에 대한 리스트를 관리하며, 이에 대한 Status 정보도 유지한다. |
Session Manager 특정 클라이언트의 디바이스에 대한 서버 세션 관리를 위한 API를 정의하는 프레임이다. |
Sync Engine 데이터베이스 또는 시스템 의존적인 세부 사항을 처리하는 부분으로, Sync Agent로부터 수신된 명령에 따라, 관련 커맨드 에 대한 실질적인 동기화 처리를 한다. |
Open DB Interface 다양한 데이터베이스와 연동하기 위한 API들을 지원하는 프레임이다. |
SyncML Toolkit SyncML 메시지를 파싱하고 생성하는 API 들을 지원하는 프레임이다. SyncML 컨소시엄이 배포하는 Reference SyncML Toolkit (Gold Toolkit)을 이용한다. |
Communication Adapter 클라이언트와 서버간의 Transport Binding을 지원하는 프레임이다. SyncML 컨소시엄이 배포하는 Communication Adapter를 이용한다. |
CNU SyncML Server 2.0의 실행 환경 |
CNU SyncML Server 2.0버젼을 실행하기 위해서 설정되어 있어야 하는 시스템 환경으로서, Apache HTTP Server 1.3.12, 서블릿(Servlet) 구동을 위한 Tomcat, 해당 서블릿으로부터 데이터를 전달하는 Sync Adapter, 데이터 저장을 위한 데이터베이스로 오라클 8i를 사용하였다. 구현 환경 하에서의 클라이언트 서버 동작은 다음과 같은 순서로 이루어지고 있다. SyncML클라이언트가 서버에게 Request 메시지를 HTTP를 통하여 전송하고, 이를 아파치 서버가 받아서 서블릿 엔진에게 포워드 하면 서블릿이 실제 서버의 동기화를 구현한 DLL 모듈을 호출함으로써 동기화를 수행한다. 이 때, 자바 서블릿과 원시 코드 모듈(DLLs)을 호출하게 하는 방법으로써 JNI(Java Native Interface)를 사용한다. 실제 동기화를 수행하는 SyncAgent와 SyncEngine 등의 원시 코드 모듈은 C++로 작성한 6개의 DLL들로 이루어져 있다. CNU SyncML Server 의 실행환경은 아래와 같다. |