상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 UPnP 네트워크 시스템에서의 OBJE 네트워크 기기 서비스 장치는 OBJE 기기를 발견하고, 발견된 상기 OBJE 기기에 대한 정보를 제공하는 정보 제공부 및 상기 OBJE 기기에 대한 정보를 기초로 상기 OBJE 기기와 대응하는 UPnP 기기, 상기 OBJE 기기와 데이터 타입이 동일한 카운터 OBJE 컴포넌트(component) 및 상기 OBJE 기기와 상기 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트를 생성하고, UPnP 컨트롤 포인트에서 상기 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어하는 OBJE 서비스 제어부를 포함하는 것을 특징으로 한다.
이때, 상기 OBJE 서비스 제어부는 상기 OBJE 기기와 대응하는 UPnP 기기를 생성하는 UPnP 기기 생성부, 상기 OBJE 기기와 데이터 타입이 동일한 카운터 OBJE 컴포넌트를 생성하는 카운터 OBJE 컴포넌트 생성부, 상기 OBJE 기기와 상기 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트를 생성하는 클라이언트 생성부 및 UPnP 컨트롤 포인트에서 상기 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어하는 OBJE 제어부를 포함할 수 있다.
이때, 상기 UPnP 기기 생성부는 UPnP 네트워크에 상기 OBJE 기기와 대응하는 UPnP 기기를 생성하고, 상기 클라이언트 생성부 및 상기 카운터 OBJE 컴포넌트 생성부는 OBJE 네트워크에 상기 OBJE 클라이언트 및 상기 카운터 OBJE 컴포넌트를 각각 생성할 수 있다.
이때, 상기 카운터 OBJE 컴포넌트 생성부는 상기 발견된 OBJE 기기가 OBJE 소스 컴포넌트인 경우 상기 OBJE 소스 컴포넌트와 데이터 타입이 동일한 OBJE 싱크(sink) 컴포넌트를 생성하고, 상기 발견된 OBJE 기기가 OBJE 싱크 컴포넌트인 경우 상기 OBJE 싱크 컴포넌트와 데이터 타입이 동일한 OBJE 소스 컴포넌트를 생성할 수 있다.
이때, 상기 OBJE 제어부는 상기 UPnP 컨트롤 포인트의 제어 명령이 상기 UPnP 기기로 입력되면 상기 OBJE 클라이언트에서 상기 OBJE 기기와 상기 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키도록 제어할 수 있다.
이때, 상기 정보 제공부는 OBJE 디스커버리(discovery)를 통해 상기 OBJE 기기를 발견할 수 있다.
본 발명의 UPnP 네트워크 시스템에서의 OBJE 네트워크 기기 서비스 방법은 OBJE 기기를 발견하고, 발견된 상기 OBJE 기기에 대한 정보를 제공하는 단계 및 상기 OBJE 기기에 대한 정보를 기초로 상기 OBJE 기기와 대응하는 UPnP 기기, 상기 OBJE 기기와 데이터 타입이 동일한 카운터 OBJE 컴포넌트(component) 및 상기 OBJE 기기와 상기 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트를 생성하고, UPnP 컨트롤 포인트에서 상기 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어하는 단계를 포함하는 것을 특징으로 한다.
이때, 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어하는 단계는 상기 OBJE 기기와 대응하는 UPnP 기기를 생성하는 단계, 상기 OBJE 기기와 데이터 타입이 동일한 카운터 OBJE 컴포넌트를 생성하는 단계, 상기 OBJE 기기와 상기 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트를 생성하는 단계 및 UPnP 컨트롤 포인트에서 상기 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어하는 단계를 포함할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 UPnP 네트워크 시스템에서의 OBJE 기기 서비스를 제공하기 위한 시스템도이다.
도 1을 참조하면, UPnP 네트워크 시스템에서의 OBJE 기기 서비스를 제공하기 위한 시스템은 UPnP 컨트롤 포인트(110), UPnP 기기(120), OBJE 기기(130), OBJE 클라이언트(140), 카운터 OBJE 컴포넌트(150) 및 OBJE 기기 서비스 제공 장치(160)를 포함한다.
OBJE 기기 서비스 제공 장치(160)는 OBJE 네트워크에 존재하는 OBJE 기기(130)를 발견하고, 그 발견된 OBJE 기기를 UPnP 컨트롤 포인트(110)에서 제어할 수 있도록 UPnP 기기(120), OBJE 클라이언트(140) 및 카운터 OBJE 컴포넌트 (150)를 생성한다.
이때, OBJE 기기(130)는 OBJE 디스커버리(discovery)를 통해 발견될 수 있다.
이때, OBJE 기기 서비스 제공 장치(160)는 OBJE 기기를 발견하고, 그 발견된 OBJE 기기에 대한 정보를 기초로 OBJE 기기와 대응하는 UPnP 기기(120), OBJE 기기와 데이터 타입이 동일한 카운터 OBJE 컴포넌트(150) 및 OBJE 기기와 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트(140)를 생성하고, UPnP 컨트롤 포인트에서 상기 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어할 수 있다.
이때, OBJE 기기와 대응하는 UPnP 기기는 UPnP 네트워크에 생성되고, OBJE 클라이언트 및 카운터 OBJE 컴포넌트는 OBJE 네트워크에 생성된다
도 2는 본 발명의 일 실시예에 따른 UPnP 네트워크 시스템에서의 OBJE 기기 서비스 제공 장치에 대한 구성 블록도이다.
도 2를 참조하면, UPnP 네트워크 시스템에서의 OBJE 기기 서비스 제공 장 치(160)는 정보 제공부(210) 및 OBJE 서비스 제어부(260)를 포함한다.
정보 제공부(210)는 OBJE 네트워크에 존재하는 OBJE 기기를 발견하고, 그 발견된 OBJE 기기에 대한 정보를 제공한다.
이때, 정보 제공부(210)는 OBJE 디스커버리를 통해 OBJE 네트워크에 존재하는 OBJE 기기를 발견할 수 있다.
OBJE 서비스 제어부(260)는 상기 발견된 OBJE 기기에 대한 정보를 기초로 OBJE 기기와 대응하는 UPnP 기기, OBJE 기기와 데이터 타입이 동일한 카운터 OBJE 컴포넌트 및 OBJE 기기와 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트를 생성하고, UPnP 컨트롤 포인트에서 상기 발견된 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어한다.
여기서, OBJE 서비스 제어부(260)는 UPnP 기기 생성부(220), OBJE 제어부(230), 클라이언트 생성부(240) 및 카운터 OBJE 컴포넌트 생성부(250)를 포함한다.
UPnP 기기 생성부(220)는 정보 제공부(210)에 의해 제공된 정보를 기초로 OBJE 기기와 대응되는 UPnP 기기를 UPnP 네트워크에 생성한다.
이때, UPnP 기기 생성부(220)에 의해 UPnP 기기가 생성되면 UPnP 컨트롤 포인트는 UPnP 디스커버리를 통해 상기 생성된 UPnP 기기를 발견하고, 상기 생성된 UPnP 기기에 디스크립션을 요청하여 디스크립션을 수신함으로써, UPnP 컨트롤 포인트에서 상기 생성된 UPnP 기기를 제어할 수 있다.
카운터 OBJE 컴포넌트 생성부(250)는 정보 제공부(210)에 의해 제공된 정보를 기초로 상기 발견된 OBJE 기기와 동일한 데이터 타입이 동일한 카운터 OBJE 컴포넌트를 OBJE 네트워크에 생성한다.
즉, 카운터 OBJE 컴포넌트 생성부(250)는 상기 발견된 OBJE 기기가 OBJE 소스 컴포넌트인 경우 OBJE 소스 컴포넌트와 데이터 타입이 동일한 OBJE 싱크(sink) 컴포넌트를 생성하고, 상기 발견된 OBJE 기기가 OBJE 싱크 컴포넌트인 경우 OBJE 싱크 컴포넌트와 데이터 타입이 동일한 OBJE 소스 컴포넌트를 생성한다.
클라이언트 생성부(240)는 정보 제공부(210)에 의해 제공된 정보를 기초로 상기 발견된 OBJE 기기와 카운터 OBJE 컴포넌트 생성부에 의해 생성된 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키는 OBJE 클라이언트를 OBJE 네트워크에 생성한다.
이때, 클라이언트 생성부(240)에 의해 생성된 OBJE 클라이언트는 UPnP 네트워크에서의 UPnP 컨트롤 포인트에 대응된다.
OBJE 제어부(230)는 UPnP 컨트롤 포인트에서 상기 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, 카운터 OBJE 컴포넌트 및 OBJE 클라이언트를 제어한다.
즉, OBJE 제어부(230)는 UPnP 컨트롤 포인트에서 상기 생성된 UPnP 기기로 제어 명령을 입력하면 상기 UPnP 기기를 통해 입력된 제어 명령에 상응하는 동작을 OBJE 기기를 통해 수행하기 위해 OBJE 클라이언트를 제어한다. OBJE 클라이언트는 카운터 OBJE 컴포넌트와 상기 발견된 OBJE 기기간의 데이터 전송을 발생시키고, OBJE 소스 컴포넌트가 OBJE 싱크 컴포넌트로 콘텐트 및 콘텐트 처리에 필요한 모바일 코드를 직접 전송함으로써, OBJE 네트워크에서 기기 사이의 상호작용이 이루어진다.
도 3은 본 발명의 일 실시예에 따른 UPnP 네트워크 시스템에서의 OBJE 기기 서비스 제공에 대한 동작 흐름도이다.
도 3을 참조하면, UPnP 네트워크 시스템에서의 OBJE 기기 서비스 제공 방법은 OBJE 네트워크에 존재하는 OBJE 기기를 발견하고, 상기 발견된 OBJE 기기에 대한 정보를 제공한다(S310).
이때, 상기 OBJE 기기는 OBJE 디스커버리에 의해 발견될 수 있다.
상기 제공된 OBJE 기기에 대한 정보를 기초로 OBJE 기기에 대응되는 UPnP 기기를 UPnP 네트워크에 생성한다(S320).
이때, 생성된 UPnP 기기는 UPnP 컨트롤 포인트에서 UPnP 디스커버리에 의해 발견될 수 있다.
또한, 상기 제공된 OBJE 기기에 대한 정보를 기초로 OBJE 클라이언트 및 카운터 OBJE 컴포넌트를 OBJE 네트워크에 생성한다(S330). 즉, OBJE 클라이언트 및 카운터 OBJE 컴포넌트를 생성하여 상기 발견된 OBJE 기기가 OBJE 네트워크에서 동작할 수 있도록 한다.
이때, 생성된 OBJE 클라이언트는 UPnP 네트워크의 UPnP 컨트롤 포인트와 대응된다.
이때, 생성된 카운터 OBJE 컴포넌트는 상기 발견된 OBJE 기기가 OBJE 소스 컴포넌트인 경우 OBJE 싱크 컴포넌트가 될 수 있고, 상기 발견된 OBJE 기기가 OBJE 싱크 컴포넌트인 경우 OBJE 소스 컴포넌트가 될 수 있다.
여기서, 상기 단계 S320과 S330이 순차적으로 수행되는 것으로 도시되었지만, S330이 수행된 후 S320 수행될 수도 있으며, 바람직하게는 동시에 수행될 수 있다.
UPnP 네트워크에 존재하는 UPnP 컨트롤 포인트에서 상기 발견된 OBJE 기기를 사용할 수 있도록 상기 생성된 UPnP 기기, OBJE 클라이언트 및 카운터 OBJE 컴포넌트를 제어한다(S340).
즉, UPnP 컨트롤 포인트에서 UPnP 기기로 디스크립션을 요청하여 수신한 후 UPnP 컨트롤 포인트의 제어 명령이 UPnP 기기로 입력되면 OBJE 기기와 카운터 OBJE 컴포넌트간의 데이터 전송을 발생시키도록 OBJE 클라이언트를 제어함으로써, UPnP 컨트롤 포인트에서 OBJE 기기를 사용할 수 있다.
도 4는 본 발명의 일 실시예에 따라 UPnP 컨트롤 포인트에서 OBJE 스캐너를 제어하는 과정의 동작 흐름도이다.
도 4를 참조하면, 정보 제공부에서 OBJE 디스커버리를 통해 OBJE 네트워크에 있는 OBJE 스캐너를 발견하고, 이에 대한 정보를 OBJE 서비스 제어부로 전송한다.
OBJE 서비스 제어부는 OBJE 스캐너 정보를 기초로 UPnP 스캐너, 스캐너 클라이언트 및 소스 컴포넌트인 OBJE 스캐너와 데이터 타입이 동일한 스캐너 싱크 컴포넌트를 생성한다.
UPnP 컨트롤 포인트는 UPnP 디스커버리를 통해 UPnP 스캐너를 발견하고, UPnP 스캐너로 디스크립션 정보를 요청하여 디스크립션 정보를 수신한다.
UPnP 컨트롤 포인트는 UPnP 스캐너의 디스크립션 정보를 이용하여 UPnP 스캐너로 StartScan 명령을 전송한다.
OBJE 서비스 제어부는 StartScan 명령을 수신하고, 스캐너 클라이언트를 이용하여 스캐너 싱크 컴포넌트와 OBJE 스캐너 사이에 트랜스퍼 세션을 발생시킨다. 스캐너 싱크 컴포넌트가 OBJE 스캐너에게 이미지 전송 및 처리에 필요한 모바일 코드를 요청하여 수신하면, 스캐너 싱크 컴포넌트는 OBJE 스캐너에게 콘텐트 전송을 요청한다. 스캐너 싱크 컴포넌트로부터 콘텐트 전송 요청을 수신한 OBJE 스캐너는 스캐닝을 실시 및 완료한 후 스캐닝에 의해 얻어진 이미지를 스캐너 싱크 컴포넌트에 전송한다.
스캐너 싱크 컴포넌트는 이미지 수신이 완료되면 스캐너 클라이언트와 OBJE 스캐너에게 이미지 수신 완료를 통보한다. UPnP 스캐너는 이미지 수신이 완료된 후 UPnP 이벤팅(eventing)을 이용하여 UPnP 컨트를 포인트에게 이미지 수신 완료를 통보한다.
UPnP 컨트롤 포인트는 UPnP 스캐너로부터 스캐닝된 이미지를 얻은 후 UPnP 스캐너에게 Stop 명령을 전송한다.
이와 같은 과정을 통해 UPnP 컨트롤 포인트에서 OBJE 기기인 OBJE 스캐너에서 스캐닝한 이미지를 얻을 수 있다.
도 5는 본 발명의 일 실시예에 따라 UPnP 컨트롤 포인트에서 OBJE 프린터를 제어하는 과정의 동작 흐름도이다.
도 5를 참조하면, 정보 제공부에서 OBJE 디스커버리를 통해 OBJE 네트워크에 있는 OBJE 프린터를 발견하고, 이에 대한 정보를 OBJE 서비스 제어부로 전송한다.
OBJE 서비스 제어부는 OBJE 프린터 정보를 기초로 UPnP 프린터, 프린터 클라이언트 및 싱크 컴포넌트인 OBJE 프린터와 데이터 타입이 동일한 프린터 소스 컴포넌트를 생성한다.
UPnP 컨트롤 포인트는 UPnP 디스커버리를 통해 UPnP 프린터를 발견하고, UPnP 프린터로 디스크립션 정보를 요청하여 디스크립션 정보를 수신한다.
UPnP 컨트롤 포인트는 UPnP 프린터의 디스크립션 정보를 이용하여 UPnP 프린터로 CreateJob 명령을 전송한 후 프린팅할 이미지 등의 콘텐트(Job data)를 UPnP 프린터로 전송한다.
OBJE 서비스 제어부는 CreateJob 명령 및 콘텐트를 수신하고, 프린터 클라이언트를 이용하여 프린터 소스 컴포넌트와 OBJE 프린터 사이에 트랜스퍼 세션을 발생시킨다.
OBJE 프린터는 프린터 소스 컴포넌트로 콘텐트 전송 및 처리에 필요한 모바일 코드를 요청하고, 모바일 코드를 수신한 후 프린터 소스 컴포넌트로 이미지 등의 콘텐트 전송을 요청한다.
OBJE 프린터는 콘텐트 수신이 완료되면 콘텐트를 프린팅하고, 프린팅 작업이 완료되면 프린터 클라리언트 및 프린터 소스 컴포넌트로 프린팅 작업이 완료되었음을 통보한다.
OBJE 서비스 제어부의 UPnP 프린터는 프린팅 작업 완료 메시지를 수신한 후 UPnP 컨트롤 포인트로 프린팅 요청이 성공적으로 완료되었음을 통보한다.
이와 같은 과정을 통해 UPnP 컨트롤 포인트에서 OBJE 기기인 OBJE 프린터를 이용하여 콘텐트를 프린팅할 수 있다.
본 발명에 따른 UPnP 네트워크 시스템에서의 OBJE 기기 서비스 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.