[예제]_e-test_Professionals_Word_2010
TCP/IP 기반의 홈 네트워크 서비스를 위한 론웍스 네트워크 어댑터 구현 요 약 본 논문에서는 전력선 기반의 론웍스(LonWorks) 네트워크에 연결되어 있는 다양한 디바이스들 을 TCP/IP 기반의 인터넷을 통해 제어, 감시 및 관리 해주는 소프트웨어인 론웍스 네트워크 어 댑터(LonWorks Networks Adaptor)의 내부 구성 요소를 제안 한다. 본 논문에서 제안하는 론웍스 네트워크 어댑터 구조는 TCP/IP 와 EIA 709.1 프로토콜(LonTalk Protocol)을 상호 연결해주는 브 릿지(Bridge) 구조로써 향후 홈 네트워크 상의 이타 다른 미들 웨어(HAVI, JINI, UPNP, HNCP) 등이 혼재하여 있을 경우 이들 디바이스들과 론웍스 디바이스 간의 상호 연동서비스를 제공하 기 위한 브릿지 구조이다. TCP/IP 를 통한 원격 감시 및 제어 서비스를 지원하기 위해서 서버와 클라이언트는 웹 서버, SSDP, SOAP 등의 프로토콜과 XML 파서(parser)을 지원해야 한다. 또한, 서버와 클라이언트가 모두 Java 로 구성되어있으므로 JVM 환경이 지원되어야 한다. LNA Server 는 론웍스 네트워크(LonWorks Network)에 대한 원격 제어, 감시의 실제적인 서버로서, 홈 네트 워크의 모니터, 진단, 관리, 형상 정의(Configuration)등 홈 네트워크를 실제적으로 운용, 유지 보 수하는 역할을 수행한다. XML 을 통한 객체화된 디바이스 정의를 통해 론웍스 디바이스들을 논리적으로 관리함으로써 향후 이타 미들 웨어들과 상호 연동을 위한 브릿지를 설계할 시 유 연성 있는 구조를 제공할 것이다. 서 론 LNA 서버는 각 디바이스를 추상화하기 위한 device description 파일을 이용해 LonWorks 네트워크에 물 려있는 디바이스 목록을 관리하며, 또한 Lonware API 를 이용하여 LonWorks 네트워크의 상태 정보 와 LonWorks 네트워크에 연동되어 있는 디바이스를 감시 및 제어하는 데몬 프로세스이다. LNA Graphic Client 는 LNA Server 의 정보를 사용자에게 제공하 고 사용자의 입력을 XML 파일 형식으로 LNA Server 에 전달한다. LNA Server 와 LNA Client 간에 전달되는 XML 파일은 XML 파서를 통해 양측에서 해석하여 사용된다. LNA Server 는 초기화시에 LonWorks 네트워크의 상태를 감지하여 Device DB 를 구성하며 SOAP 를 통해 LNA Graphic Client 의 요구를 처리하고 SSDP 를 통하여 서비스 Descovery 를 제공한다. 또한 XML 파일을 통한 다양한 명령 표현들을 제공함으로써 홈 제어 네트워크 상에서 좀더 다양한 서비스를 제공할 수 있는 기반 플랫폼 구조를 제공하였다. 홈 네트워크 론웍스 네트워크 어댑터(LNA) 시스템은 SSDP(Simple Service Discovery Protocol)를 적용하여 서버의 IP 나 PORT 를 멀티캐스트 방식으로 전송하여 service 를 찾고 SOAP(Simple Object Access Protocol) 서버가 클라이언 트와 통신하는 방식으로 구성되어있다. 서버와 클라 이언트 모두 자바(Java)로 작성되어 있으며 자바 가 상 머신(Java Virtual Machine)상에서 수행된다. 클라 이언트와 서버와의 통신은 웹 서버와 웹 브라우저 가 서로 데이터를 주고 받는데 사용되는 TCP/IP 프 로토콜이 그대로 사용된다. 클라이언트와 서버간의 주고 받는 데이터는 XML 을 통해서 이루어지며 론웍스 네트워크 상의 노드에 명령을 내리거나 데 이터를 가져오는 일은 서버 시스템에 설치된 론웍 스 네트워크 인터페이스를 통해서 이루어 진다. 457 JCCI2004 서버 리눅스 서버 SSDP SSDP SOAP SOAP LNAServer JAVA™ VM (cvm) Lonware API(JNI) 인터넷(TCP/I SOAP P) 요청 응답처리 X GUI 프로그램 IP,PORT 요청 SOAPHTTPServer 클라이언트 요청 JAVA™ VM SSDPClient SOAPClient GRAPHIC CLIENT 그림 2. LNA 서버 구조 Lon Network 그림 1. LNA 전체 시스템 구성도 자바에서는 론웍스 네트워크에 접근하여 직접 명령 을 보내거나 데이터를 받아오는 일을 수행 할 수 없다. 때문에 기존에 C 를 기반으로 만들어진 론웍 스 동작에 관련된 API 인 Lonware API 를 사용해야 만 하는데 자바와 Lonware API 의 다리 역할을 하는 것이 JNI(Java Native Interface)이다. 론웍스 노드에 특정한 명령을 내리거나 데이터를 받아오는 복잡한 일은 JNI 를 통해서 Lonware API 를 호출하여 이루 어 진다. 제안된 LNA 시스템 구조 그림 2 는LNA Server 구조를 나타낸다. LNAServer 가 시작하면 먼저 conf 파일을 로드하여 서버를 초기화 한다. 초기화된 서버는 Lonware 의 초기화 메소드를 호출하여 론웍스 네트워크를 초기화 한다. Lonware 는 C 로 작성된 Lonware API 중에서 홈 네 트워크를 관리하는데 필요한 함수들을 JNI 를 통해 서 호출 할 수 있게 해주는 메소드들의 모임이다. API 를 호출하여 실제로 장치를 건드리는 부분이 이 부분이기 때문에 가장 중요한 부분이라 할 수 있다 론웍스 네트워크가 초기화에 성공하면 JNI 를 통해서 각 노드를 관리할 수가 있게 된다. 그리고 물리 디바이스 목록과 논리 디바이스 목록을 로딩 한 후에 IP,PORT 를 가지고 있는 SOAPHTTPServer 를 실행하고 클라이언트와 응답처리 할 수 있는 SOAPMessge 객체를 생성한다. 이 IP,PORT 를 받아 멀티캐스트 방식으로 같은 그룹내에 계속해서 날려 주는 SSDPServer 를 실행하게 된다. 클라이언트에서 는 SSDPClient 와 SSDPServer 와의 통신에서 IP 와 PORT 를 얻어와서 SOAPClient 와 SOAPHTTPServer 를 연결하여 각 노드에 명령을 내리고 정보를 얻어 올 수 있게 된다. 그림 3 은 LNA 서버내의 SSDP 서버 구조를 나타냈 다. 본 구조는 LonWorks Device Monitoring Application 에서 LNA 서버를 찾는 방식을 위해 SSDP(Simple Service Discovery Protocol)를 적용했다. SSDP 는 HTTP 메시지를 멀티캐스트 메시지에 실어 전송하여 서비스를 쉽게 찾게하는 방식이다. SSDP 에는 SSDP 서버와 SSDP 클라이언트로 구성되는데 LNA 서버에는 SSDP 서버를 수행한다. SSDP 서버는 멀티캐스트 주소 239.255.255.250 과 특정 port 를 감 시하고 있다가 SSDP 클라이언트가 요청(request) 해 오면 자신의 정보를 응답한다. 일반적으로 UPnP 에 서는 1900 port 를 사용하기 때문에 LNA 서버에서는 그것을 제외한 다른 port 를 이용한다. SSDP 클라이 언트가 SSDP 서버의 이름으로 요청을 해오면 SSDP 서버는 클라이언트 에게 SOAPHTTPServer 의 IP,PORT 번호를 응답해준다. 응답을 받은 클라이언 트는 서버에게서 받은 IP 와 PORT 를 SOAP 클라이 언트 객체에 넘겨 SOAPHTTPServer 에 접속할 수 있게 해준다. MULTICAST_ADDRESS = 239.255.255.250 MULTICAST_SENDI NG_PORT = 5554 SSDPServer 객체 생성 객체 생성 객체 생성 SOAPMessage 요청 처리 UDP (SSDP) 요청 응답처리 클라이언트 서버 시작 GUI (자바를 지원 필수) LNAServer 제어 명령 Lonware Lonware API IP,PORT 멀티캐스트 메시지 전 송 UDP SSDPServer (IP,PORT) S SSDPClient MULTICAST_LISTE NING_PORT = 5555 SSDPServer Name 멀티매스트 메시지 전송 그림 3. SSDP 서버 구성도 SOAP 은 이기종 운영체제에서 인터넷을 통한 RPC 호출을 지원하기 위해서 HTTP 프로토콜을 통해서 정보를 XML 문서로 구성하여 전송하는 것이다. SOAPHTTPServer 는 론웍스 디바이스와 LNA 서버 간의 RPC 를 SOAP 으로 구현하였다. SOAPClient 는 458 Java JNI LonWorks Network Interface Lonware DB (File System) JCCI2004 SSDP 클라이언트로 부터 받은 IP,PORT 로 SOAPHTTPServer 와 접속을 하고 XML 로 만들어진 요청 메시지를 서버로 보낸다. XML 요청메시지 (TCP/IP) SOAPClient Command Result XML 응답메시지 SOAPHTTPServer L N A XML 요청메시지 분석 요청 해석 요청 메소드 호출 응답메시지 작성 결 론 그림 4. SOAPHTTPServer 구조 요청메시지를 받은 서버는 메시지를 해석하여 Lonware API 의 메소드를 호출한다. 결과를 리턴받 은 SOAPMessage 모듈은 응답메시지를 XML 로 작 성하여 클라이언트에 보내주게 된다. 대부분의 클라 이언트의 요청은 서버에서 Lonware API 를 호출해야 처리 할 수 있는 요청들이다. 그림 5 는 JNI 구현방 식에 대한 그림을 나타냈다. Lonware API 는 론웍스 네트워크 인터페이스(LonWorks Network Interface)를 직접 건드리는 부분이 존재 하기 때문에 그것에 대 한 구현이 용이하도록 하기 위해서 C 로 구현 되어 있다. 이것을 자바에서 사용 해야 하기 위해서 JNI(Java Native Interface)라는 기술이 사용되었다. 이 기술을 사용하면 다른 언어로 작성된 바이너리 (binary) 코드를 자바에서 직접 사용할 수 있게 된다. 이것을 사용하기 위해서 C 로 작성된 함수를 호출 하기 위한 클래스를 작성 해야만 한다. 이 클래스에 native 라는 예약어로 시작하는 메소드를 선언만 하 고 내용은 쓰지 않는다. 동적 라이브러리는 클래스 가 처음 생성되거나 사용될 때 호출 되며 메소드 사용시 라이브러리의 함수와 클래스의 메소드를 연 결되어 작동하게 된다. 본 논문에서는 전력선 기반의 론웍스(LonWorks) 네 트워크에 연결되어 있는 다양한 디바이스들을 TCP/IP 기반의 인터넷을 통해 제어, 감시 및 관리 해주는 소프트웨어인 론웍스 네트워크 어댑터 (LonWorks Networks Adaptor)의 내부 구성 요소를 제 안 하였다. 결과로써 제안된 LNA는 HTTP, TCP/IP 인터넷을 통해 EIA 709.1 프로토콜 기반의 론웍스 네트워크와 상호 연동 시킴으로써 사용자로 하여금 쉽게 홈 자동화 디바이스들을 감시, 제어 및 네트워 크의 분산화를 제공하며, 홈 자동화 네트워크 개발 시에 노드 간의 상호 연동 구조를 각 응용목적에 맞도록 보다 유연성 있게 지원함으로써 TCP/IP 와 EIA 709.1 프로토콜(LonTalk Protocol)을 상호 연결해 주는 브릿지(Bridge) 구조로써 향후 홈 네트워크 상 의 이타 다른 미들 웨어(HAVI, JINI, UPNP, HNCP) 등이 혼재하여 있을 경우 이들 디바이스들과 론웍 스 디바이스들 간의 상호 연동서비스를 제공하기 위한 브릿지 등에 사용 될 시 유용한 구조가 될 것 이다. 현존하는 론웍스 디바이스들을 대상으로 론웍 스 네트워크 어댑터(LNA)를 테스트 해 봄으로써 본 구조의 유용성을 증명하였다.