초록
본 논문에서는 객체 지향 분산 가상 컴퓨팅 환경인 DOVE에 대하여 기술한다. DOVE는 독립적인 분산 객체들이 메소드 호출을 통하여 서로 상호 작용하는 분산 객체 모델을 기반으로 설계되었으며, 다수의 이기종 머신들로 구성된 분산 환경을 하나의 논리적인 단일 가상 컴퓨터로 사용자에게 제공함으로써 원격지에 있는 분산 객체들이 하나의 가상 컴퓨터에 존재하는 것처럼 사용할 수 있도록 한다. 또한, 병렬성, 이기종 환경, 객체 그룹, 단일한 네임 서비스, 그리고 오류 허용 등의 지원을 통하여 병렬 프로그램 개발을 위한 투명성 있고 사용이 용이한 프로그래밍 환경을 제공한다. 병렬성은 다양한 메소드 호출, 객체 그룹을 통한 다중 메소드 호출, 다중 쓰레드 구조 그리고 여러 동기화 구조를 사용함으로써 효과적으로 지원되며, 자동화된 데이타 변환 코드 생성, IDL 컴파일러를 통한 stub와 skeleton 객체 생성 그리고 객체 관리자를 통한 객체 라이프 관리와 네임 서비스를 통하여 이기종 간 호환성 문제를 해결하였으며 투명성 있고 사용이 용이한 프로그래밍 환경을 제공한다. 자치성 있는 분산 객체와 다중 레이어 구조 그리고 분산화된 네임 서비스와 객체 관리 구조를 사용함으로써 확장성과 보수성이 향상되었으며, 비동기방식의 사건 및 예외 처리 통한 오류 탐지 및 확인 기능을 제공한다.
In this paper we present a Distributed Object oriented Virtual computing Environment, called DOVE which consists of autonomous distributed objects interacting with one another via method invocations based on a distributed object model. DOVE appears to a user logically as a single virtual computer for a set of heterogeneous hosts connected by a network as if objects in remote site reside in one virtual computer. By supporting efficient parallelism, heterogeneity, group communication, single global name service and fault-tolerance, it provides a transparent and easy-to-use programming environment for parallel applications. Efficient parallelism is supported by diverse remote method invocation, multiple method invocation for object group, multi-threaded architecture and synchronization schemes. Heterogeneity is achieved by automatic data arshalling and unmarshalling, and an easy-to-use and transparent programming environment is provided by stub and skeleton objects generated by DOVE IDL compiler, object life control and naming service of object manager. Autonomy of distributed objects, multi-layered architecture and decentralized approaches in hierarchical naming service and object management make DOVE more extensible and scalable. Also,fault tolerance is provided by fault detection in object using a timeout mechanism, and fault notification using asynchronous exception handling methods