상기 목적을 달성하기 위한 본 발명에 따른 디바이스 제어 방법은, 수신한 제1 정보에 기초하여 디바이스 동작제어에 필요한 설정을 하기 위한 사용자 인터페이스를 생성하는 단계, 상기 사용자 인터페이스를 통해 입력된 설정값에 대응하는 제2 정보를 생성하는 단계, 및 상기 제2 정보를 상기 디바이스에 전달하여 대응하는 설정이 수행되도록 하는 단계를 포함한다. 바람직하게는, 상기 대응하는 설정에 대한 수행 결과를 수신하는 단계를 더 포함한다.
상기 제1 및 제2 정보 중 적어도 하나는 XML 문서 형식이며, 상기 사용자 인터페이스는 상기 XML 문서 형식에서 요소들 간의 자식/형제 관계에 대응하는 트리 구조의 메뉴인 것이 바람직하다. 이 경우, 상기 메뉴는 상기 XML 문서 형식에서 기설정된 특성이 있는 요소는 사용자의 입력을 받을 수 있는 제어 메뉴 항목으로 하는 것이 가능하다. 또한, 상기 제1 정보는 상기 디바이스나 혹은 소정 서버로부터 수신받는 것이 가능하다.
또한, 상기 목적을 달성하기 위한 본 발명에 따른 디바이스 제어 방법은, 호스트와 디바이스가 통신가능하게 접속된 시스템에서, 상기 디바이스의 동작제어에 필요한 설정을 하기 위한 방법을 제공하며 상기 호스트가 상기 디바이스로부터 제1 정보를 수신받는 단계, 상기 호스트에서 상기 제1 정보에 기초하여 상기 디바이스 동작제어에 필요한 설정을 위한 사용자 인터페이스를 생성하는 단계, 및 상기 사용자 인터페이스를 통해 상기 디바이스 동작제어에 필요한 설정을 하는 단계를 포함한다.
한편, 본 발명에 따른 디바이스 제어 시스템은, 디바이스와 호스트를 포함하며, 호스트는 수신한 제1 정보에 기초하여, 상기 디바이스 동작제어에 필요한 설정을 하기 위한 사용자 인터페이스를 생성하고, 상기 사용자 인터페이스를 통해 입력된 설정값에 대응하는 제2 정보를 상기 디바이스에 전달하여, 대응되는 설정이 수행되도록 한다.
상기 목적을 달성하기 위하여 본 발명에서는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명에 따른 디바이스 제어 방법을 개략적으로 설명하기 위해 참조되는 도면이다. 도 1을 참조하면, 노트북(100), 휴대폰(150), PDA(Personal Digital Assistant)(180)와 같은 호스트가 있고, 이 호스트와 유무선의 네트워크(50)를 통해 통신가능하게 접속된 복합기 등과 같은 디바이스(200)가 있다.
이와 같은 구성에서, 호스트는 디바이스(200)나 혹은 다른 장치로부터 수신한 XML 형식의 문서와 같은 정보에 기초하여, 디바이스(200)의 동작제어에 필요한 설정을 위한 사용자 인터페이스를 생성한다.
사용자는 호스트에서 생성한 사용자 인터페이스를 통해, 디바이스(200) 동작제어에 필요한 설정을 하거나, 기존에 설정된 사항을 변경할 수 있다. 호스트에서 생성된 사용자 인터페이스를 통해 사용자에 의해 설정되거나 변경된 사항은 디바이스(200)에 전달되어, 대응되는 설정이 수행된다.
도 2는 컴퓨터와 프린터를 각각 호스트와 디바이스의 예로서, 본 발명의 일실시예에 따른 디바이스 제어시스템의 구성을 나타낸 도면이다. 도 2를 참조하면, 호스트(100)는 입력부(105), 표시부(110), 호스트 제어부(115), 제1 XML 처리부(120), 제1 저장부(125), 및 제1 인터페이스부(130)를 포함한다. 디바이스(200)는, 제어부(215), 제2 XML 처리부(205), 제2 저장부(225), 제2 인터페이스부(230), 및 엔진부(235)를 포함한다. 호스트(100)와 디바이스(200)는 각각 제1 및 제2 인터페이스부(130, 230)를 통해 서로 통신가능하게 접속된다.
입력부(105)는 사용자의 조작 명령이나 설정값을 입력받아, 호스트 제어부(115)에 전달한다. 표시부(110)에는 디바이스(100) 동작제어에 필요한 설정을 위한 사용자 인터페이스 화면이 디스플레이된다. 제1 XML 처리부(120)는 디바이스(200)로부터 전달받은 XML 문서를 분석하여, 호스트 제어부(115)가 사용할 수 있는 데이터 형식으로 변형하거나, 입력받은 데이터에 대응하는 XML 문서를 생성한다. 제1 저장부(125)에는 호스트(100)의 동작에 필요한 프로그램이나 데이터가 저장된다. 제1 인터페이스부(130)는 디바이스(200)와의 통신을 위한 통신 인터페이스를 제공한다. 그리고, 호스트 제어부(115)는 전술한 각부의 동작과 기타 호스트(100)의 전반적인 동작을 제어한다.
디바이스(200)의 제2 XML 처리부(220)는 XML 문서의 생성 및 전달받은 XML 문서를 제어부(215)가 사용할 수 있는 데이터 형식으로 변형한다. 제2 저장부 (225)는 동작에 필요한 데이터나 프로그램이 저장되며, 특히 호스트(100)에 전달되어 사용자 인터페이스 생성에 사용되는 XML 문서가 저장된다. 엔진부(235)는 전달된 인쇄 데이터를 인쇄용지 등에 인쇄하기 위한 메커니즘을 제공한다. 제2 인터페이스부(230)는 호스트(100)와의 통신을 위한 통신 인터페이스를 제공한다. 그리고, 제어부(215)는 전술한 각부의 동작을 제어한다.
제1 및 제2 인터페이스부(130, 230)에서는 컴퓨터와 주변기기간의 플래그 앤 플레이 인터페이스인 USB(Universal Serial Bus)와, 블루투스(Bluetooth), 무선 LAN 등, 외부 기기와의 데이터 송수신이 가능한 다양한 통신 인터페이스 방식이 사용될 수 있다.
도 3은 본 발명의 일실시예에 따른 디바이스 제어시스템의 동작설명에 제공되는 흐름도이다. 도 2 및 도 3을 참조하여, 본 발명의 일실시예에 따른 디바이스 제어시스템의 동작 과정을 설명하면 다음과 같다. 먼저 호스트(100)는 디바이스(200)에 설정 사항을 요구한다(S300). 이에 따라, 디바이스(200)의 제어부(215)는 디바이스(200)내의 설정 사항을 갱신한다(S305). 제2 XML 처리부(220)는 제어부(215)로부터 전달된 갱신된 설정 사항을 반영하여, 전체 설정 사항과 관련된 XML 문서를 만들어서 제2 저장부(225)에 저장하고, 제어부(215)는 제2 저장부(225)에 저장된 XML 문서를 제2 인터페이스부(230)를 통해 호스트(100)로 송신한다(S310).
호스트(100)의 제1 XML 처리부(120)는, 파서(Parser) 기능과 XML 문서 생성 기능을 구비하여, 디바이스(200)로부터 전달받은 XML 문서를 분석하여, 호스트 제어부(115)가 사용할 수 있는 적절한 데이터 형식으로 변형한다. 즉, 제1 XML 엔진 부(120)는 전달된 XML 파일의 태그와 태그에 포함된 내용들을 적절한 형태로 재구성하며, 호스트 제어부(115)는 재구성된 데이터를 이용해서, 사용자 인터페이스 화면을 구성하여 표시부(110)에 표시한다(S315).
도 4는 호스트(100)의 표시부(110)에 디스플레이되는 사용자 인터페이스 화면의 일 예를 도시한 것이다. 도 4에서, 도면부호 401로 표시한 부분이 상위 메뉴 항목에 해당하는 부분이며, 도면부호 403으로 표시한 부분이 각 상위 메뉴 항목의 하위 메뉴 항목이 표시되는 부분이다. 도면부호 405로 표시된 부분은 사용자의 설정 사항을 입력받을 수 있는 제어 메뉴 항목 부분이다. 이와 같은 사용자 인터페이스 화면은, 호스트(100)가 사용자 인터페이스 화면에 대한 기본적인 구성을 갖고 있으며, 사용자 인터페이스 화면의 각 메뉴 항목에 대해서는 디바이스(200)로부터 전송되는 XML 문서를 참조하여 설정한다. 즉, 사용자 인터페이스의 화면에 나타나는 트리 구조의 메뉴 항목에 표시되는 스트링(string)은 XML 문서의 요소 이름(element name)을 그대로 사용할 수도 있고, 만약 요소마다 스트링(STRING)이라는 특성(attribute)이 있다면, 이 특성에 쓰여 있는 값을 사용자 인터페이스의 스트링(string)으로 사용한다. 사용자 인터페이스 화면을 생성하는 방법에 대해서는 뒤에서 보다 상세히 설명하기로 한다
사용자는 표시부(110)에 디스플레이된 사용자 인터페이스 화면을 통해 동작제어에 필요한 설정을 하거나, 기존에 설정된 값을 변경한다(S320). 이와 같은 과정은 사용자 인터페이스 화면에서, 원하는 메뉴 항목을 트리 구조를 따라 선택하고, 선택된 메뉴 항목에 대하여 입력을 받을 수 있는 제어 메뉴 항목이 나타나며, 원하는 설정값을 입력하거나 변경하고, 최종적으로 적용 버튼(Apply button)(409)을 클릭(click)하는 과정으로 이루어 진다.
호스트 제어부(115)는 사용자 인터페이스 화면을 통해 사용자에 의해 설정되거나 변경된 항목만을 추출하여 제1 XML 처리부(120)에 전달하고, 제1 XML 처리부(120)는 변경된 항목들에 대응하는 XML 문서를 생성한다. 호스트 제어부(115)는 이를 제1 인터페이스부(130)를 통해 디바이스(200)로 전송한다(S325).
디바이스(200)는 제2 인터페이스부(230)를 통해 호스트(100)로부터 설정 혹은 변경된 항목에 대응하는 XML 문서를 수신하고, 제2 XML 처리부(220)는 그 내용을 분석하여, 제어부(215)에 전달한다. 제어부(215)는 이에 따라 대응되는 설정을 수행하거나 기존에 설정된 사항을 변경한다(S330). 만일, 대응되는 설정이나 변경이 불가능한 경우이며 이를 무시한다. 디바이스(200)의 제어부(215)는 제2 인터페이스부(230)를 통해 실행 결과를 호스트(100)로 전송한다(S335).
이와 같은 과정에 의해, 디바이스(200)로부터 전달받은 XML 문서에 의해, 디바이스(200)의 동작제어에 필요한 설정을 위한 사용자 인터페이스를 생성할 수 있으며, 사용자는 생성된 사용자 인터페이스 화면을 통해 디바이스(200)에서 원하는 항목을 손쉽게 설정하거나 변경할 수 있다. 또한, 상기한 예에서는 디바이스(200)로부터 사용자 인터페이스 생성에 사용되는 XML 문서를 받는 경우를 설명하였지만, XML 문서는 다른 서버나 장치로부터 전달받을 수도 있다.
한편, 호스트(100)에서 디바이스(200) 등으로부터 전송받은 XML 문서를 이용하여, 사용자 인터페이스 화면을 생성하는 방법을 보다 상세하게 설명하면 다음과 같다. 먼저, 디바이스(200)에서 호스트(100)로 전송되는 XML 문서의 기본적인 구성은 다음의 [표 1]과 같다.
<?xml version="1.0" encoding="UTF-8"> <PrinterSettingInfo> <Menu-Level> <Menu-Level2> ... <Menu_LastLevel Attribute="XXX" <value-Node/> ... </Menu-Level2> </Menu-Level> ... </PrinterSettingInfo> |
XML은 WWW에 의해 제안된 마크 업 언어로써, HTML의 한계를 극복하기 위하여 만들어졌으며, HTML과 달리 사용자 자신의 태그 생성 가능하다. 또한, XML은 그 본래의 속성상, 각각의 요소(element) 들간의 관계가 자식(child)과 형제(sibling)의 트리(tree) 관계가 가능하며, 이러한 요소들간의 트리 구조 자체가 사용자 인터페이스 화면에서 트리 뷰 메뉴(Tree View menu) 항목으로 그대로 구성될 수 있다.
즉, [표 1]에서 <Menu-Level>에 대응하는 항목이, 사용자 인터페이스 화면의 첫번째 메뉴 항목이 된다. 도 4의 경우를 예로 들면, 도면 부호 401로 표시된 부분에 있는, "Layout", "PaperOption", "Graphic", "Setting" , "Information", "Fax", "Fax Setting". "Network", "About" 등이 이에 해당하는 메뉴 항목이다.
따라서, 전술한 바와 같이, 사용자 인터페이스에 나타나는 트리 메뉴 항목에 표시되는 스트링(string)은 XML 프로그램의 요소 이름(element name)을 그대로 사용할 수도 있고, 만약 요소마다 스트링(STRING)이라는 특성(attribute)이 있다면, 이 특성에 쓰여 있는 값을 사용자 인터페이스의 스트링(string)으로 사용한다. 예컨대, <Layout STRING="Layout"> 인 경우, Layout이 메뉴 항목이 된다. 도 4의 경우에 대응하는 XML 문서는 다음과 같다.
<?xml version="1.0" encoding="UTF-8"> <PrinterSettingInfo> <Layout STRINGS="Layout"> <Menu-Level2> ... </Menu-Level2> </Layout> <PaperOption STRINGS="PaperOption"> <Menu-Level2> ... </Menu-Level2> </PaperOption> <Grphic STRINGS="Grpahic"> <Menu-Level2> ... </Menu-Level2> </Graphic> <Setting STRINGS="Setting"> <Menu-Level2> ... </Menu-Level2> </Setting> ... ... <Network STRINGS="Network"> <Menu-Level2> ... </Menu-Level2> </Network> <About STRING="About"> <Menu-Level2> ... </Menu-Level2> </About> </PrinterSettingInfo> |
<Menu-Leve2>에 대응하는 항목은 첫번째 메뉴 항목의 하부 메뉴 항목에 해당한다. 예컨대, 도 4의 경우 도면 부호 403으로 표시된 부분에서, "Layout"의 메뉴 항목을 선택하며 디스플레이되는, "Orientation", "SimplexMargin", "Duplex" 등의 메뉴 항목이 이에 해당한다. 이와 같은 방식에 의해, 트리 구조의 메뉴 생성이 가능하다.
그리고, 사용자 인터페이스 화면상의 트리 구조의 메뉴 항목 중에서, 어떤 항목은 브랜치(Branch) 노드에 해당하고, 어떤 항목은 리프(leaf) 노드에 해당할 수 있다. 특히 사용자가 리프 노드를 선택하면, 하위 화면에 콤보박스(combobox)나 라디오 버튼(radio button) 같은 설정 데이터를 입력을 받을 수 있는 제어 메뉴 항목이 디스플레이 된다. 이때, 어떤 항목이 브랜치 노드이고 어떤 항목이 리프 노드인가 하는 것은 해당 메뉴 항목에 대응하는 XML 요소(element)가 TYPE 이라는 특성(attribute)를 갖고 있는가 아닌가에 따라서 결정된다. 즉, TYPE 이라는 속성이 있는 요소는 리프 노드가 되며, 사용자가 이것을 선택할 때 나타내야 할 제어 메뉴 항목은, TYPE = "COMBOBOX" 등과 같이 소정의 약속된 값에 따라 정해진다.
다음의 [표 3]은 사용자 인터페이스 화면에서, Graphic 항목에 대응하는 XML 문서의 예이다. 여기서, FACTORY 는 공장 출하시 설정된 값을 나타내면, CURRENT 는 현재 설정값, MIN과 MAX는 설정값의 최대 최소값, 그리고 STEP은 설정값의 증가 혹은 감소 단위를 나타낸다.
... <Graphic STRING="Graphic"> <Color TYPE="GROUP" STRING="Color"> <AutoColorCalibration TYPE="CHECKBOX" STRING="Auto Color Calibration" FACTORY="OFF" CURRENT="LOW"> <Auto STRING="Auto"/> <Off STRING="Off"/> </AutoColorCalibration> <ManualColorAdjustment TYPE="POPUP" STRING="Manual Color Adjustment" BUTTONLABEL="Color Adjustment"> <Cyan TYPE="SLIDER" STRING="Cyan" FACTORY="0" CURRENT="0" MIN="-5" MAX="5" STPE ="1"> <Magenta TYPE="SLIDER" STRING="Magenta" FACTORY="0" CURRENT="0" MIN="-5" MAX="5" STPE ="1" > <Yellow TYPE="SLIDER" STRING="Yellow" FACTORY="0" CURRENT="0" MIN="-5" MAX="5" STPE ="1"> <Black TYPE="SLIDER" STRING="Black" FACTORY="0" CURRENT="0" MIN="-5" MAX="5"STPE ="1" > </MauanlColorAdjustment> ... |
도 5는 TYPE 이라는 특성이 가질 수 있는 사용자 인터페이스의 제어 메뉴의 예를 도시한 것이다. 도 5에는 "COMOBOX", "RADIOBUTTON", "CHECHBOX", "SPIN", "SLIDER", "EDITBOX". "STATICTEXT". "BUTTON", "IPADDRESS" 등과 같은 속성을 가질 수 있는 사용자 인터페이스의 제어 메뉴 항목을 그래픽 등으로 구현의 예를 도시한 것이다. 도 5에 도시한 바와 같이, 대부분의 사용자 인터페이스가 제공하는 일반적인 제어 메뉴 항목은 모두 구현이 가능하며, 추가적인 타입(type)을 미리 약속해 놓고 구현할 수도 있다.
도 6 내지 도 14는 다양한 타입을 사용자 인터페이스 화면에서 구현한 예를 도시한 것이다. 먼저, 도 6의 경우, COMOBOX 타입을 사용자 인터페이스 화면에서 구현한 예를 도시한 것이다. 도 6에서 도면부호 431로 표시한 부분이, XML 문서에서 TYPE = "COMOBOX"에 대응하는 화면이다.
도 7은 CHECKBOX 타입을 사용자 인터페이스 화면에서 구현한 예를 도시한 것이다. 도 7에서 도면부호 431로 표시한 부분이, XML 문서에서 TYPE ="CHEXKBOX"에 대응하는 메뉴 화면이다.
도 8은 SPIN 타입을 사용자 인터페이스 화면으로 구현한 예를 도시한 것이다. 도 8에서, 도면부호 451로 표시한 부분이, XML 문서에서 TYPE ="SPIN"에 대응하는 메뉴 화면이다.
도 9는 SLIDER 타입 및 POPUP 타입을 사용자 인터페이스 화면으로 구현한 예를 도시한 것이다. 도 9에서, 도면부호 461로 표시한 부분에서, Maual Color Adjustment 은 Cyan, Magenta, Yellow, Black 메뉴 항목을 한데 모아서 표시하는 "POPUP" 타입에 대응하며, Cyan, Magenta, Yellow, Black 각 메뉴 항목은, XML 문서에서 TYPE ="SLIDER"에 대응하는 메뉴 화면이다.
도 10은 EDITBOX 타입을 사용자 인터페이스 화면으로 구현한 예를 도시한 것이다. 도 10에서 도면부호 471로 표시한 부분이, XML 문서에서 TYPE="EDITBOX"에 대응하는 화면이다.
도 11은 STATICTEXT 타입을 사용자 인터페이스 화면으로 구현한 예를 도시한 것이다. 도 11에서 도면부로 481로 표시한 부분이, XML 문서에서 TYPE = "STATICTEXT"에 대응하는 화면으로, 선택된 항목에 통계적 처리 결과가 표시된다.
도 12는 BUTTON 타입을 사용자 인터페이스 화면으로 구현한 예를 도시한 것이다. 도 12에서 도면부호 491로 표시한 부분이, XML 문서에서 TYPE = "BUTTON"에 대응하는 사용자 인터페이스 화면이다.
도 13은 GROUP 타입을 사용자 인터페이스의 메뉴로 구현한 예를 도시한 것이다. 도 13에서 도면부호 511로 표시한 부분이, XML 문서에서 TYEP = "GROUP'에 대응하는 사용자 인터페이스 화면이다. TYPE = "POPUP" 과 TYPE = "GROUP" 은 하위의 리프 노드들을 한데 모아서 한꺼번에 표시하는 점에서 동일하나, "POPUP" 타입의 경우, 새로운 창이 추가로 팝업(popup)되는 점에서 차이가 있다.
이와 같이, TYPE 특성을 이용하여 사용자 인터페이스 화면을 구성하며, 다양한 설정 항목을 입력받거나, 설정된 사항을 변경할 수 있다.
한편, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.