논문 2011-5-27
USN환경에서 Agilla를 이용한 개인화된 모바일 에이전트 시스템 구현
Implementation of Personalized Mobile Agent System using Agilla in Ubiquitous Sensor Network
김강석*, 이동철**
Gang-Seok Kim, Dong-Cheol Lee
요 약 현재의 센서네트워크는 고정된 센서노드의 센싱에 의해 수집된 정보를 분석하여 서비스를 제공한다
.
이러한 방식은 빌딩 오토메이션,
홈오토메이션,
실시간 도로 기상정보,
헬스케어 환경 등 주요 센싱 대상인 사람의 상태와 위 치변화,
그리고 주변 환경의 변화에 능동적으로 대처하기 어렵다.
이러한 다양한 환경에서의 개인별로 적합한 동적 상황을 지원하기 위해서는 사람의 이동과 주변상황의 변화에 따라 능동적으로 차별화된 특정 정보를 제공해주어야 한다.
본 본문에서는 건축물 등에 모바일 에이전트 미들웨어가 탑재된 무선 센서노드들을 설치하여 구축한 센서네트 워크 환경을 통해 개인화된 서비스(
화재의 발생 위치와 확산경로의 추적 등)
를 실시간 제공하는 개인화된 센서 모바 일 에이전트 미들웨어를 구현하였다.
Abstract The current sensor network analyzes the data collected by the sensing of fixed sensor nodes and provides a service. However, this method cannot actively handle the state and the change in the position of people, 'the target for sensing and the change in the environment', including home automation, building automation and real-time road & weather information, and healthcare environment, etc. To support a dynamic situation which is appropriate for an individual in this diverse environment, it is necessary to provide actively differentiated specific information according to the movement of people and the changes in the environment. In this study, a individualized sensor mobile agent middleware which provides the individualized information (the location of fire incidence and the trace for the path of spread), has been realized through the sensor network environment constructed by the installation of wireless sensor nodes mounted with mobile agent middlewares in buildings.
Key Words : WSN, Mobile Agent, Personalized
*정회원, 제주대학교 컴퓨터공학과
**비회원, 제주대학교 경영정보학과 (교신저자) 접수일자 2011.8.6, 수정완료 2011.9.23 게재확정일자 2011.10.14
Ⅰ. 서 론
센서네트워크는 각종 센서를 이용하여 무선으로 정보 를 수집할 수 있도록 구성한 네트워크를 말한다. 빌딩이 나 호텔과 같은 대형 건축물에는 화재감시와 같은 재해
방지 시스템의 필요성이 크다. 대부분의 건축물에는 시
공 때 화재감시 시스템이 설치되어 있다. 기존 시스템은
유선망으로 전기배선이나 감시카메라를 이용하여 화재
감시를 하고 있다. 하지만 화재나 다른 재난에 의해 유선
망이 차단되면 화재가 발생한곳의 위치 파악이 어렵고
확산되는 경로를 확인하기 어렵다
[1]. 따라서 건물 내부
사람들에게 대피 경로를 제대로 제공하기 어렵다. 이러
한 환경에서의 개인별로 적합한 동적 상황을 지원 및 서
비스 제공을 위해서는 사람의 이동과 주변상황의 변화에 따라 능동적으로 센서노드의 기능을 변경하여 고정된 정 보가 아닌 개인별 현재 상황에 따른 차별화된 특정 정보 를 제공해주어야 한다
[2][3]. 통상적인 센서 네트워크 방식 은 개인화된 정보를 실시간으로 제공해야 하는 환경(빌 딩화재, 헬스케어 등)에서 주요 서비스 대상인 사람의 상 태와 위치변화, 주변 환경의 변화에 능동적으로 대처하 기 어렵다
[4]. 본 본문에서는 건축물 등에 모바일 에이전 트 미들웨어가 탑재된 무선 센서노드들을 설치하여 구축 한 센서네트워크 환경을 통해 개인화된 서비스(화재의 발생 위치와 확산경로의 추적 등)를 실시간 제공하는 개 인화된 센서 모바일 에이전트 미들웨어를 구현하고자 한 다.
본 논문의 구성은 다음과 같다. 서론에 이어 2장에서 는 관련 연구로서 무선 센서 네트워크를 위하여 설계된 TinyOS
[5][6]와 TinyOS위에서 동작하는 에이전트 기반 의 미들웨어인 Agilla
[7][8][9], 개인화된 서비스를 제공하기 위한 프로파일에 대하여 살펴본다. 3장에서는 제안한 개 인화된 모바일 에이전트 시스템에 대하여 살펴보고, 4장 에서는 제안한 방법의 실험 및 결과에 대하여 논하며, 5 장에서는 결론을 맺는다.
Ⅱ. 관련 연구
1. TinyOS
TinyOS는 미국 UC Berkeley 대학에서 개발된 무선 센서 네트워크를 위한 운영 체제이다. 이름에서도 알 수 있듯이, TinyOS 기반의 프로그램들은 매우 작은 용량의 크기(대부분 30Kbytes 이하)로 컴파일 되며, 무선 센서 노드의 일반적인 특징(최소한의 하드웨어, 작은 메모리, 낮은 CPU성능, 한정된 에너지)을 고려하여 최적화된 운 영 체제이다. TinyOS는 한 번에 하나의 애플리케이션만 을 실행한다. 기본적으로 TinyOS는 센서로부터 데이터 를 취득하여 무선 네트워크로 전송하는 간단한 동작을 담당하기 때문에, 전원 소모와 메모리 소모가 많이 발생 하게 되는 여러 개 애플리케이션이 동시에 동작하는 기 능을 제외 시켰다. 다만, 여러 개 기능을 동시에 동작시키 고자 할 경우에는 한 개의 애플리케이션에 아주 작은 단 위로 동작을 세분화하여 태스크(task) 형태로 동작 시킬 수 있다. 그림 1은 TinyOS의 응용 구조도 이다.
그림 1. TinyOS 응용 구조도
Fig. 1. TinyOS application structure
컴파일된 바이너리 파일은 센서 노드에 다운로드 한 후, 전원을 인가하면 하드웨어 초기화와 커널 초기화가 이루어진다. 이후 TinyOS의 커널이 동작하게 된다.
TinyOS 커널은 단순한 FIFO(first input first output) 형 태의 스케줄러(scheduler)로 동작을 하며, 이 스케줄러는 전원이 꺼질 때까지 무한 루프(loop)에서 동작한다.
2. 모바일 에이전트 미들웨어 Agilla
Agilla는 무선 센서 네트워크를 이용하여 센서 노드들 의 코드와 상태를 이동할 수 있게 하는 모바일 에이전트 기반의 미들웨어이다. Agilla는 유연성 있게 센서노드들 의 상태 정보들이 확산되는 것을 제어 한다. 그림 2는 Agilla의 시스템 구조를 보여주고 있다. Agilla는 TinyOS 위에서 동작을 하며, 각각의 노드에서 에이전트의 기능 을 수행한다. 에이전트의 수는 변하기 쉽기 때문에 에이 전트 중에 이용할 수 있는 메모리의 총계로 결정한다.
Agilla는 각각의 노드에서 이웃 리스트와 투플 스페이스 의 리소스를 제공한다. 이웃 리스트는 인접하는 노드의 주소를 포함하고 있으며 각각의 노드들의 정보가 이동하 고 복제되기 위해 이용된다. 투플스페이스는 에이전트 사이에 통신을 위한 decoupled-style를 제공한다.
그림 2. Agilla의 시스템 모델 Fig. 2. System model of Agilla
3. 개인화
개인화는 “고객이 원하거나 필요로 하는 정보를 제공 하여 이를 찾는데 걸리는 시간과 비용을 절약해주고 손 쉽게 접근하도록 고객선호도에 따라 동적으로 제공하는 것”을 말한다
[10]. 최근 댁내의 가전기기들을 유무선 네트 워크에 연결하여 지능화된 서비스를 제공하는 지능형 홈 네트워크에 많은 관심과 연구개발이 진행되고 있다
[11]. 지능형 홈 네트워크 구성을 위해서는 사용자의 댁내 기 기에 대한 개입을 최소화하면서 사용자 개인의 특성에 맞추어진 서비스를 제공해야 한다. 따라서 홈 네트워크 환경에서 댁내에 배치된 고정 센서 노드들과 사용자에게 부착된 이동 센서 노드로 구성 된 무선 센서 네트워크를 이용하여 지능화된 홈 네트워크 서비스를 제공하는 서비 스 모델이 필요하다.
Ⅲ. 개인화된 모바일 에이전트 설계
1. 모바일 에이전트의 구조
그림3은 Agilla의 미들웨어 구조를 자세히 보여주고 있다. 위에서 언급된 바와 같이 TinyOS위에 응용프로그 램으로써 Agilla가 탑재되어지며 일반적인 모바일 에이 전트처럼 Agilla 역시 Agilla Mobile Agent Middleware 엔진 위에 모바일 코드와 상태정보가 이동해 와서 자신 이 가지고 있는 처리 조건들에 따라 위임받은 명령을 실 행한다.
그림 3. Agilla의 미들웨어 구조
Fig. 3. Agilla's middleware Architecture
본 논문에서는 그림 3의 Agilla 미들웨어 구조에 개인 화 서비스를 지원할 수 있도록 Profile관련 코드를 추가 삽입하여 재컴파일 하였다. 다만 실험의 편의를 위해 온
도와 습도, 조도 등을 읽고 수정하는 기능만을 추가하였 고 구동기 기능은 넣지 않았다.
2. 개인화를 위한 Command와 Profile 표 1은 본 논문에서 구현한 개인화된 서비스를 제공하 는 모바일 에이전트에서 사용하게 될 명령들이다.
Local Remote
out: insert rout: insert in: remove einp: probing
remove rd: read rrdp: probing read imp: probing remove rrdpg: probing grout
read(1-hop) rdp: probing read
regrxn: register reaction deregrxn: deregister
reaction
표 1. 개인화를 위한 Agilla 명령어
Table 1. Agilla command for personality
표 2, 3, 4는 Agilla 미들웨어에서 개인화된 서비스를 제공하기 위한 모바일 Agent들과 상호작용할 수 있도록 추가된 Nesc기반의 Profile 코드의 일부이다.
interface Profile {
async command uint32_t now();
async command void setPin(bool set);
}
표 2. Nesc기반의 Profile Interface Table 2. Nesc based Profile Interface
configuration ProfileC
{ provides interface Profile; } implementation
{ components ProfileP;
components UClockC;
components Main;
Profile = ProfileP;
ProfileP.UClock -> UClockC;
Main.StdControl -> ProfileP;
Main.StdControl -> UClockC;
}
표 3. Nesc기반의 Profile Configuration Table 3. Nesc based Profile Configuration
module ProfileP {
provides interface Profile;
provides interface StdControl;
uses interface UClock;
}
implementation {
command result_t StdControl.init() {
TOSH_MAKE_GPIO_93_OUTPUT();
return SUCCESS;
}
command result_t StdControl.start() { return SUCCESS; }
command result_t StdControl.stop() { return FAIL; }
async command uint32_t Profile.now() { return call UClock.readCounter(); }
async command void Profile.setPin(bool set)
{ if(set)
TOSH_SET_GPIO_93_PIN();
else
TOSH_CLR_GPIO_93_PIN();
}
async event result_t UClock.fire() { return SUCCESS; }
}
표 4. Nesc기반의 Profile Module Table 4. Nesc based Profile Module
3. 개인화를 위한 프로파일
댁내의 사람과 사물 같은 객체의 위치를 인식하고 이 를 기반으로 연속적인 거주자의 상황 정보에 따라 맞춤 형 서비스의 제공은 무선 센서를 사용하는 유비쿼터스 환경에서 매우 중요한 기능이다. 무선센서 기반 모바일 환경에서 사용자에게 개인화 서비스를 제공하기 위해서 는 사용자의 정보, 사용자의 선호도, 디바이스 설정, 디바 이스 사용 권한 등을 포함하는 데이터가 필요하다. 이러
한 데이터를 수집하고 관리하기 위해 사용자 프로파일을 정의였다. 그림 4는 본 논문에서의 상황 정보를 위해 정 의한 프로파일 구성요소이다. 구성요소는 크게 사용자 속성과 디바이스 속성으로 나누어지며 상황인식 서비스 에 적용된다. 사용자의 일반적 속성은 사용자의 이름, 나 이, 성별 등의 기본정보, 사용자 등급, 가전기기 초기 설 정 시 인증을 위한 ID 와 패스워드 요소로 구성된다. 프 로파일 속성은 사용자가 기기를 작동했을 때 수집되는 요소들로서 작동된 디바이스, 시간, 센서로부터 수집되는 온도, 조도, 습도, 사용자 위치 등이며 사용자의 개인화 서비스 제공에 사용된다. 가전기기 속성은 기기에 대한 명칭, 제조사 등의 일반적인 요소와 기기에 대한 사용자 의 권한을 나타내는 권한 사용자 요소로 구성된다. 홈 네 트워크 환경 사용자는 관리자와 일반 사용자로 구분되어 정의된다. 관리자는 일반사용자의 프로파일을 생성 및 수정 할 뿐 아니라 서비스(기기동작)에 대한 접근권한을 부여 할 수 있다.
그림 4. 프로파일 구성요소 Fig. 4. User Profile elements
일반사용자는 홈 네트워크 환경에서 자신에게 부여된 접근 권한에 따라 서비스를 이용한다. 사용자 프로파일 의 등록 및 관리는 홈네트워크의 에이전트 관리 서버에 구현된 프로파일 관리기 (profile manager)에 의해 관리 된다. 프로파일 관리기에 접근하게 되면 패스워드로 인 증과정을 거치게 된다.
Ⅳ. 구현 및 실험 결과
1. 구현환경
제안된 방식은 TinyOS가 탑재된 Maxfor사의 TIP7xx
모트(TelosB)들을 센서노드로 사용하여 무선 센서 네트 워크를 구축하였다. 센서노드는 무선통신을 위해 ZigBee 프로토콜을 이용하며, 250Kbps의 처리량, 48KB의 program flash, 10KB Data RAM, USB 인터페이스를 가 지고 있다. 센서 수집 및 무선통신은 네트워크 임베디드 시스템을 위한 언어인 nesC 언어로 구현하였다. 모바일 미들웨어는 Washington University의 Agilla를 사용하였 다. Agilla의 공식적인 테스트 모트는 Mica2, MicaZ, 그 리고 Tmote Sky들이다. 따라서 본 논문에서 사용한 TIP7xx 시리즈 모트를 위해 Agilla의 코드 중 일부를 수 정하였다. 그림 5는 사용자 모바일 에이전트와 실내에 설 치된 모바일 에이전트 노드와의 통신을 통한 개인화된 서비스 시스템 구성도를 나타내는 그림이다.
그림 5. 시스템 구성도
Fig. 5. System architecture
모바일 에이전트 센서 노드들에는 모바일 미들웨어인 Agilla를 탑재하고 있으며 에이전트 관리 시스템을 통해 개인화 서비스 에이전트가 주입된 상태이다. 사용자 모 바일 에이전트에는 모바일 에이전트 센서노드처럼 모바 일 미들웨어인 Agilla가 탑재되어 있으며 개인화 서비스 를 제공받는데 필요한 개인 프로파일 정보와 사용자 에 이전트가 주입된 상태이다. 사용자 모바일 에이전트는 사용자의 신체 주변에 부착되어 사용자와 함께 이동 하 게 되며 주변의 모바일 에이전트 센서노드와 응용 수준 에서 통신을 통해 개인화된 서비스를 제공 받는다. 이때 개인화 프로파일을 사용하여 서비스의 종류, 사용권한, 사용량 등을 제약하게 된다.
2. 실험 및 결과
그림 6은 센서 노드에 모바일 에이전트 미들웨어 플랫 폼을 탑재하기 위해 Agilla를 TIP7xx 모트에 맞도록 컴 파일하고 컴파일된 이미지를 다운로드하는 과정이다.
그림 6 Mobile middleware 컴파일 및 다운로드 Fig. 6. Mobile middleware compile & download
그림 7은 개인화된 모바일 서비스를 위한 개인화 에이 전트를 센서 노드에 주입하기 위한 실행과정이다.
그림 7. Agilla Injector 실행 Fig. 7. Agilla Injector execute
그림 8은 실행된 Agilla Agent Injector를 보여준다.
Agent Injector를 통해 모바일 노드와 사용자 노드에 개
인화된 에이전트를 주입하고 관리하게 된다.
그림 8. Agilla Injector와 관리기
Fig. 8. Agilla Injector & management
그림 9는 개인화 서비스를 제공할 센서 노드의 실내에 설치 모습이다. 방 입구와 전등부근, 거실, 화장실에 각각 설치하였다.
그림 9. 센서 노드의 실내 장착
Fig. 9. Sensor node setting at in-door
TinyOS에서 제공하는 Oscilloscope 프로그램을 사용 하여 데이터를 확인하였기 때문에 서로 다른 노드에서 전달된 데이터가 시작점이 같은 위치에서 표시되었다.
또한 실내에 설치된 센서노드와 사용자 몸에 장착된 모 바일 노드사이의 신호 세기를 조절하기 위해 사용자 몸 에 장착된 모바일 노드의 세라믹 안테나에 호일을 씌워 실험하였다. 실험의 편의를 위해 구동기는 사용하지 않 았으며 모바일 명령에 따른 신호의 발생만을 확인하였다.
그림 10. 센서노드 1의 데이터 Fig. 10. Outdata of sensor node
그림 10은 사용자 몸에 장착된 사용자 모바일 센서 노 드와 그림 9에서와 같이 실내에 장착된 센서노드 중 거실 에 설치되 있는 센서 노드 1과의 상호 작용 후에 전송된 데이터이다.
그림 11. 센서노드 2의 데이
Fig. 11. Outdata of sensor data
그림 11은 사용자 몸에 장착된 사용자 모바일 센서 노
드와 그림 9에서와 같이 실내에 장착된 센서노드 중 안방
입구에 설치되 있는 센서 노드 2와의 상호 작용 후에 전
송된 데이터이다.
그림 12. 센서노드 3의 데이터 Fig. 12. Outdata of sensor node
그림 12는 사용자 몸에 장착된 사용자 모바일 센서 노 드와 그림 9에서와 같이 실내에 장착된 센서노드 중 안방 실내등에 설치되 있는 센서 노드 3과의 상호 작용 후에 전송된 데이터이다.
Ⅴ. 결 론
본 논문에서는 센서네트워크 환경에서 사용자 또는 객체의 프로파일에 따라 개인화된 정보를 제공하는 개인 화된 모바일 에이전트 시스템을 Agilla를 기반으로 설계 구현하였다. 본 연구는 건물이나 가정의 개인화 된 홈오 토메이션, 각종 재해나 재난관리 시스템 등에 적용할 수 있을 것이다. 현재의 모바일 에이전트 Injector가 모바일 에이전트를 수동으로 주입하게 되어 있으나 향후 정책기 반의 에이전트 관리 규칙을 적용하는 시스템으로 확장할 필요가 있다.
참 고 문 헌
[1] 부준필, 김도현, 박동국, “화재 대피 유도를 위한 센서 및 유도등 네트워크 기반의 통합 논리 모델”, 한국인 터넷방송통신학회 논문지, 제 9권 제 5호, pp.109-104, October 2009
[2] 남춘성, 장경수, 신동렬, “무선 센서 네트워크에서 에 너지 효율적 클러스터 헤드 선정 기법”, 한국인터넷 방송통신학회 논문지, 제 10권 제 2호, pp.25-32,
April 2010
[3] W. Heinzelman, A. Chandrakasan, H. Balakrishnan:
Energy-efficient routing protocols for wireless microsensor networks. In Proc. 33rd Hawaii Int.
Conf. System Sciences (HICSS), Maui, HI (2000) [4] 오지수, 이명화, 임명재, 이기영, “u-Healthcare를 위
한 건강모니터링 시스템에 관한 연구”, 한국인터넷방 송통신학회 논문지, 제 9권 제 4호, pp.9-15, October 2009
[5] Philip Levis, Sam Madden, et al, "TinyOS: An Operating System for Wireless Sensor Networks", Aarts (Eds.), Ambient Intelligence, Springer-Verlag, 2004.
[6] TinyOS, http://www.tinyos.net/
[7] http://mobilab.wustl.edu/projects/agilla.
[8] C.-L. Fok, G.-C. Roman, C. Lu, "Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications" In Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'05), Columbus, Ohio, 2005, pp. 653-662.
[9] C.-L. Fok, G.-C. Roman, C. Lu, "Mobile Agent Middleware for Sensor Networks: An Application Case Study" In Proceedings of the 4th International Conference on Information Processing in Sensor Networks (IPSN'05), LosAngeles, California, 2005, pp. 382-387.
[10] 김룡, 이지현, 주원균, 김영국, “모바일 환경에서 혼 합필터링 방법을 사용한 개인화 서비스 기법”, 한국 정보과학회 학술발표 논문집 제3권 제호 pp.286-288, 2006.
[11] Raú Jimeno et.al “An architecture for the personalized
control of domotic resources”, Proceedings of the
2nd European Symposium on Ambient Intelligence,
pp. 51-53, 2004.
※ 본 논문은 2010년도 제주대학교 학술연구지원사업에 의하여 연구되었음
("This work was supported by the research grant of Jeju National University in 2010")