Ubiscript: A Language for Ubiquitous Service Integration

유비스크립트: 유비쿼터스 서비스 통합을 위한 언어

  • Published : 2007.10.26

Abstract

유비쿼터스 환경에서는 사용자가 컴퓨터 및 네트워크의 존재를 의식하지 않는 상태에서 다양한 서비스를 이용하게 된다. 주변에 있는 PC, 냉장고, TV, 자동차 등의 모든 기기에 프로세서가 내장되고 네트워크가 연결되어 특정한 서비스를 제공하기 위해 함께 동작하게 된다. 이러한 장치와 서비스들을 연동하기 위한 현재의 솔루션은 클라이언트-서버 방식의 분산 컴퓨팅 모델이다. 각각의 장치가 원격 프로시듀어 흑은 원격 객체의 형태로 서버를 제공하고 이들을 하나의 클라이언트가 시나리오대로 그것들을 호출함으로써 응용을 완성할 수 있다. 하지만, 이러한 분산 컴퓨팅 모델을 지원하는 프로그래밍 환경으로는 다음과 같은 한계가 있다. 첫째, 소프트웨어 배치(deployment) 문제가 발생한다. 수 많은 시나리오를 생각해 볼 수 있는 유비쿼터스 환경에서는 특정 장치를 공장에서 생산하여 출고할 때 어떤 서버 소프트웨어가 미리 설치되어야 하는지는 가늠할 수 없는 문제이다. 둘째, 성능 문제가 발생할 수 있다. 각 장치의 함수를 호출하는 것은 대부분 원격 함수(remote procedure)이므로 한번 호출하는데 상당한 자원이 소요된다. 하지만, 시나리오를 구현하기 위해서는 특정 장치의 함수를 여러 번 호출해야 되는 상황이 자주 연출된다. 이러한 상황을 피하여 성능을 향상 시키기 위해서는 각 장치에 요구되는 부문 시나리오가 한번에 호출로 처리될 수 있어야 한다. 셋째, 유지 보수 문제가 발생할 수 있다 하나의 서비스가 여러 개의 서버 프로그램과 클라이언트 프로그램으로 구성되기 때문에 한번 업그레이드를 할 때 모든 구성 요소들이 모두 버전 업이 되어야 한다. 넷째, 유비쿼터스 환경에 적합한 추상화 개념의 부재를 들 수 있다. 다양한 장치, 웹서비스 및 데이터 들이 연동되어 하나의 서비스 시나리오를 구현함에 있어서 현재의 프로그래밍 언어는 높은 수준의 추상화 개념을 제공하지 못하고 있다. 본 연구에서는 모바일 코드 기술을 프로그래밍 언어에 적용하여 유비쿼터스 환경에서의 다양한 장치들과 서비스들을 손쉽게 통합하여 애플리케이션 시나리오를 구현할 수 있는 새로운 프로그래밍 언어인 유비스크립트(ubiscript)를 제안한다. 유비스크립트에서는 모바일 코드의 개념을 통해서 앞서 언급한 유비쿼터스 컴퓨팅 환경에서의 문제점을 해결하고자 하였다. 모바일 코드에서는 프로그램 코드가 네트워크를 통해서 컴퓨터를 이동하면서 수행되는 개념인데, 이는 물리적으로 떨어져있으면서 네트워크로 연결되어 있는 다양한 컴퓨팅 장치가 서로 연동하기 위한 모델에 가장 적합하다. 이는 기본적으로 배포(deploy)라는 단계가 필요 없게 되고, 새로운 버전의 프로그램이 작성될지라도 런타임에 코드가 직접 이동하게 되므로 버전 관리의 문제도 해결된다. 게다가 원격 함수를 매번 호출하지 않고 한번 이동된 코드가 원격지에서 모두 수행을 하게 되므로 성능향상에도 도움이 된다. 장소 객체(Place Object)와 원격 스코프(Remote Scope)는 앞서 설명한 특징을 직접적으로 지원하는 언어 요소이다. 장소 객체는 모바일 코드가 이동해서 수행될 계산 환경(computational environment)에 대한 레퍼런스이다. 원격 스코프는 원격지의 컴퓨터에 존재하는 계산 환경의 스코프(scope)를 로컬 계산 환경에 적용할 수 있도록 하는 언어 요소이다. 유비쿼터스 컴퓨팅 환경에서의 장치와 서비스들을 연동하기에는 현재의 프로그래밍 모델은 배포, 유지 보수, 성능 등의 문제점을 안고 있다. 본 연구에서는 모바일 코드 개념을 도입한 새로운 프로그래밍 언어인 유비스크립트를 제안하여 이러한 문제점들을 극복하고자 하였다. 유비스크립트에서는 유비쿼터스 환경을 직접적으로 표현할 수 있도록 새로운 언어 요소인 장소 객체와 원격 스코프 개념을 도입하였고, 프로토타입과 가상의 시나리오 구현을 통하여 기존의 프로그래밍 언어보다 유비쿼터스 환경에 더 적합하고, 단순하며 생산성이 우수하다는 것을 확인하였다.

Keywords