임베디드 SW 시스템 개발을 위한 리눅스 기반 솔루션 소개 ④

개요현재 모바일 시장은 SW플랫폼의 홍수라 말할 수 있다. 크게는 CLDC(Connected, Limited Device Configuration) 기반의 자바 SW플랫폼과 Qualcomm 사의 BREW, 국내에서는 WIPI(Wireless Interoperability Platform for Internet)라는 SW플랫폼이 존재한다. 또한 노키아, 모토롤라 등 세계적인 모바일 단말기 제조업체들은 위에서 언급한 SW플랫폼을 기반으로 변형된 SW플랫폼을 개발하여 자사의 단말기들을 특화시키고 있다.이와 같이 SW플랫폼이 확산되는 데에는 위에서 언급한 개발 차원의 이점 외에도 몇 가지 원인이 더 존재한다.첫 번째, 임베디드 시장은 데스크톱 시장에서의 마이크로소프트 사의 Windows나 서버 시장에서의 유닉스와 같이 시장을 주도하는 운영체제가 존재하지 않고 수많은 운영체제들이 각축을 벌이고 있는 상황으로 인해 개발자 확보의 어려움이 크다. 또한 현재 제품에서 특정 운영체제를 사용한다고 하더라도, 차기 제품에서도 그 운영체제가 쓰인다는 것을 보장할 수 없는 것이 현실이다. 따라서 임베디드 시스템 제조사들은 SW플랫폼을 기반으로 응용을 개발함으로써 운영체제 선택의 위험요소를 최소화 하려 한다. 다시 말해, 기존 데스크톱이나 서버 시장에서의 운영체제의 시장지배력이 임베디드 시장에서 SW플랫폼으로 바뀌는 현상이 벌어지고 있다.두 번째, 시장지배력이 운영체제에서 SW플랫폼으로 이동하면서, SW플랫폼이 새로운 수익모델로서 시장에 나타나고 있다. SW플랫폼을 개발하고 표준화를 통하여 지적재산권 등으로 수익을 내는 모델을 통해 많은 회사들이 이익을 내고 있는 상황이다. JCP(Java Community Process)의 많은 JSR(Java Specification Request)의 규격 리더(Specification Leader)들이 TCK(Technology Compatibility Kit)를 통해 수익을 내며, OSGi(Open Services Gateway, initiative)는 홈네트워크, 텔레매틱스, 모바일 통신 등에서 지적재산권을 행사하고 있다. 모바일 분야의 OMA(Open Mobile Alliance)의 경우, 각 회원사들 간의 지적소유권 경쟁이 더욱 심한 상황이다.본고에서는 현재 한국전자통신연구원에서 수행하고 있는 과제 내용을 통해 SW플랫폼이 텔레매틱스 단말 및 홈로봇(URC: Ubiquitous Robot Companion) 분야에서 어떻게 적용되고 있는가를 살펴보고자 한다.텔레매틱스 단말 SW플랫폼국내에는 내비게이션 단말기의 폭발적인 인기로 텔레매틱스 시장이 확대되고 있는 것으로 생각하기 쉬운데, 실상과는 많이 동떨어진 이야기이다. 내비게이션은 대부분의 텔레매틱스 단말기가 지원하고 있으나, 통상 내비게이션 단말기 자체를 텔레매틱스 단말기라고 부르지는 않는다.텔레매틱스 서비스는 기본적으로 텔레매틱스 센터(TSP: Telematics Service Provider)와의 통신을 기본으로 이루어지지만, 내비게이션의 경우 GPS(Global Positioning System) 위성과의 통신만으로 서비스가 이루어지므로, 텔레매틱스 서비스로 분류되지 않는다. 대표적인 텔레매틱스 서비스는 응급구난, 도난추적, 원격차량 제어/진단 등을 들 수 있다. 현재 국내에서 이러한 텔레매틱스 서비스들은 자동차 제조사 중심으로 하는 BM(Before Market) 위주로 이루어지고 있으나, 고가의 단말기 가격과 서비스 이용요금으로 인해 널리 보급되고 있지는 않다. 국내 텔레매틱스 서비스 시장의 대표자격인 현대자동차 모젠의 경우에도 보급된 단말기가 2만 대에 크게 못 미치며, 이 중 실제 가입하여 서비스를 이용하고 있는 사용자는 그 절반에도 못 미친다.현대자동차의 경우에 사업이 활성화되지 못하는 원인 중 하나로 서비스 콘텐츠의 부족으로 들고 있으며, 이를 해결하기 위하여 WIPI SW플랫폼을 단말기에 탑재하여 부족한 콘텐츠를 모바일 서비스로 충당하고 있는 실정이다. 하지만 WIPI 콘텐츠의 경우, 텔레매틱스 서비스와는 무관하여, 장기적으로 볼 때 텔레매틱스 시장 확대라는 측면에서는 큰 도움이 되지 못한다. 텔레매틱스는 차량과 연계된 서비스가 중심이 되어야 사용자의 욕구를 만족시킬 수 있으며, 시장 활성화를 기대할 수 있다. 따라서 텔레매틱스 단말용 SW플랫폼은 특정 차량에 투명하게 차량 인터페이스 할 수 있는 메커니즘을 제공해야 하는 것이 가장 기본적인 요구사항이다.텔레매틱스 단말용 SW플랫폼한국전자통신연구원(ETRI: Electronics Telecommuni- cation Research Institute) 임베디드SW연구단에서는 텔레매틱스 활성화에 필수적인 단말 SW플랫폼 개발을 위해 국내 관련시장을 선도하는 업체들과 공동으로 연구개발을 진행하여 왔다. 현재 개발 중인 텔레매틱스 단말용 SW플랫폼은 개방형 구조에 초점을 맞추고 있다. 여기서 말하는 개방형 구조는 크게 네 가지 측면에서 이루어지고 있다.첫 번째, 텔레매틱스의 기본이 TSP와의 통신이므로, 각종 텔레매틱스 서비스들을 개발하기 위해서는 TSP와 통신을 위한 TSP 응용프로토콜을 정의해야 한다. 하지만 이러한 프로토콜은 제공하는 서비스에 따라 크게 달라지므로 단말 SW플랫폼에서 모두 수용한다는 것은 현실적으로 힘들다. 따라서 본 SW플랫폼에서는 TSP 응용프로토콜 자체를 개발하여 지원하기 보다는 특정 프로토콜과 인터페이스 할 수 있는 규격만을 제공한다. 실제 적용 단계에서 개발자는 본 SW플랫폼 인터페이스 규격과 사용되는 응용프로토콜을 연계시켜 구현하면 된다. 본 SW플랫폼은 어떠한 응용프로토콜과도 접목 가능한 개방형 서비스 응용프로토콜 인터페이스를 제공한다.두 번째, 텔레매틱스 단말 SW플랫폼만으로는 요구되는 모든 텔레매틱스 서비스를 구현할 수 없다. 예를 들어, 텔레매틱스 단말에서 대표적으로 사용되는 HMI(Human-Machine Interface)인 음성인식의 경우, 본 SW플랫폼 내에 구현되어 있지 않으며, 구현자체가 현실성이 없다. 만약 최고의 음성인식 알고리즘을 구현하여 넣는다 하여도 시간이 지나면 그 우수성은 퇴보될 것이며, 전 세계 모든 언어에 대한 음성인식 모듈을 구현할 수도 없는 것이 현실이다. 따라서 필요한 SW엔진을 구현하여 넣는 대신에 SW엔진과 인터페이스 할 수 있는 표준 인터페이스를 제공하여 이 문제를 해결한다. 본 SW플랫폼을 실제로 적용하는 업체에서도 자사의 실정에 맞는 음성인식 등의 SW엔진은 구입하여 본 SW플랫폼에 적용하여 사용하면 되는 것이다.세 번째, 본 텔레매틱스 단말용 SW플랫폼은 현재 존재하는 주요 텔레매틱스 표준규격들을 수용할 수 있도록 설계하였다. 현재 시장에 나와 있는 주요 텔레매틱스 단말 규격은 크게 두 가지이다. AMi-C(Automotive Multimedia interface-Collaboration)는 미국과 일본의 자동차 및 차량전장 업체들이 중심으로 하여 만든 텔레매틱스 단말 및 차량 네트워크 관련 규격이다. 본 규격은 추후 OSGi(Open Serives Gateway, initiative)의 VEG(Vehicle Expert Group)에 기부되어 현재 작업 중인 OSGi 프레임워크 Release 4의 텔레매틱스 단말 규격의 모체가 되었다. 공교롭게도 AMi-C의 규격은 OSGi 프레임워크를 기반으로 하며, OSGi 프레임워크는 Java CDC(Connected Device Configuration)를 기반으로 한다. ETRI에서 개발 중인 SW플랫폼 또한 CDC 기반의 자바 가상머신을 지원함으로써 현재 개발된 OSGi의 텔레매틱스 규격뿐만 아니라, 향후 개발될 자바기반의 다양한 규격을 수용할 예정이다.마지막으로 본 SW플랫폼은 WIPI와의 융합을 통하여 보다 많은 시너지 효과를 추구한다. 개요에서 언급하였듯이 SW플랫폼을 구축하는 목적 중 보다 안정적으로 개발자를 확보하기 위한 것도 존재한다. 올해 개발 완료 예정인 본 SW플랫폼의 경우, ‘릴리즈’한다 하여도 그 성공여부가 불확실하다. SW플랫폼을 기반으로 텔레매틱스 서비스를 개발하려 하여도 개발자들은 새로운 SW플랫폼에 익숙해지기 위해서는 어느 정도의 훈련기간이 필요하다. 대부분의 개발자들이 새로운 기술 습득에 어려움을 느껴 실제로 많은 SW플랫폼들이 실패하는 원인이 되기도 한다. ETRI는 본 규격을 WIPI와 융합하여 WIPI 개발자들이 쉽게 텔레매틱스 서비스 개발자로 변신할 수 있는 토대를 제공할 예정이다. 반대의 경우에도 동일한 효과가 기대된다. 현재 국내에서 이동 중인 차량에서 가능한 유일한 통신수단은 CDMA 방식뿐이다. 따라서 모바일 통신 기능을 무시한 텔레매틱스 서비스는 생각하기 힘든 상황이며, WIPI에서 제공하는 다양한 모바일 기능에 기반한 텔레매틱스 단말용 SW플랫폼은 국내 텔레매틱스 상황에 가장 적합한 SW플랫폼이라는 생각이 든다.하지만 WIPI와의 융합에는 몇 가지 기술적인 이슈들이 존재한다. SW플랫폼의 경우, CDC 기반의 자바 가상머신에 기반하고 있으나, WIPI의 경우 CLDC를 기반으로 하고 있다. 자바 기술의 로드맵을 보면 향후 CLDC 기반의 자바 플랫폼은 CDC 기반으로 통합될 예정이므로, 시간이 지나면 이 문제는 자연스럽게 해결될 전망이다. 하지만 또 다른 문제인 자원관리 정책의 경우에는 상황이 다르다. WIPI에서의 대부분의 I/O 접근은 non-blocking으로 이루어진다. 반대로 본 SW플랫폼의 경우에는 모든 I/O 메커니즘이 blocking 방식을 취하고 있다. WIPI와 본 SW플랫폼이 이러한 기술적 차이를 무시하고 융합한다면 자원관리에 있어서 심각한 문제를 야기할 것이다. 아직 이 문제는 해결방안을 찾고 있는 중이므로, 본고에서는 자세한 언급을 피하기로 한다.그림 1은 ETRI가 제시하고 있는 텔레매틱스 단말용 SW플랫폼의 구조로 다양한 서비스의 지원을 위해, OSGi 프레임워크를 채용하고 있으며, 텔레매틱스 서비스 지원을 위한 규격인 AMI-C를 채용하고 있다.SW플랫폼은 OSGi 서비스 플랫폼과 AMI-C 소프트웨어 플랫폼을 포함하고 있다. OSGi 서비스 플랫폼은 응용 서비스를 전달하고 구성하고 관리하기 위한 소프트웨어 컴포넌트이고 AMI-C 플랫폼은 차량용 멀티미디어 응용이 실행되기 위한 환경을 제공한다. 후자는 OSGi 서비스 플랫폼의 프레임워크 및 번들 서비스를 기반으로 하고 있다. 또한, SW플랫폼은 그림 1에서 알 수 있듯이 하부에 VAL(Vehicle Adaptation Layer)을 통하여 텔레매틱스 서비스에 필요한 다양한 주변장치들과 운영체제에 의존적인 소프트웨어들과 인터페이스 한다. 따라서 단말 SW플랫폼이 제공하는 API를 사용하여 응용 서비스를 개발하면 하부에서 지원되는 특정 하드웨어나 소프트웨어에 대한 의존성을 탈피하며, 결과적으로 개발된 응용 서비스의 이식성을 보장할 수 있다.VAL의 또 다른 목적은 차량의 안전성을 확보하는데 있다. 현재 텔레매틱스 단말기 시장은 자동차 제조사에서 신차 출고 시에만 장착 가능한 BM(Before Market) 단말기들과 차량 출고 후 소비자가 선택하여 설치 가능한 AM(After Market) 단말기로 나뉜다. 이 두 종류 단말기 간의 가장 큰 차이는 차량과 연계된 서비스 가능 유무이다. 이와 같이 차량 내부에서 생성하는 상태 정보의 이용이나 차량 자체의 제어 등의 기능을 보호 장치 없이 공개할 경우, AM 단말기에서도 차량과 연계된 서비스 제공이 가능해 진다. 자동차 제조사는 VAL을 이용하여 안전성이 검증된 차량 인터페이스만으로 공개할 수 있으며, 결과적으로 본 SW플랫폼을 이용하면 AM 단말기에서도 자동차 제조사가 정의한 범위 내에서 차량과 연계된 텔레매틱스 서비스 개발이 가능해 진다.특히, 텔레매틱스 단말 SW플랫폼은 CRM(Customer Rela- tionship Management), 긴급 서비스 및 차량 진단, 오락 및 응용 서비스, 내비게이션 및 교통 정보, 단말기 설정, 차량 보안 등의 요구사항을 만족하기 위한 컴포넌트를 가진다.URC(Ubiquitous Robot Companion) SW플랫폼개요유비쿼터스 세상은 시간과 공간의 간격을 좁힌다는 의미로서, 서비스 사용자와 제공자는 주변의 여건을 의식하지 않아도 서비스가 가능해야 한다. 이와 함께 관련 기술에 대한 끊임없는 기술개발이 진행되면서 URC라는 새로운 개념의 로봇이 태동하게 되었다. URC 로봇은 네트워크기술을 기반으로 언제 어디서나 사용자와 함께 하며 사용자에게 필요한 다양한 서비스를 제공하는 로봇을 말한다. 기존 로봇은 컴퓨터가 사용자의 사용 여부에 따라 서비스를 제공하는 수동적인 측면이 강했다면, URC 로봇은 직접 사용자에게 다가가 사용자가 원하는 서비스를 제공하는 능동성을 제공한다. 이러한 URC의 기본 개념에서 내장형 웹 서비스 기술을 탑재하여 URC SW플랫폼을 설계하였으며, 사용자는 로봇을 떠나 언제 어디서나 이러한 SW플랫폼을 통해 다양한 로봇의 서비스는 물론 로봇에게 명령을 전달하거나 로봇의 상태를 인지할 수 있도록 한다.URC 로봇은 최소한의 자원을 가진 임베디드 시스템 구조이며, 부수적 보조 지원 서버인 웹 서버를 네트워크상에서 연동하도록 설계 되었다. 사용자는 웹 서버를 통하여 로봇에 접속 할 수 있도록 하며, 웹 서버와 URC 로봇 간에는 gSoap 메시지 교환 방식으로 로봇의 원격 모니터링이 가능하도록 설계 되었다.그림 2는 사용자가 로봇을 원격 모니터링 하기 위한 운용환경으로써, 언제 어디서나 웹을 통하거나, 전용 응용 프로그램을 통해 직접 로봇에 접속이 가능함을 보여준다. 로봇 서버는 웹 서비스 포트를 제공하여, 웹 서버나 기타 WSDL에 의해 작성된 응용 프로그램을 통하여 접속을 가능하게 한다.URC SW플랫폼URC 로봇 환경은 크게 로봇에 탑재되는 웹 서비스 서버와 웹 서버로 구성된다. 두 서버 간에는 gSoap 통신 프로토콜에 의해 정합되며 웹 서버 하단에는 ASIX 엔진을 두어 XML을 gSoap과 바인딩 할 수 있는 핸들러 기반의 서버 확장 기능을 수행한다. 웹 서비스 서버는 로봇의 원격 감시제어 서비스 기능을 위한 WSDL을 작성 배포한다. WSDL은 웹 서버의 ASIX 핸들러로 구현되며, 다른 응용 프로그램에서 통신 핸들러로 적용될 수 있다.URC SW플랫폼은 그림 3과 같이 로봇 제어 모듈(Robot-Control Module), 로봇 모니터링 모듈(Robot-Monitoring Module) 및 홈 서버 연동 모듈(Home Server Module)로 구성된다. 각 모듈은 공통 모듈(Common Module)을 통하여 DBMS나 라이브러리를 접근할 수 있으며, 실시간 운영체제인 Qplus 운영체제 상에서 구현되었다. 로봇 엔진은 로봇의 HW를 직접 제어관리 하는 모듈로서 로봇에 따라 구성에 차이가 있으며 시스템 종속적인 부분이 있을 수 있다. SW플랫폼에서는 공통 모듈을 통해 인터페이스 될 수 있도록 설계함으로써 로봇의 종속적인 부분을 최소화했다.ASIX는 W3C의 SOAP의 표준을 구현한 라이브러리로서, C++과 JAVA 버전으로 배포되고 있다. 웹 서비스 구현의 핵심적인 기능을 지원하며, JAVA에서 WSDL을 자동 생성하거나, WSDL파일에서 웹 서비스 클라이언트 자바 코드를 생성하는 기능이 있어, 웹 서비스 개발 주기를 단축할 수 있다. ASIX 엔진은 핸들러를 통해 웹 서비스 호출 및 응답과정에서 커스터마이징 할 수 있는 구조를 가진다.ASIX는 그림 4와 같이 웹 서비스의 유연한 처리를 위하여 핸들러 기반의 서버 확장 기능의 제공과 SOAP 요청 메시지에 따른 웹 서비스 호출을 담당하는 다양한 프로바이더를 제공한다. ASIX를 이용하여 웹 서비스를 개발하고 배치하기 위하여 비교적 단순한 절차를 따른다. 본 SW플랫폼에서는 JAVA를 이용해 웹 서비스를 개발하므로, 웹 서비스 배치를 위한 WSDD(Web Service Deployment Descriptor)를 이용했다. WSDD는 웹 서비스 배치는 물론, 핸들러와 체인을 등록할 수 있는 기능을 가지며, 웹 서비스 제공자와 사용자가 웹 서비스 제공 및 호출 환경을 커스터마이징 할 수 있도록 한다.gSoap는 C/C++ 환경에서 웹 서비스 제공과 사용을 위한 라이브러리로서 Qplus의 C/C++ 지원 환경에서 웹 서비스를 지원하기 위하여 사용한 도구이다. gSoap를 이용하여 웹 서비스를 개발하기 위해서 서비스 응용프로그램은 RPC를 통해 해당하는 서비스를 제공하여야 하며, 이를 통해 외부에서 들어오는 웹 서비스 요청을 처리한다.이 때 RPC 함수의 구현은 gSoap에서 제공하는 gSoap WSDL Importer를 이용하여 자동적으로 해당 코드를 만들 수가 있는데, 생성된 코드에는 서비스 함수의 프로토타입과 함수에서 사용하는 데이터 타입이 선언되어 있다. 또한 gSoap 컴파일러는 서비스 RPC Skeleton과 데이터 타입 Serialization 코드를 자동적으로 생성하여 서비스 응용프로그램이 웹 서비스로서 실행될 수 있도록 해준다.로봇의 모니터링 및 제어 서비스는 gSoap 을 통하여 구현되고, 사용자 권한 인증은 JAVA 클래스로 구현되어 ASIX 핸들러에 등록하여 처리하도록 설계했다. 웹 서비스는 제한된 자원의 임베디드 시스템 환경인 로봇 서버에 구형되어야 함으로써, JAVA 환경보다는 비교적 자원의 소모가 적은 C/C++ 개발 환경에 적응하는 gSoap을 이용하여 구축하였다. 로봇 관리를 위한 인터넷의 웹 서버는 웹 서비스 호출 클라이언트 기능을 포함하여 ASIX 엔진을 구축하여 구현했다.로봇 서버의 전체적인 구성을 그림 6에 나타냈다. URC 로봇의 감시 및 제어를 위한 웹 서비스는 최상위 레이어에 포함되고 웹 서비스는 로봇 제어 라이브러리와 웹 서비스의 SOAP메시지를 처리하는 모듈을 포함하는 데몬 프로세스로 운영하였다. 통합정보관리 모듈은 로봇의 모니터링 정보의 추적 감시를 위한 로깅 및 로봇 좌표 맵 관리를 위한 로봇의 정보관리를 담당하고, 로봇의 다양한 정보 수집 및 관리를 위하여 DBMS를 사용하여 설계 하였다. 웹캠의 영상을 전달하는 영상이미지 서버를 따로 두어 웹 서비스 데몬과 다른 포트를 사용하여 같이 동작하게 되므로 사용자는 로봇의 영상과 로봇의 제어 및 관리를 선택적으로 필요에 의해 사용할 수 있도록 하였다.결론앞에서도 언급하였듯이 여러 분야에 걸쳐 SW플랫폼의 중요성이 날로 증대하고 있다. 수많은 SW플랫폼이 생겨나기도 하지만 동시에 그 만큼 많은 SW플랫폼들이 소멸하기도 한다. SW플랫폼이 성공하기 위해서는 시장수요에 맞는 기능과 구조가 지원되어야 하는 기술적인 요소에서부터 업계의 지지를 얻어야 하는 정치적인 요소와 같이 수많은 요인들이 작용한다. 하지만 한번 보급에 성공한 SW플랫폼들은 이전 데스크톱 시장에서의 마이크로소프트 사의 윈도우와 같이 시장의 지배력을 확고히 하여 많은 수익을 창출하는 것이 현실이기도 한다. 한국전자통신연구원은 현재 개발 중인 텔레매틱스 및 URC 분야의 SW플랫폼의 성공적인 보급을 통하여 세계시장에서의 지배력을 강화함과 동시에 국내 관련업계의 세계적인 경쟁력 확보에 적극적으로 지원할 예정이다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지