KR100664921B1 - Apparatus and method for integrated middleware supporting multiple protocols for distributed computing - Google Patents

Apparatus and method for integrated middleware supporting multiple protocols for distributed computing Download PDF

Info

Publication number
KR100664921B1
KR100664921B1 KR1020040069550A KR20040069550A KR100664921B1 KR 100664921 B1 KR100664921 B1 KR 100664921B1 KR 1020040069550 A KR1020040069550 A KR 1020040069550A KR 20040069550 A KR20040069550 A KR 20040069550A KR 100664921 B1 KR100664921 B1 KR 100664921B1
Authority
KR
South Korea
Prior art keywords
information
module
distributed computing
protocols
message
Prior art date
Application number
KR1020040069550A
Other languages
Korean (ko)
Other versions
KR20060020851A (en
Inventor
김도헌
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040069550A priority Critical patent/KR100664921B1/en
Publication of KR20060020851A publication Critical patent/KR20060020851A/en
Application granted granted Critical
Publication of KR100664921B1 publication Critical patent/KR100664921B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치 및 방법 (Apparutus and method for integrated middleware supporting multiple protocols for distributed computing)을 제공한다.It provides an Apparatus and method for integrated middleware supporting multiple protocols for distributed computing.

본 발명의 실시예에 따른, 통합 미들웨어 장치는, 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 어드레싱 모듈, 네트워크에 다른 디바이스가 참여 또는 탈퇴할 경우 할당된 네트워크 주소를 통해 디바이스에 관한 정보를 수신하고, 수신된 정보의 포트에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 정보를 해독하는 디스커버리 모듈, 및 해독된 정보를 기초로 디바이스에 서비스를 요청하는 제어 모듈을 포함한다.According to an embodiment of the present invention, an integrated middleware device may receive information about a device through an addressing module for allocating a unique network address in a predetermined network or an allocated network address when another device joins or leaves the network. And a discovery module for decrypting information using at least one of a plurality of distributed computing protocols according to the port of the received information, and a control module for requesting a service from the device based on the decrypted information.

분산 컴퓨팅(Distributed computing), 통합 미들웨어(Integrated middleware)Distributed computing, integrated middleware

Description

분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치 및 방법 {Apparatus and method for integrated middleware supporting multiple protocols for distributed computing}Apparatus and method for integrated middleware supporting multiple protocols for distributed computing}

도 1은 종래의 분산 컴퓨팅을 위한 프로토콜을 지원하는 미들웨어 장치를 내장한 디바이스들이 네트워크상에 혼재하고 있는 모습을 보여주는 도면이다.FIG. 1 is a diagram showing devices mixed with a middleware device supporting a protocol for conventional distributed computing on a network.

도 2a는 본 발명의 실시예에 따른 통합 미들웨어 장치를 내장한 디바이스가 실행되는 전체 시스템 개념도이다.2A is a conceptual diagram of an entire system in which a device incorporating an integrated middleware device according to an embodiment of the present invention is executed.

도 2b는 본 발명의 실시예에 따른 통합 미들웨어 장치가 포함되는 하드웨어의 구조를 보여주는 도면이다.2B is a diagram illustrating a structure of hardware including an integrated middleware device according to an embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 통합 미들웨어 장치의 구성을 보여주는 블록도이다.3 is a block diagram illustrating a configuration of an integrated middleware device according to an embodiment of the present invention.

도 4는 도 3에 도시된 통합 미들웨어 장치의 디스커버리 모듈의 상세 구조를 보여주는 도면이다.4 is a diagram illustrating a detailed structure of a discovery module of the integrated middleware device of FIG. 3.

도 5는 도 3에 도시된 통합 미들웨어 장치의 디스크립션 모듈의 상세 구조를 보여주는 도면이다.FIG. 5 is a diagram illustrating a detailed structure of a description module of the integrated middleware device shown in FIG. 3.

도 6은 도 3에 도시된 통합 미들웨어 장치의 이벤팅 모듈의 상세 구조를 보여주는 도면이다.FIG. 6 is a diagram illustrating a detailed structure of an eventing module of the integrated middleware device of FIG. 3.

도 7은 본 발명의 실시예에 따른 디스커버리 단계를 제어받는 디바이스(Controlled Device)의 측면에서 보여주는 흐름도이다.7 is a flowchart illustrating a controlled device in a discovery step according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 디스커버리 단계를 제어하는 디바이스(Controle Point)의 측면에서 보여주는 흐름도이다.8 is a flow diagram illustrating a side of a device (Controle Point) for controlling a discovery step according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 디스크립션 단계를 제어받는 디바이스(Controlled Device)의 측면에서 보여주는 흐름도이다.FIG. 9 is a flowchart illustrating a control device in a description step according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 디스크립션 단계를 제어하는 디바이스(Controle Point)의 측면에서 보여주는 흐름도이다.FIG. 10 is a flow diagram illustrating a side view of a device controlling a description step according to an embodiment of the present invention.

도 11은 본 발명의 실시예에 따른 이벤팅 단계를 제어받는 디바이스(Controlled Device)의 측면에서 보여주는 흐름도이다.FIG. 11 is a flowchart illustrating an eventing step in a controlled device according to an embodiment of the present invention.

도 12는 본 발명의 실시예에 따른 이벤팅 단계를 제어하는 디바이스(Control Point)의 측면에서 보여주는 흐름도이다.12 is a flowchart showing a side of a device (Control Point) for controlling the eventing step according to an embodiment of the present invention.

본 발명은 통합 미들웨어 장치 및 방법에 관한 것으로서, 더욱 상세하게는 하나의 미들웨어에 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 프레임워크를 통합하여 제공함으로써 어플리케이션 개발자로 하여금 분산 시스템상의 서비스를 사용하기 위한 프로토콜에 독립적으로 서비스를 구현할 수 있도록 하는 장치 및 방법에 관한 것이다.The present invention relates to an integrated middleware device and method, and more particularly, to a single middleware integrating and providing a framework supporting a plurality of protocols for distributed computing, thereby allowing an application developer to use a service on a distributed system. The present invention relates to an apparatus and a method for allowing a service to be independently implemented.

분산 컴퓨팅을 위한 프로토콜의 대표적인 것으로 UPnP(Universal Plug-and-Play) 및 웹 서비스(Web Service)가 있다. Representative protocols for distributed computing include UPnP (Universal Plug-and-Play) and Web Services.

UPnP 기술은 모든 형태의 지능 제품, 무선 장치, 및 PC들의 동등 계층 네트워크의 연결(Peer-to-peer connectivity)을 위한 아키텍처이다. UPnP는 댁내, 소규모 사업장(Small office), 공공장소, 또는 인터넷에 연결된, 애드 혹 네트워크 또는 비관리 네트워크(Unmanaged Network)에, 사용하기 쉽고, 유연하고, 표준에 기초한 연결성을 부여하기 위하여 설계되었다. UPnP 기술은 TCP/IP 및 웹 기술로 하여금 끊김없는 근접 통신(Proximity Networking)을 가능하게 하는 분산 개방 네트워크(Distributed Open Network) 아키텍처를 제공한다. UPnP 디바이스 아키텍처는 제어를 하는 디바이스(Control Point; 이하 CP라 함)와 CP의 제어를 받는 디바이스(Controlled Device; 이하 CD라 함)간의 통신 프로토콜을 정의한다. CP는 클라이언트에 해당하며 CD는 서비스 또는 서비스를 제공하는 디바이스에 해당한다. UPnP 기반 네트워크에서의 통신은 크게 6 단계로 나누어질 수 있다. 네트워크에 참여하는 디바이스에 고유의 네트워크 주소를 할당하는 어드레싱 단계, 새로 참여하는 디바이스의 존재를 네트워크상의 다른 디바이스들에 알리고 CP가 관심있는 CD를 탐색하는 기능을 제공하는 디스커버리 단계, CP가 관심있는 CD에 대한 상세 정보를 획득하는 디스크립션 단계, CP가 CD의 서비스를 호출(Invoke)하는 제어 단계, CP가 CD의 상태 변화에 관한 정보를 획득하는 이벤팅 단계, HTML을 통하여 디바이스 또는 서비스의 추가 정보나 기능을 제공하는 프리젠테이션 단계이다. UPnP technology is an architecture for peer-to-peer connectivity of all forms of intelligent products, wireless devices, and PCs. UPnP is designed to provide easy-to-use, flexible, and standards-based connectivity to ad hoc or unmanaged networks that are connected to the home, small office, public, or Internet. UPnP technology provides a distributed open network architecture that enables TCP / IP and Web technologies to enable seamless proximity networking. The UPnP device architecture defines a communication protocol between a controlling device (Control Point (hereinafter referred to as CP)) and a CP-controlled device (hereinafter referred to as Controlled Device (hereinafter referred to as CD)). The CP corresponds to a client and the CD corresponds to a service or a device providing a service. Communication in a UPnP-based network can be divided into six stages. An addressing step that assigns a unique network address to a device participating in the network, a discovery step that provides the ability to discover the presence of a new participating device to other devices on the network and searches for the CD of interest to the CP, a CD of interest to the CP A description step of acquiring detailed information about the control step, a control step in which the CP invokes a service of the CD, an event step in which the CP obtains information on a state change of the CD, additional information of the device or service through HTML, This is a presentation phase that provides the functionality.

웹 서비스 기술은 어플리케이션 개발자가 웹 상에 공개되어 있는 서비스를 이용하여 더 강력한 어플리케이션을 개발할 수 있도록 하는 기술로서 인터넷상의 분산 컴퓨팅 환경을 가능하게 한다. 웹 서비스 기반 네트워킹 기술을 구성하는 중요 개념은 SOAP, WSDL, UDDI이다. 웹 서비스는 유용한 기능을 SOAP(Simple Object Access Protocol)이라는 표준 웹 프로토콜을 통하여 웹 사용자들에게 공개한다. SOAP은 메시지를 위한 XML 포맷을 정의한다. 웹 서비스는 클라이언트 어플리케이션에 필요한 인터페이스를 기술하기 위하여 WSDL(Web Service Description Language)이라는 XML 문서를 제공한다. WSDL은 웹 서비스에 대한 요청 메시지가 포함해야 할 사항과 응답 메시지가 어떻게 표현되어야 하는지를 정의한다. 클라이언트 어플리케이션은 UDDI(Universal Discovery Description and Integration)를 통하여 필요한 웹 서비스를 찾을 수 있다.Web service technology is a technology that enables application developers to develop more powerful applications using services published on the Web, enabling a distributed computing environment on the Internet. The key concepts that make up Web services-based networking technologies are SOAP, WSDL, and UDDI. Web services expose useful functionality to web users through a standard web protocol called Simple Object Access Protocol (SOAP). SOAP defines an XML format for messages. Web services provide an XML document called Web Service Description Language (WSDL) to describe the interface required for client applications. The WSDL defines what the request message for the web service should contain and how the response message should be represented. Client applications can find the necessary Web services through Universal Discovery Description and Integration (UDDI).

상술한 바와 같이 웹 서비스 및 UPnP 기술은 분산 컴퓨팅 환경에서 서비스들간의 연결성(Connectivity) 및 상호연동성(Interoperability)을 제공하기 위한 기술이라는 유사점이 있다. 그러나 UPnP 또는 웹 서비스 등의 분산 컴퓨팅을 위한 프로토콜들은 각 단계별 사용되는 프로토콜의 세부 사항 및 표현 형식에 차이가 있어 상호 호환되지 않는 문제점이 있다. 따라서 도 1과 같이 UPnP 또는 웹 서비스를 기반으로 하는 미들웨어를 탑재한 디바이스들이 네트워크 상에 혼재하는 경우 UPnP 를 지원하는 디바이스는 웹 서비스를 지원하는 디바이스와 통신하고 상호 연동할 수 없다. 이 경우 서비스 개발자는 네트워크가 UPnP기술에 기반하고 있는지 웹 서비스 기술에 기반하고 있는지를 고려하여 어플리케이션을 개발해야 하는 불편함이 있다. 디바이스 어플리케이션 개발자가 네트워크가 기반으로 하고 있는 기술에 독 립적으로 어플리케이션을 개발할 수 있도록 하기 위하여 분산 컴퓨팅을 위한 다수의 프로토콜을 모두 지원할 수 있는 통합된 미들웨어 장치 및 방법이 필요하게 되었다.As described above, Web services and UPnP technologies are similar in that they provide a technology for providing connectivity and interoperability among services in a distributed computing environment. However, protocols for distributed computing, such as UPnP or Web services, are incompatible with each other because there are differences in the details and presentation formats of the protocols used for each step. Therefore, when devices equipped with middleware based on UPnP or web services are mixed on a network as shown in FIG. 1, devices supporting UPnP cannot communicate with and interoperate with devices supporting web services. In this case, the service developer is inconvenient to develop an application in consideration of whether the network is based on UPnP technology or Web service technology. In order to enable device application developers to develop applications independent of the technology on which the network is based, there is a need for an integrated middleware device and method that can support multiple protocols for distributed computing.

본 발명은 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치 및 방법을 제공함으로써 디바이스의 어플리케이션 개발자가 네트워크가 기반으로 하고 있는 기술에 독립적으로 어플리케이션을 개발하도록 하는데 그 목적이 있다. It is an object of the present invention to provide an integrated middleware apparatus and method for supporting multiple protocols for distributed computing, so that an application developer of a device can develop an application independently of a technology based on a network.

본 발명의 목적은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다. The object of the present invention is not limited to the above-mentioned objects, and other objects that are not mentioned will be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 통합 미들웨어 장치는,소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 어드레싱 모듈, 네트워크에 다른 디바이스가 참여 또는 탈퇴할 경우 할당된 네트워크 주소를 통해 디바이스에 관한 정보를 수신하고, 수신된 정보의 포트에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 정보를 해독하는 디스커버리 모듈, 및 해독된 정보를 기초로 디바이스에 서비스를 요청하는 제어 모듈을 포함한다.In order to achieve the above object, the integrated middleware device according to an embodiment of the present invention, an addressing module for assigning a unique network address in a predetermined network, through the network address assigned when other devices join or leave the network A discovery module that receives information about the device, decrypts information using at least one of a plurality of distributed computing protocols according to the port of the received information, and a control module that requests a service from the device based on the decrypted information It includes.

한편, 본 발명의 실시예에 따른 통합 미들웨어 장치는, 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 어드레싱 모듈, 네트워크에 참여 또는 탈퇴할 경우 할당된 네트워크 주소를 통해 자신의 정보를, 제공가능한 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 네트워크내의 다른 디바이스에게 알리는 디스커버리 모듈, 및 디바이스로부터 정보에 기초한 서비스 요청을 수신하고 서비스 요청에 따른 서비스 수행 결과를 디바이스에 전송하는 제어 모듈을 포함한다.On the other hand, the integrated middleware device according to an embodiment of the present invention, the addressing module for assigning a unique network address in a predetermined network, a plurality of possible to provide their information through the assigned network address when joining or leaving the network And a discovery module for notifying other devices in the network using at least one of the distributed computing protocols of the network, and a control module for receiving a service request based on information from the device and transmitting a service performance result according to the service request to the device.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 방법은, 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 단계, 네트워크에 다른 디바이스가 참여 또는 탈퇴할 경우 할당된 네트워크 주소를 통해 디바이스에 관한 정보를 수신하고, 수신된 정보의 포트에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 정보를 해독하는 단계, 및 해독된 정보를 기초로 디바이스에 서비스를 요청하는 단계를 포함한다.In order to achieve the above object, a method for supporting a plurality of protocols for distributed computing according to an embodiment of the present invention, the step of assigning a unique network address within a given network, other devices to join or leave the network Receiving information about the device through an assigned network address, decrypting the information using at least one of a plurality of distributed computing protocols according to the port of the received information, and transmitting the information to the device based on the decrypted information. Requesting a service.

한편, 본 발명의 실시예에 따른 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 방법은, 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 단계, 네트워크에 참여 또는 탈퇴할 경우 할당된 네트워크 주소를 통해 자신의 정보를, 제공가능한 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 네트워크내의 다른 디바이스에게 알리는 단계, 및 디바이스로부터 정보에 기초한 서비스 요청을 수신하고 서비스 요청에 따른 서비스 수행 결과를 디바이스에 전송하는단계를 포함한다.On the other hand, the method for supporting a plurality of protocols for distributed computing according to an embodiment of the present invention, the step of assigning a unique network address in a predetermined network, when joining or leaving the network through the assigned network address itself Informing the other device in the network using at least one of a plurality of distributed computing protocols that can be provided, and receiving a service request based on the information from the device and transmitting a service performance result according to the service request to the device. Include.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. Specific details of other embodiments are included in the detailed description and the drawings.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다 Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

본 명세서에서는 본 발명의 용이한 설명을 위하여 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치로서 UPnP 및 웹 서비스 프로토콜을 지원하는 통합 미들웨어 장치를 위주로 설명하기로 한다. 그러나 본 발명은 이에 한정되는 것이 아니라 분산 컴퓨팅을 위한 2 이상의 프로토콜을 지원할 수 있는 미들웨어 장치로 확장가능함은 당업자에게 있어 자명할 것이다.In the present specification, an integrated middleware device supporting UPnP and a web service protocol as an integrated middleware device supporting a plurality of protocols for distributed computing will be described mainly for easy description of the present invention. However, it will be apparent to those skilled in the art that the present invention is not limited thereto, but may be extended to a middleware device capable of supporting two or more protocols for distributed computing.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2a는 본 발명의 실시예에 따른 통합 미들웨어 장치를 내장한 디바이스가 실행되는 전체 시스템 개념도이다.2A is a conceptual diagram of an entire system in which a device incorporating an integrated middleware device according to an embodiment of the present invention is executed.

전체 시스템의 구조는 서비스를 필요로 하는 1이상의 CP(또는 클라이언트)와 서비스를 제공하는 1이상의 CD(또는 서비스)가 네트워크에 연결되어 있는 구조이다. 일반적인 CP 또는 CD는 UPnP또는 웹 서비스 중 하나만을 지원(220, 230)할 수 있고, 본 발명의 실시예에 따른 CP(210) 또는 CD(240)는 UPnP 및 웹 서비스를 모두 지원하는 통합 미들웨어 장치를 내장하여 모든 디바이스와 통신이 가능하다.The structure of the entire system is a structure in which one or more CPs (or clients) that require services and one or more CDs (or services) that provide services are connected to the network. A general CP or CD can support only one of UPnP or web services (220 and 230), and the CP 210 or CD 240 according to an embodiment of the present invention supports both UPnP and web services. Built-in communication with all devices is possible.

이하에서 CP는 클라이언트와 같은 의미로 사용되고 CD는 서비스 또는 서비스를 제공하는 디바이스와 같은 의미로 사용되는 것으로 본다.Hereinafter, CP is used as a client and CD is used as a service or a device providing a service.

도 2b는 본 발명의 실시예에 따른 통합 미들웨어 장치가 포함되는 하드웨어의 구조를 보여주는 도면이다.2B is a diagram illustrating a structure of hardware including an integrated middleware device according to an embodiment of the present invention.

본 발명의 장치는 디지털 장치로 구성될 수 있다. 여기서 디지털 장치란 디지털 데이터를 처리하는 디지털 회로를 가진 장치로서, 컴퓨터, 프린터, 스캐너, 페이저, 디지털 카메라, 팩스, 디지털 복사기, 개인용 디지털 단말기(PDA), 핸드폰, 디지털 가전기기, 디지털 전화, 디지털 프로젝트, 홈서버, 디지털 비디오 레코더, 디지털 TV 방송 수신기, 디지털 위성 방송 수신기, 및 셋탑박스 등을 예로 들 수 있다.The device of the present invention may be configured as a digital device. Digital devices are devices with digital circuits that process digital data. Computers, printers, scanners, pagers, digital cameras, fax machines, digital copiers, personal digital assistants (PDAs), mobile phones, digital home appliances, digital phones, and digital projects. , Home servers, digital video recorders, digital TV broadcast receivers, digital satellite broadcast receivers, and set-top boxes.

본 발명의 실시예에 따른 통합 미들웨어를 내장한 장치(200, 270)는 사용자의 입력을 받는 입력부(240), 네트워크와 연결되어 통신을 하는 네트워크 인터페이스(250), 통합 미들웨어 내장 장치의 연산을 수행하고 다른 부분의 동작을 조정하는 제어부(210), 데이터를 저장하는 메모리(220), 데이터를 외부로 출력하는 출력부(230) 및 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어를 구현한 내장 칩(Embeded Chip)으로 구성될 수 있다. 한편, 다른 실시예에서는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치가 디지털 장치와 독립하여 존재할 수도 있다. The device (200, 270) with integrated middleware according to an embodiment of the present invention performs the operation of the input unit 240 receives a user input, the network interface 250 connected to the network for communication, the integrated middleware embedded device A control unit 210 for adjusting the operation of other parts, a memory 220 for storing data, an output unit 230 for outputting data to the outside, and an integrated middleware that supports a plurality of protocols for distributed computing. It may be composed of a chip (Embeded Chip). Meanwhile, in another embodiment, an integrated middleware device supporting multiple protocols for distributed computing may exist independently of the digital device.

통합 미들웨어를 내장한 장치(200, 270)는 네트워크 인터페이스(250)를 통하 여 UPnP 내장 디바이스 또는 웹 서비스 내장 디바이스와 네트워크로 연결되어 상호 통신한다.The devices (200, 270) embedded with the integrated middleware is connected to the network and UPnP embedded device or Web service embedded device via the network interface 250 to communicate with each other.

도 3은 본 발명의 실시예에 따른 통합 미들웨어 장치의 구성을 보여주는 블록도이다.3 is a block diagram illustrating a configuration of an integrated middleware device according to an embodiment of the present invention.

본 발명의 실시예에 따른 통합 미들웨어 장치는 크게 어플리케이션 레이어에 하나의 통합된 인터페이스를 제공하는 인터페이스 모듈, 인터페이스를 구현하고 분산 컴퓨팅을 위한 2 이상의 프로토콜을 통합하는 구현 모듈, 및 분산 컴퓨팅을 위한 제 1 프로토콜을 지원하기 위한 제 1 프로토콜 모듈 및 분산 컴퓨팅을 위한 제 2 프로토콜을 지원하기 위한 제 2 프로토콜 모듈로 구성된다. 인터페이스 모듈은 어플리케이션 레이어로부터 명령 및 명령 수행에 필요한 정보를 받아 이를 구현 모듈에 제공하고 구현 모듈로부터 제공받는 정보를 어플리케이션 레이어로 전달한다. 구현 모듈은 인터페이스 모듈로부터 제공받은 정보를 관리하고 이 정보를 바탕으로 제 1 프로토콜 모듈 또는 제 2 프로토콜 모듈을 구동시켜 적절한 포맷의 메시지를 생성하도록 하고, 제 1 프로토콜 모듈 또는 제 2 프로토콜 모듈에 의해 처리된 메시지로부터 필요한 정보를 획득하여 이를 인터페이스 모듈에 제공한다. 제 1 프로토콜 모듈 및 제 2 프로토콜 모듈은 필요에 따라 구동되어 해당 프로토콜의 메시지를 생성하거나 처리한다. An integrated middleware device according to an embodiment of the present invention is largely an interface module for providing one integrated interface to an application layer, an implementation module for implementing an interface and integrating two or more protocols for distributed computing, and a first for distributed computing. A first protocol module for supporting the protocol and a second protocol module for supporting the second protocol for distributed computing. The interface module receives a command and information necessary for executing the command from the application layer, provides it to the implementation module, and delivers the information provided from the implementation module to the application layer. The implementation module manages the information provided from the interface module and drives the first protocol module or the second protocol module to generate a message of a suitable format based on the information, and is processed by the first protocol module or the second protocol module. The necessary information is obtained from the received message and provided to the interface module. The first protocol module and the second protocol module are driven as necessary to generate or process a message of the corresponding protocol.

도 3은 본 발명의 실시예에 따른 통합 미들웨어 장치 중 UPnP 및 웹 서비스를 지원하는 통합 미들웨어 장치를 UPnP 및 웹 서비스의 각 단계를 구현한 세부 모듈로 나타낸 것이다. 본 발명의 실시예에 따른 UPnP 및 웹 서비스 통합 미들웨어 장치는 어드레싱 모듈, 디스커버리 모듈, 디스크립션 모듈, 제어 모듈, 이벤팅 모듈, 프레젠테이션 모듈로 구성된다. 이 모듈들은 상술한 바와 같이 단계별 인터페이스를 제공하는 인터페이스 모듈과 그 인터페이스를 구현한 구현 모듈을 포함한다. 본 발명의 실시예에 따른 미들웨어 장치는TCP/IP 기반의 네트워크 미들웨어로 UPnP와 웹 서비스의 통합 솔루션을 제공한다. 따라서, UPnP와 웹 서비스에 비교적 독립적일 수 있는 어드레싱과 프레젠테이션 단계를 제공하고, SOAP이라는 동일한 메시지 프로토콜을 사용하는 제어 단계를 제공하고, 디스커버리 단계, 디스크립션 단계, 이벤팅 단계에서는 UPnP와 웹 서비스를 동시에 지원하는 기능을 제공한다.3 illustrates an integrated middleware device supporting UPnP and web services among integrated middleware devices according to an embodiment of the present invention as a detailed module implementing each step of UPnP and web services. UPnP and web services integrated middleware device according to an embodiment of the present invention is composed of an addressing module, a discovery module, a description module, a control module, an event module, a presentation module. These modules include an interface module that provides a step-by-step interface as described above, and an implementation module that implements the interface. The middleware device according to an embodiment of the present invention provides an integrated solution of UPnP and web service as a TCP / IP based network middleware. Thus, it provides an addressing and presentation step that can be relatively independent of UPnP and Web services, a control step using the same message protocol as SOAP, and a UPnP and Web service at the same time in the discovery, description, and eventing phases. Provides support functions.

본 실시예에서 사용되는 "모듈"이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, DB, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 통합 미들웨어 장치 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.The term " module " as used in this embodiment refers to software or a hardware component such as an FPGA or an ASIC, and the module plays certain roles. However, modules are not meant to be limited to software or hardware. The module may be configured to be in an addressable storage medium and may be configured to play one or more processors. Thus, as an example, a module may include components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, subroutines. , Segments of program code, drivers, firmware, microcode, circuitry, data, DB, data structures, tables, arrays, and variables. The functionality provided within the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules. In addition, the components and modules may be implemented to reproduce one or more CPUs in an integrated middleware device.

어드레싱 모듈(310)은 새로운 CP 또는 CD가 네트워크에 참여할 때 CP 또는 CD에 고유의 네트워크 주소를 할당한다. 어드레싱은TCP/IP를 기반으로 하는 네트워크의 기본 기능으로서, UPnP의 경우 새로 추가되는 디바이스는그 디바이스내의 DHCP 클라이언트가 DHCP(Dynamic Host Configuration Protocol) 서버에 IP 주소를 요청하여 할당받거나, DHCP 서버가 없으면 자동 IP 어드레싱(AutoIP)을 사용하여 다른 디바이스에 의해 사용되지 않는 IP주소를 할당한다. 웹 서비스의 경우 디바이스는 이미 유효한 IP 주소를 획득했다고 가정한다. 어드레싱 단계는 해당 디바이스 또는 서비스를 지원하기 위한 필수 기능으로 UPnP와 웹 서비스에 독립적이라 할 수 있다. 따라서 본 발명의 실시예에 따른 통합 미들웨어 장치의 어드레싱 모듈은 UPnP 및 웹 서비스에 공통적인 인터페이스를 제공하는 인터페이스 모듈(312), 인터페이스 모듈을 통하여 IP 주소를 할당받기 위해 필요한 정보를 받아 자동IP/DHCP 모듈(316)에 전달하는 어드레싱 구현 모듈(314), 및 실제 어드레싱 단계를 수행하는 자동IP/DHCP 모듈(316)로 구성된다.The addressing module 310 assigns a unique network address to the CP or CD when the new CP or CD joins the network. Addressing is a basic function of TCP / IP-based networks. In the case of UPnP, newly added devices are assigned by DHCP clients within the device by requesting an IP address from a Dynamic Host Configuration Protocol (DHCP) server, or without a DHCP server. Use AutoIP Addressing (AutoIP) to assign IP addresses that are not used by other devices. In the case of a web service, it is assumed that the device has already obtained a valid IP address. The addressing step is an essential function to support the device or service, and can be said to be independent of UPnP and web services. Therefore, the addressing module of the integrated middleware device according to the embodiment of the present invention receives the information required to receive an IP address through the interface module 312 and the interface module, which provide a common interface to UPnP and web services, and automatically performs IP / DHCP An addressing implementation module 314 that delivers to module 316, and an automatic IP / DHCP module 316 that performs the actual addressing step.

디스커버리 모듈(320)은 CP가 관심있는 서비스를 찾을 수 있도록 해주고, 네트워크에 새로운 CD가 참여하거나 CD가 탈퇴하는 경우, 이를 네트워크상의 CP들에 알리는 역할을 한다. UPnP의 디스커버리 단계는 크게 두 가지로 나뉠 수 있다. 첫째는 새로운 CD가 네트워크에 참여하는 경우이고, 둘째는 새로운 CP가 네트워크에 참여하는 경우이다. 새로운 CD가 네트워크에 참여하는 경우 CD는 자신의 존재를 알리기 위하여 기본적인 정보를 담은 메시지를 멀티캐스트한다. 여기서 기본적인 정 보란 CD를 제공하는 디바이스에 관한 상세 정보(Description)의 URL, 디바이스의 유형, 알림 메시지의 유효시간(Expire time) 등을 포함한다. 반면, 새로운 CP가 네트워크에 참여하는 경우 그 CP가 관심있는 CD를 찾는 메시지를 멀티캐스트하면 이에 해당하는 CD가 CP에게 응답 메시지를 전송하게 된다. 이러한 메커니즘은 웹 서비스도 동일하다. 그러나 UPnP는 상술한 멀티캐스트 디스커버리 메커니즘을 제공하는 프로토콜로 HTTP를 기반으로 하는SSDP(Simple Service Discovery Protocol)를 사용하고 웹 서비스는 XML을 기반으로 하는 WS-Discovery를 사용한다. 본 발명의 실시예에 따른 디스커버리 모듈(320)은 UPnP를 사용하는 디바이스 및 웹 서비스를 사용하는 디바이스와 모두 통신할 수 있는 메커니즘을 제공한다. 이를 위한 디스커버리 모듈(320)의 세부 구조는 도 4에서 후술하도록 한다.The discovery module 320 allows the CP to find a service of interest and informs the CPs on the network when a new CD joins or withdraws from the network. The discovery phase of UPnP can be divided into two main stages. The first is when a new CD joins the network, and the second is when a new CP joins the network. When a new CD joins the network, the CD multicasts a message with basic information to announce its existence. In this case, the basic information includes a URL of a description of a device providing a CD, a device type, an expiration time of a notification message, and the like. On the other hand, when a new CP participates in the network, when the CP multicasts a message for finding a CD of interest, the corresponding CD transmits a response message to the CP. This mechanism is the same for Web services. However, UPnP uses the simple service discovery protocol (SSDP) based on HTTP as a protocol providing the above-mentioned multicast discovery mechanism, and the web service uses WS-Discovery based on XML. The discovery module 320 according to an embodiment of the present invention provides a mechanism for communicating with both a device using UPnP and a device using a web service. Detailed structure of the discovery module 320 for this purpose will be described later in FIG.

디스크립션 모듈(330)은 디스커버리 모듈을 통하여 찾은 CD의 상세 정보를 알 수 있도록 해준다. 디스크립션 단계에서 UPnP는 디바이스와 서비스를 일정한 포맷으로 정의된 디바이스/서비스 템플릿으로 표현하고, 웹 서비스는 WSDL로 서비스의 상세 정보를 표현한다. 디바이스/서비스 템플릿과 WSDL은 모두 XML 형식이나 그 세부 표현 형식에 있어 많은 차이점이 있다. 디스크립션 모듈(330)은 UPnP 및 웹 서비스의 디스크립션 단계를 모두 지원한다. 이에 대한 설명은 도 5에서 후술하도록 한다.The description module 330 allows the detailed information of the CD found through the discovery module. In the description stage, UPnP expresses devices and services as device / service templates defined in a certain format, and web services express service details in WSDL. Both device / service templates and WSDL have many differences in the XML format or their detailed representation. The description module 330 supports both the UPnP and the description steps of the web service. The description thereof will be described later with reference to FIG. 5.

제어 모듈(340)은 CP가 CD가 제공하는 서비스를 호출하고 호출에 대한 응답을 수신할 수 있도록 한다. 서비스의 호출은 일종의 원격 프로시저 호출로 CP가 CD에 서비스를 요구하는 메시지를 전송하고 CD는 서비스 완료시 그 결과를 돌려준다. 이는 UPnP 및 웹 서비스 모두에 공통된 메커니즘으로 서비스 호출 메시지와 이에 대한 응답 메시지는 SOAP 프로토콜을 사용한다. 따라서 제어 모듈(340)은 제어 인터페이스 모듈(342)을 통하여 어플리케이션 레이어로부터 서비스 호출 명령과 호출하고자 하는 서비스에 대한 정보를 받아 제어 구현 모듈(344)에 전달하고, 제어 구현 모듈(344)은 받은 정보를 SOAP 모듈(346)에 전달하여 SOAP 프로토콜에 따른 서비스 요청 메시지를 생성하여 전송한다. 서비스의 수행이 완료되면 결과 메시지를 수신하고 이를 SOAP 모듈이 처리하여 제어 구현 모듈에 제공하고, 제어 구현 모듈은 이 정보를 제어 인터페이스 모듈을 통하여 어플리케이션 레이어에 전달한다.The control module 340 allows the CP to call a service provided by the CD and receive a response to the call. A service call is a remote procedure call that the CP sends to the CD requesting a service and the CD returns the result when the service completes. This is a mechanism common to both UPnP and Web services. Service invocation messages and response messages use the SOAP protocol. Accordingly, the control module 340 receives the service call command and the information about the service to be called from the application layer through the control interface module 342 and transmits the information to the control implementation module 344, and the control implementation module 344 receives the received information. Is transmitted to the SOAP module 346 to generate and transmit a service request message according to the SOAP protocol. When the service is completed, the result message is received and processed by the SOAP module and provided to the control implementation module. The control implementation module transmits this information to the application layer through the control interface module.

이벤팅 모듈(350)은 UPnP 및 웹 서비스의 이벤팅 단계를 수행한다. CP가 관심있는 CD의 상태 변화를 알고자 하는 경우 본 발명의 실시예에 따른 통합 미들웨어 장치는 디스커버리 단계에서 획득한 CD에 관한 정보 중 이벤팅 URL로 등록 요청(Subscribe) 메시지를 생성하여 전송하고 CD는 등록 요청 메시지를 보낸 CP를 등록한 후CD의 상태가 변할 때마다 등록된 CP들에게 상태 변화에 관한 정보를 담은 이벤트 메시지를 전송하게 된다. UPnP는 이벤팅 단계를 위한 프로토콜로 GENA(General Event Notification Architecture)를 사용하고, 웹 서비스는 WS-Eventing 프로토콜을 사용한다. 두 프로토콜은 유사한 메커니즘을 제공하나 해당 메시지 포맷 및 세부사항에 있어 차이가 있다. 이벤팅 모듈(350)은 UPnP 및 웹 서비스를 모두 지원하는 하나의 이벤팅 인터페이스 모듈(351) 및 이벤팅 구현 모듈(352)을 제공함으로써 UPnP 및 웹 서비스의 이벤팅 단계를 모두 지원하게 된다. 이벤팅 모듈(350)에 대한 세부 구조는 도 6에서 후술하도록 한다.Eventing module 350 performs the eventing steps of UPnP and web services. When the CP wants to know the state change of the CD of interest, the integrated middleware device according to the embodiment of the present invention generates and transmits a subscription message to the event URL among the information about the CD acquired in the discovery step and transmits the CD. After registering the CP that sent the registration request message, each time the state of the CD changes, the event message containing the information on the state change is transmitted to the registered CPs. UPnP uses the General Event Notification Architecture (GENA) as the protocol for the eventing phase, and Web services uses the WS-Eventing protocol. The two protocols provide a similar mechanism but differ in their message format and details. Eventing module 350 supports both the eventing phase of UPnP and web services by providing one eventing interface module 351 and an eventing implementation module 352 that support both UPnP and web services. Detailed structure of the event module 350 will be described later in FIG.

프레젠테이션 모듈(360)은 UPnP 및 웹 서비스의 프레젠테이션 단계를 수행한다. 프레젠테이션 모듈은 CD에 관한 정보나 기능을 HTTP를 통해 제공한다. 프레젠테이션 기능은 부가적인 기능이므로 UPnP와 웹 서비스에 있어 공통되거나 선택적인 사항이라 볼 수 있다. 프레젠테이션 모듈(360)은 UPnP 및 웹 서비스를 사용하는 어플리케이션에 하나의 인터페이스를 제공(362)하고 프레젠테이션 구현 모듈(364)은 인터페이스를 통해 전달받은 정보를 HTTP 모듈(366)에 제공하여 CD에 관한 정보나 기능을 제공하도록 한다.The presentation module 360 performs presentation steps of UPnP and web services. The presentation module provides information or functionality about the CD via HTTP. Since the presentation function is an additional function, it is common or optional for UPnP and web service. The presentation module 360 provides an interface 362 to an application using UPnP and web services, and the presentation implementation module 364 provides the HTTP module 366 with information received through the interface to provide information about the CD. I will provide a function.

도 4는 도 3에 도시된 통합 미들웨어 장치의 디스커버리 모듈의 상세 구조를 보여주는 도면이다.4 is a diagram illustrating a detailed structure of a discovery module of the integrated middleware device of FIG. 3.

디스커버리 모듈(320)은 디스커버리 인터페이스 모듈(321), 디스커버리 구현 모듈(322), UPnP SSDP 모듈(323), WS-Discovery 모듈(324), 멀티캐스트 포트(325, 326)로 구성된다. 디스커버리 인터페이스 모듈(321)은 어플리케이션 개발자에게 제공되는 인터페이스 부분으로 개발자는 이 모듈을 통하여 디스커버리 단계를 제어할 수 있다. 디스커버리 인터페이스 모듈(321)은 어플리케이션으로부터 디바이스의 존재를 알리는 메시지를 전송하라는 명령, 디바이스가 제거됨을 알리는 메시지를 전송하라는 명령, 관심있는 디바이스를 탐색하라는 명령 및 이들 명령을 위해 필요한 디바이스의 정보를 제공받는다. 디스커버리 구현 모듈(322)은 디스커버리 인터페이스 모듈(321)로부터 전달받은 디바이스 관련 정보를 UPnP SSDP 모듈(323) 또는 WS-Discovery 모듈(324)에 제공한다. 또한 UPnP SSDP 모듈(323) 또는 WS-Discovery 모듈(324)로부터 해독된 SSDP 메시지 또는 WS-Discovery 메시지를 받아 필요한 정보, 즉 디바이스에 관한 정보 등을 디스커버리 인터페이스 모듈(321)을 통하여 어플리케이션 레이어에 전달한다.The discovery module 320 includes the discovery interface module 321, the discovery implementation module 322, the UPnP SSDP module 323, the WS-Discovery module 324, and the multicast ports 325 and 326. The discovery interface module 321 is an interface part provided to an application developer, and the developer can control the discovery step through this module. The discovery interface module 321 receives from the application a command to send a message indicating the presence of a device, a command to send a message indicating that the device is removed, a command to search for a device of interest and information about the devices necessary for these commands. . The discovery implementation module 322 provides the device related information received from the discovery interface module 321 to the UPnP SSDP module 323 or the WS-Discovery module 324. In addition, the SSDP message or the WS-Discovery message decrypted from the UPnP SSDP module 323 or the WS-Discovery module 324 is received, and necessary information, that is, information about a device, is transmitted to the application layer through the discovery interface module 321. .

UPnP SSDP 모듈(323)은 UPnP의 SSDP 메시지를 생성하고 수신한 SSDP 메시지를 해독하여 디스커버리 구현 모듈(322)에 제공한다. WS-Discovery 모듈(324)은 웹 서비스의 WS-Discovery 메시지를 생성하고 수신한 WS-Discovery 메시지를 해독하여 디스커버리 구현 모듈(322)에 제공한다. SSDP 메시지의 생성 및 WS-Discovery 메시지의 생성은 동시에 수행될 수도 있고, 어플리케이션의 요청에 따라 어느 하나만 수행될 수도 있다. SSDP 메시지 및 WS-Discovery 메시지 중 멀티캐스트되는 메시지, 예를 들면 Alive/Hello 메시지 및 Bye 메시지는 멀티캐스트 채널(239:255:255:250)을 통하여 전송되고 수신된다. SSDP 메시지의 경우 포트 1900(325)으로 전송되고 수신되며, WS-Discovery 메시지의 경우 포트 3702(326)로 전송되고 수신된다. 따라서 디스커버리 단계에서 멀티캐스트되는 메시지는 사용하는 포트에 따라 SSDP 메시지와 WS-Discovery 메시지로 구분될 수 있다. 한편, SSDP 메시지 및 WS-Discovery 메시지 중 유니캐스트되는 메시지, 예를 들면 탐색 메시지에 대한 응답 메시지는 메시지가 수신되는 소켓 또는 메시지의 헤더 부분을 분석하여 SSDP 메시지와 WS-Discovery 메시지로 구분될 수 있다. The UPnP SSDP module 323 generates an SSDP message of UPnP, decodes the received SSDP message, and provides it to the discovery implementation module 322. The WS-Discovery module 324 generates a WS-Discovery message of the web service, decrypts the received WS-Discovery message, and provides the WS-Discovery message to the discovery implementation module 322. The generation of the SSDP message and the generation of the WS-Discovery message may be simultaneously performed, or only one may be performed at the request of an application. Among the SSDP message and the WS-Discovery message, the multicasted message, for example, the Alive / Hello message and the Bye message, are transmitted and received through the multicast channel 239: 255: 255: 250. The SSDP message is sent and received on port 1900 325, and the WS-Discovery message is sent and received on port 3702 326. Therefore, messages multicasted in the discovery phase may be classified into SSDP messages and WS-Discovery messages according to ports used. Meanwhile, a unicast message, for example, a response message to a discovery message, of an SSDP message and a WS-Discovery message may be classified into an SSDP message and a WS-Discovery message by analyzing a header portion of the socket or the message where the message is received. .

다음은 UPnP SSDP:응답(Response) 메시지 포맷이다.The following is the UPnP SSDP: Response message format.

HTTP/1.1 200 OKHTTP / 1.1 200 OK

CACHE-CONTROL: max-age = 알림(advertisement)이 폐기될 때까지의 초CACHE-CONTROL: max-age = seconds until notification is discarded

DATE: 응답이 생성된 날짜DATE: Date when the response was generated

EXT:EXT:

LOCATION: 루트 디바이스를 위한 UPnP 디스크립션의 URLLOCATION: URL of the UPnP description for the root device

SERVER: OS/버전 UPnP/1.0 product/버전SERVER: OS / version UPnP / 1.0 product / version

ST: 탐색 목표ST: Navigation Goal

USN: 알림(advertisement) UUIDUSN: Advertisement UUID

예를 들면, UPnP SSDP:응답 메시지는 LOCATION 헤더에 .XML로 끝나는 URL을 가지게 되고, SERVER 헤더에 UPnP/1.0 태그가 명시되어 있으므로 분석 모듈이 SSDP 메시지임을 알 수 있다.For example, the UPnP SSDP: response message has a URL ending with .XML in the LOCATION header, and the UPnP / 1.0 tag is specified in the SERVER header, indicating that the analysis module is an SSDP message.

다음은 WS-Discovery 응답 메시지 중 하나인 WS-Discovery:ProbeMatch 메시지의 포맷이다.The following is the format of the WS-Discovery: ProbeMatch message, one of the WS-Discovery response messages.

<s:Envelope ...> <s: Envelope ...>

<s:Header ...> <s: Header ...>

<a:Action ...> <a: Action ...>

http://schemas.xmlsoap.org/ws/2004/02/discovery/ProbeMatchhttp://schemas.xmlsoap.org/ws/2004/02/discovery/ProbeMatch

</a:Action> </ a: Action>

<a:MessageID ...>xs:anyURI</a:MessageID> <a: MessageID ...> xs: anyURI </ a: MessageID>

<a:RelatesTo ...>xs:anyURI</a:RelatesTo> <a: RelatesTo ...> xs: anyURI </ a: RelatesTo>

<a:To ...>xs:anyURI</a:To> <a: To ...> xs: anyURI </ a: To>

... ...

</s:Header> </ s: Header>

<s:Body ...> <s: Body ...>

<d:ProbeMatch ...> <d: ProbeMatch ...>

<a:EndpointReference ...> <a: EndpointReference ...>

<a:Address ...>xs:anyURI</a:Address> <a: Address ...> xs: anyURI </ a: Address>

[<a:ReferenceProperties ...>...</a:ReferenceProperties>]? [<a: ReferenceProperties ...> ... </ a: ReferenceProperties>]?

... ...

[<p:Policy>policy expression</p:Policy>]? [<p: Policy> policy expression </ p: Policy>]?

</a:EndpointReference> </ a: EndpointReference>

[<d:Types ...>list of xs:QName</d:Types>]? [<d: Types ...> list of xs: QName </ d: Types>]?

[<d:Scopes ...>list of xs:anyURI</d:Scopes>]? [<d: Scopes ...> list of xs: anyURI </ d: Scopes>]?

<d:MetadataVersion ...>xs:nonNegativeInteger</d:MetadataVersion> <d: MetadataVersion ...> xs: nonNegativeInteger </ d: MetadataVersion>

... ...

</d:ProbeMatch> </ d: ProbeMatch>

</s:Body> </ s: Body>

</s:Envelope> </ s: Envelope>

예를 들면, WS-Discovery:ProbeMatch메시지는 헤더 부분의 액션 부분, 즉 http://schemas.xmlsoap.org/ws/2004/02/discovery/ProbeMatch 를 보고 분석 모듈이 WS-Discovery 메시지임을 알 수 있다.For example, the WS-Discovery: ProbeMatch message looks at the action part of the header part, that is, http://schemas.xmlsoap.org/ws/2004/02/discovery/ProbeMatch , indicating that the analysis module is a WS-Discovery message. .

도 5는 도 3에 도시된 통합 미들웨어 장치의 디스크립션 모듈의 상세 구조를 보여주는 도면이다.FIG. 5 is a diagram illustrating a detailed structure of a description module of the integrated middleware device shown in FIG. 3.

디스크립션 모듈(330)은 디스크립션 인터페이스 모듈(331), 디스크립션 구현 모듈(332), UPnP 모듈(333), WSDL 모듈(334), 디스크립션 빌더 모듈(335)로 구성된다. The description module 330 includes a description interface module 331, a description implementation module 332, a UPnP module 333, a WSDL module 334, and a description builder module 335.

디스크립션 인터페이스 모듈(331)은 어플리케이션 개발자에게 제공되는 인터페이스 부분으로 개발자는 이 모듈을 통하여 디스크립션 단계를 제어할 수 있다. 디스크립션 인터페이스 모듈(331)은 어플리케이션으로부터 디스크립션 요청 명령 및 디스커버리 단계에서 획득한 관심 있는 디바이스에 관한 정보 또는 디스크립션 문서 작성에 필요한 디바이스에 관한 상세 정보를 제공받아 이를 디스크립션 구현 모듈(332)에 전달한다. The description interface module 331 is an interface part provided to the application developer, and the developer can control the description step through this module. The description interface module 331 receives from the application a description request command and information about a device of interest obtained in the discovery step or detailed information about a device required for preparing a description document, and delivers the information to the description implementation module 332.

디스크립션 구현 모듈(332)은 디스크립션 인터페이스 모듈(331)로부터 제공받은 관심있는 디바이스에 관한 정보를 분석하여 UPnP 모듈(333) 또는 WSDL 모듈(334)로 하여금 디스크립션 문서의 URL로 디스크립션 요청 메시지를 전송하도록 한다. 그리고, CD가 디스크립션 요청 메시지를 수신하면 디스크립션 인터페이스 모듈(331)로부터 전달받은 디바이스의 상세 정보를 UPnP 모듈(333) 또는 WSDL 모듈(334)에 제공한다. 또한 UPnP 모듈(333) 또는 WSDL 모듈(334)로부터 처리된 디바이스/서비스 템플릿 또는 WSDL메시지를 받아 필요한 정보를 디스크립션 인터페이스 모듈(331)을 통하여 어플리케이션 레이어에 전달한다.The description implementation module 332 analyzes the information about the device of interest provided from the description interface module 331 to cause the UPnP module 333 or the WSDL module 334 to send the description request message to the description document URL. . When the CD receives the description request message, the CD provides detailed information about the device received from the description interface module 331 to the UPnP module 333 or the WSDL module 334. In addition, the device / service template or WSDL message processed from the UPnP module 333 or the WSDL module 334 is transmitted to the application layer through the description interface module 331.

디스크립션 단계는 CP의 요청에 의해 CD가 자신을 제공하는 디바이스의 상세 정보 및 제공할 수 있는 서비스에 대한 상세 정보를 제공하는 단계다. 서비스에 대한 상세정보를 표현하기 위하여 UPnP는 디바이스/서비스 템플릿을, 웹 서비스는 WSDL을 이용한다. 따라서 UPnP 모듈(333)은 서비스에 대한 상세 정보를 표현하는 메시지를 생성하기 위해 디스크립션 구현 모듈(332)로부터 필요한 정보를 제공받아 디바이스/서비스 템플릿 형식의 메시지를 생성하여 전송하고, 디스크립션 빌더 모듈(335)로부터 전달받은 디바이스/서비스 템플릿을 해독하여 적절한 서비스 정보를 디스크립션 구현 모듈(332)에 제공한다. WSDL 모듈(334)은 서비스에 대한 상세 정보를 표현하는 메시지를 생성하기 위해 디스크립션 구현 모듈(332)로부터 필요한 정보를 제공받아 WSDL 형식의 메시지를 생성하여 전송하고, 디스크립션 빌더 모듈(335)로부터 전달받은 WSDL 메시지를 해독하여 적절한 서비스 정보를 디스크립션 구현 모듈(332)에 제공한다.The description step is a step of providing detailed information of a device that a CD provides itself and detailed information about a service that can be provided by a CP. In order to express detailed information about a service, UPnP uses a device / service template and a web service uses WSDL. Accordingly, the UPnP module 333 receives the necessary information from the description implementation module 332 to generate a message representing detailed information about a service, generates and transmits a message in a device / service template format, and describes the description builder module 335. Decode the device / service template received from the) to provide the appropriate service information to the description implementation module 332. The WSDL module 334 receives the necessary information from the description implementation module 332 to generate a message representing detailed information about a service, generates and transmits a message in WSDL format, and receives the message from the description builder module 335. The WSDL message is decrypted to provide appropriate service information to the description implementation module 332.

디스크립션 빌더 모듈(335)은 디바이스 또는 서비스에 대한 상세 정보의 요청이 있을 때 디스크립션 구현 모듈(332)의 해당 정보를 이용하여 생성된 디바이스/서비스 템플릿 또는 WSDL 메시지를 동적으로 전송하고, 수신된 디바이스/서비스 템플릿 또는 WSDL 메시지를 분석하여 이를 UPnP 모듈(333) 또는 WSDL 모듈(334)에 전달한다. 수신된 상세 정보는 디스커버리 단계에서 해독된 CD에 관한 정보, 예를 들면 디스크립션 URL 또는 상세 정보의 헤더 정보 또는 상세 정보의 포맷에 따라 사용된 프로토콜을 구분할 수 있다.The description builder module 335 dynamically transmits the generated device / service template or WSDL message using the corresponding information of the description implementation module 332 when a request for detailed information about the device or service is performed, and receives the received device / The service template or WSDL message is analyzed and delivered to the UPnP module 333 or the WSDL module 334. The received detailed information may distinguish the used protocol according to information about the CD decrypted in the discovery step, for example, a description URL or header information of the detailed information or a format of the detailed information.

일 실시예에서는 상술한 바와 같이 디바이스/서비스 템플릿 또는 WSDL 메시지를 파일 형태가 아닌 해당 요청이 있을 때마다 동적 스트림으로 제공할 수 있다. 한편, 다른 실시예에서는 디바이스/서비스 템플릿 또는 WSDL 메시지를 파일 형태로 저장하고 있다가 해당 정보에 대한 요청이 있는 경우 제공할 수도 있다. 수신된 디 스크립션 문서가 디바이스/서비스 템플릿인지 WSDL 메시지인지는 디스커버리 단계에서 획득된 디바이스에 관한 정보, 예를 들면 디스크립션 URL로부터 알 수 있다.As described above, the device / service template or the WSDL message may be provided as a dynamic stream whenever there is a corresponding request rather than a file. Meanwhile, in another embodiment, a device / service template or a WSDL message may be stored in a file form and provided when a request for corresponding information is provided. Whether the received description document is a device / service template or a WSDL message can be known from information about a device obtained in the discovery step, for example, a description URL.

도 6은 도 3에 도시된 통합 미들웨어 장치의 이벤팅 모듈의 상세 구조를 보여주는 도면이다.FIG. 6 is a diagram illustrating a detailed structure of an eventing module of the integrated middleware device of FIG. 3.

이벤팅 모듈(350)은 이벤팅 인터페이스 모듈(351), 이벤팅 구현 모듈(352), UPnP GENA 모듈(353), WS-Eventing 모듈(354), 인터프리터 모듈(355)로 구성된다. 이벤팅 인터페이스 모듈(351)은 어플리케이션 개발자에게 제공되는 인터페이스 부분으로 개발자는 이 모듈을 통하여 이벤팅 단계를 제어할 수 있다. 이벤팅 인터페이스 모듈(351)은 어플리케이션으로부터 이벤트 등록 및 등록 제거에 관련된 이벤팅 제어 명령과 이벤트 등록을 할 URL 정보, 디스크립션 단계에서 획득된 정보에 따라 관심있는 디바이스가 UPnP 디바이스인지 웹 서비스 디바이스인지에 관한 정보 등을 제공받는다. The eventing module 350 is composed of an eventing interface module 351, an eventing implementation module 352, a UPnP GENA module 353, a WS-Eventing module 354, and an interpreter module 355. Eventing interface module 351 is an interface part provided to the application developer, the developer can control the eventing step through this module. The eventing interface module 351 determines whether a device of interest is a UPnP device or a web service device according to event control commands related to event registration and registration removal from an application, URL information for event registration, and information obtained in a description step. Get information and more.

이벤팅 구현 모듈(352)은UPnP GENA 메시지 또는 WS-Eventing 메시지로부터 획득된 CD의 상태 정보 등을 이벤팅 인터페이스 모듈(351)을 통해 어플리케이션 레이어로 전달하고, 이벤팅 인터페이스 모듈(351)을 통해 어프리케이션으로부터 제공되는 이벤팅 제어 명령을 분석하여 UPnP GENA 모듈(353) 또는 WS-Eventing 모듈(354)이 처리할 수 있도록 한다. 이 때 이벤팅 구현 모듈(352)은 어플리케이션으로부터 제공되는 디스크립션 단계에서 획득된 디바이스의 정보, 예를 들면 이벤팅 등록을 위한 URL을 통하여 이벤팅 제어 명령이 UPnP GENA 명령인지 WS-Eventing 명령인지 구별할 수 있다.The eventing implementation module 352 delivers the state information of the CD obtained from the UPnP GENA message or the WS-Eventing message to the application layer through the eventing interface module 351, and the affairs through the eventing interface module 351. The event control command provided from the application is analyzed and processed by the UPnP GENA module 353 or the WS-Eventing module 354. At this time, the eventing implementation module 352 may distinguish whether an eventing control command is a UPnP GENA command or a WS-Eventing command through information of a device acquired in the description step provided from an application, for example, a URL for event registration. Can be.

인터프리터 모듈(355)은 CP로부터 전송되는 이벤팅 제어 명령 및 CD로부터 전송되는 이벤트 메시지를 분석하여 UPnP GENA 모듈(353) 또는 WS-Eventing 모듈(354)로 전달하는 역할을 한다. 수신된 이벤팅 제어 명령이 UPnP GENA 메시지인지 WS-Eventing 메시지인지는 이벤팅 등록 및 등록 제거를 요청하는 URL 또는 메시지의 헤더 정보 등으로부터 알 수 있다. CP는 디스크립션 단계에서 디바이스 템플릿 또는 서비스에 대한 WSDL로부터 이벤팅 URL을 추출할 수 있다. The interpreter module 355 analyzes the event control command transmitted from the CP and the event message transmitted from the CD and transmits the analyzed message to the UPnP GENA module 353 or the WS-Eventing module 354. Whether the received event control command is a UPnP GENA message or a WS-Eventing message can be known from the URL requesting event registration and registration removal or header information of the message. The CP may extract the eventing URL from the WSDL for the device template or service in the description step.

다음은 UPnP GENA:Subscribe 메시지 및 WS-Eventing:Subscribe 메시지의 포맷이다.The following is the format of UPnP GENA: Subscribe and WS-Eventing: Subscribe messages.

SUBSCIRIBE publisher path HTTP/1.1SUBSCIRIBE publisher path HTTP / 1.1

HOST:Publisher host:publisher port HOST: Publisher host: publisher port

CALLBACK:<delivery URL> CALLBACK: <delivery URL>

NT:upnp:event NT: upnp: event

TIMEOUT:Second-requested subscription duration TIMEOUT: Second- requested subscription duration

UPnP GENA:Subscribe 메시지의 경우 Publisher path, HOST 헤더의 Publisher host:publisher port, 또는 NT(Notification Type) upnp:event 값을 보고 UPnP GENA:Subscribe 메시지임을 알 수 있다. Publisher path는 이벤팅 URL의 경로를 나타내는 요소이고, HOST 헤더의 Publisher host:publisher port는 이벤팅 URL의 도메인 이름(IP주소)과 포트번호를 나타낸다.In case of UPnP GENA: Subscribe message, it can be known that it is UPnP GENA: Subscribe message by looking at Publisher path, Publisher host: publisher port of HOST header, or NT (Notification Type) upnp: event value. The Publisher path is an element that indicates the path of the event URL, and the Publisher host: publisher port in the HOST header indicates the domain name (IP address) and port number of the event URL.

<s:Envelope ...> <s: Envelope ...>

<s:Header ...> <s: Header ...>

<wsa:Action> <wsa: Action>

http://schemas.xmlsoap.org/ws/2004/01/eventing/Subscribehttp://schemas.xmlsoap.org/ws/2004/01/eventing/Subscribe

</wsa:Action> </ wsa: Action>

<wsa:MessageID>xs:anyURI</wsa:MessageID> <wsa: MessageID> xs: anyURI </ wsa: MessageID>

<wsa:FaultTo>endpoint-reference</wsa:FaultTo> ? <wsa: FaultTo> endpoint-reference </ wsa: FaultTo>?

<wsa:ReplyTo>endpoint-reference</wsa:ReplyTo> <wsa:To>xs:anyURI</wsa:To> <wsa: ReplyTo> endpoint-reference </ wsa: ReplyTo><wsa:To> xs: anyURI </ wsa: To>

... ...

</s:Header> </ s: Header>

<s:Body ...> <s: Body ...>

<wse:Subscribe ...> <wse: Subscribe ...>

<wse:NotifyTo>endpoint-reference</wse:NotifyTo> <wse: NotifyTo> endpoint-reference </ wse: NotifyTo>

<wse:EndTo>endpoint-reference</wse:EndTo> ? <wse: EndTo> endpoint-reference </ wse: EndTo>?

<wse:Expires>[xs:dateTime | xs:duration]</wse:Expires> ? <wse: Expires> [ xs: dateTime | xs: duration ] </ wse: Expires>?

<wse:Filter Dialect="xs:anyURI"? > xs:string </wse:Filter> ? <wse: Filter Dialect = "xs: anyURI"? > xs: string </ wse: Filter>?

... ...

</wse:Subscribe> </ wse: Subscribe>

</s:Body> </ s: Body>

</s:Envelope></ s: Envelope>

WS-Eventing:Subscribe 메시지의 경우 /s:Envelope/s:Header/wsa:Action 부 분을 보고 WS-Eventing:Subscribe 메시지임을 알 수 있다. For the WS-Eventing: Subscribe message, we can see that it is a WS-Eventing: Subscribe message by looking at the / s: Envelope / s: Header / wsa: Action part.

수신된 이벤트 메시지가 UPnP GENA 메시지인지 WS-Eventing 메시지인지는 CD에 대한 이벤팅 등록시 디스크립션 단계에서 획득된 CD에 관한 정보로부터 알거나, 이벤트 메시지의 포맷을 분석함으로써 알 수 있다.Whether the received event message is a UPnP GENA message or a WS-Eventing message can be known from the information about the CD acquired in the description step when registering the event for the CD or by analyzing the format of the event message.

다음은 UPnP GENA:Notify 메시지 및 WS-Eventing:Event 메시지의 포맷이다.The following is the format of UPnP GENA: Notify message and WS-Eventing: Event message.

NOTIFY delivery path HTTP/1.1NOTIFY delivery path HTTP / 1.1

HOST: delivery host:delivery port HOST: delivery host: delivery port

CONTENT-TYPE: text/xmlCONTENT-TYPE: text / xml

CONTENT-LENGTH: Bytes in body CONTENT-LENGTH: Bytes in body

NT: upnp:event NT: upnp: event

NTS: upnp:propchange NTS: upnp: propchange

SID: uuid: subscription-UUID SID: uuid: subscription-UUID

SEQ: event key SEQ : event key

<?xml version="1.0"?><? xml version = "1.0"?>

<e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0"> < e : propertyset xmlns: e = "urn: schemas-upnp-org : event-1-0 ">

<e:property>< e : property >

< variableName >new value</ variableName >< variableName > new value </ variableName >

</e:property></ e : property >

other variable names and values (if any) go hereother variable names and values (if any) go here

</e:propertyset></ e : propertyset >

UPnP GENA:Notify 메시지의 경우 NT(Notification Type) 헤더 또는 NTS(Notification SubType) 헤더 값을 보면 UPnP 메시지임을 알 수 있다.In the case of the UPnP GENA: Notify message, the UPnP GENA: Notify message can be seen from the NT (Notification Type) header or NTS (Notification SubType) header value.

(01) <s12:Envelope (01) <s12: Envelope

(02) xmlns:s12='http://www.w3.org/2003/05/soap-envelope' (02) xmlns: s12 = 'http: //www.w3.org/2003/05/soap-envelope'

(03) xmlns:wsa='http://schemas.xmlsoap.org/ws/2003/03/addressing' (03) xmlns: wsa = 'http: //schemas.xmlsoap.org/ws/2003/03/addressing'

(04) xmlns:ew='http://www.example.com/warnings' (04) xmlns: ew = 'http: //www.example.com/warnings'

(05) xmlns:ow='http://www.example.org/oceanwatch' > (05) xmlns: ow = 'http: //www.example.org/oceanwatch'>

(06) <s12:Header> (06) <s12: Header>

(07) <wsa:Action> (07) <wsa: Action>

(08) http://www.example.org/oceanwatch/2003/WindReport (08) http://www.example.org/oceanwatch/2003/WindReport

(09) </wsa:Action> (09) </ wsa: Action>

(10) <wsa:MessageID> (10) <wsa: MessageID>

(11) uuid:568b4ff2-5bc1-4512-957c-0fa545fd8d7f (11) uuid: 568b4ff2-5bc1-4512-957c-0fa545fd8d7f

(12) </wsa:MessageID> (12) </ wsa: MessageID>

(13) <wsa:To>http://www.other.example.com/OnStormWarning</wsa:To> (13) <wsa: To> http://www.other.example.com/OnStormWarning </ wsa: To>

(14) <ew:MySubscription>2597</ew:MySubscription> (14) <ew: MySubscription> 2597 </ ew: MySubscription>

(15) </s12:Header> (15) </ s12: Header>

(16) <s12:Body> (16) <s12: Body>

(17) <ow:WindReport> (17) <ow: WindReport>

(18) <ow:Date>030701</ow:Date> (18) <ow: Date> 030701 </ ow: Date>

(19) <ow:Time>0041</ow:Time> (19) <ow: Time> 0041 </ ow: Time>

(20) <ow:Speed>65</ow:Speed> (20) <ow: Speed> 65 </ ow: Speed>

(21) <ow:Location>BRADENTON BEACH</ow:Location> (21) <ow: Location> BRADENTON BEACH </ ow: Location>

(22) <ow:County>MANATEE</ow:County> (22) <ow: County> MANATEE </ ow: County>

(23) <ow:State>FL</ow:State> (23) <ow: State> FL </ ow: State>

(24) <ow:Lat>2746</ow:Lat> (24) <ow: Lat> 2746 </ ow: Lat>

(25) <ow:Long>8270</ow:Long> (25) <ow: Long> 8270 </ ow: Long>

(26) <ow:Comments xml:lang='en-US' > (26) <ow: Comments xml: lang = 'en-US'>

(27) WINDS 55 WITH GUSTS TO 65. ROOF TORN OFF BOAT HOUSE. REPORTED (27) WINDS 55 WITH GUSTS TO 65.ROOF TORN OFF BOAT HOUSE. REPORTED

(28) BY STORM SPOTTER. (TBW) (28) BY STORM SPOTTER. (TBW)

(29) </ow:Comments> (29) </ ow: Comments>

(30) </ow:WindReport> (30) </ ow: WindReport>

(31) </s12:Body> (31) </ s12: Body>

(32) </s12:Envelope> (32) </ s12: Envelope>

WS-Eventing:Notification 메시지의 경우 액션 부분의 http://www.example.org/oceanwatch/2003/WindReport이 어떤 상태 정보에 관한 이벤트 메시지인지 나타내므로 CP는 수신된 메시지가 WS-Eventing임을 알 수 있다. CP가 이벤팅 등록 요청시 관심있는 상태 정보를 명시하므로 이에 대한 응답으로서의 이벤트 메시지를 구별할 수 있다. For the WS-Eventing: Notification message, the http://www.example.org/oceanwatch/2003/WindReport in the action part indicates what event information is the event message, so the CP knows that the received message is WS-Eventing. . Since the CP specifies the state information of interest when requesting an event registration, the event message can be distinguished in response.

이벤팅 단계는 CD가 자신의 상태 정보를 미리 등록된 CP에게 메시지 형태로 전달하기 위한 메커니즘을 제공한다. CP는 상태 변화를 알고자 하는 CD에 이벤팅 등록(Subscription)을 요청하고 CD가 이를 등록하게 되면 CD는 해당 상태에 변화가 있을 때마다 등록된 CP들에게 이벤팅 메시지를 보내어 알려준다. 여기서, UPnP는 GENA 프로토콜을, 웹 서비스는 WS-Eventing 프로토콜을 사용하여 이벤팅 단계를 구현한다. 따라서 UPnP GENA 모듈(353)은 UPnP GENA 프로토콜을 이용하는 이벤팅 관련 메시지를 생성하거나 처리하고, WS-Eventing 모듈(354)은 WS-Eventing 프로토콜을 이용하는 이벤팅 관련 메시지를 생성하거나 처리한다.The eventing step provides a mechanism for the CD to deliver its status information to the pre-registered CP in the form of a message. The CP requests an event registration (Subscription) to the CD that wants to know the state change, and when the CD registers it, the CD sends an event message to the registered CPs whenever there is a change in the state. Here, UPnP implements the eventing phase using the GENA protocol and Web services using the WS-Eventing protocol. Accordingly, the UPnP GENA module 353 generates or processes event related messages using the UPnP GENA protocol, and the WS-Eventing module 354 generates or processes event related messages using the WS-Eventing protocol.

도 7은 본 발명의 실시예에 따른 디스커버리 단계를 CD의 측면에서 보여주는 흐름도이다.7 is a flowchart showing a discovery step in terms of a CD according to an embodiment of the present invention.

디스커버리 단계에서 CD는 CP로부터 탐색 메시지를 수신하고 이에 대한 응답 메시지를 전송하거나, 네트워크에 참여할 경우 자신의 존재를 알리는 메시지, 즉 Alive/Hello 메시지를 멀티캐스트하거나, 네트워크를 탈퇴할 경우 디바이스가 제거됨을 알리는 메시지, 즉 Bye 메시지를 멀티캐스트한다. During the discovery phase, the CD receives a discovery message from the CP and sends a response message to it, or if it joins the network, multicasts a message indicating its presence, that is, an Alive / Hello message, or removes the device when leaving the network. Multicast the advertised message, the Bye message.

CD가 네트워크에 새롭게 추가되는 경우 고유한 네트워크 주소를 할당받은 CD는 동일한 네트워크상의 CP들에 자신의 존재를 알리기 위하여 디스커버리 인터페이스 모듈(321)을 통하여 Alive/Hello 명령을 내리면서 CD의 기본적인 정보를 제공한다(S710). CD의 기본적인 정보는 CD의 디스크립션을 위한 URL과 CD 식별자, CD 의 유형, Alive/Hello 메시지의 유효기간 등을 포함한다. 디스커버리 구현 모듈(322)은 디스커버리 인터페이스 모듈(321)을 통하여 받은 명령에 따라 CD에 관한 정보를 UPnP SSDP 모듈(323) 및 WS-Discovery 모듈(324)에 제공(S712)한다. UPnP SSDP 모듈(323)은 UPnP SSDP:Alive 메시지를 생성하여 멀티캐스트 채널 포트(239:255:255:250:1900)로 전송하고 WS-Discovery 모듈(324)은 WS-Discovery:Hello 메시지를 생성하여 멀티캐스트 채널 포트(239:255:255:250:3702)로 전송(S714)한다. 이 때, 어플리케이션의 결정에 따라 UPnP SSDP:Alive 메시지 및 WS-Discovery:Hello 메시지를 모두 생성하여 전송하거나, 두 메시지 중 하나만 생성하여 전송할 수 있다.When a CD is newly added to the network, a CD assigned a unique network address provides basic information of the CD by issuing an Alive / Hello command through the discovery interface module 321 to inform its CPs of the same network. (S710). The basic information of a CD includes the URL for the description of the CD, the CD identifier, the type of CD, and the validity of the Alive / Hello message. The discovery implementation module 322 provides information about the CD to the UPnP SSDP module 323 and the WS-Discovery module 324 according to a command received through the discovery interface module 321 (S712). The UPnP SSDP module 323 generates a UPnP SSDP: Alive message and sends it to the multicast channel port (239: 255: 255: 250: 1900), and the WS-Discovery module 324 generates a WS-Discovery: Hello message. A multicast channel port 239: 255: 255: 250: 3702 is transmitted (S714). At this time, According to the application's decision Both UPnP SSDP: Alive and WS-Discovery: Hello messages can be generated and sent, or only one of them can be created and sent.

CD는 네트워크를 탈퇴하기 전, 디스커버리 인터페이스 모듈(321)을 통하여 Bye 명령을 내린다(S720). 디스커버리 구현 모듈은 Bye 메시지를 생성하는데 필요한 CD의 정보를 UPnP SSDP 모듈(323) 및 WS-Discovery 모듈(324)에 제공(S722)한다. UPnP SSDP 모듈(323)은 UPnP SSDP:ByeBye 메시지를 생성하여 멀티캐스트 채널 포트(239:255:255:250:1900)로 전송하고 WS-Discovery 모듈(324)은 WS-Discovery:Bye 메시지를 생성하여 멀티캐스트 채널 포트(239:255:255:250:3702)로 전송(S714)한다. 이 때에도 어플리케이션의 결정에 따라 UPnP SSDP:ByeBye 메시지 및 WS-Discovery:Bye 메시지를 모두 생성하여 전송하거나, 두 메시지 중 하나만 생성하여 전송할 수 있다.The CD issues a Bye command through the discovery interface module 321 before leaving the network (S720). The discovery implementation module provides the information of the CD required to generate the Bye message to the UPnP SSDP module 323 and the WS-Discovery module 324 (S722). The UPnP SSDP module 323 generates a UPnP SSDP: ByeBye message and sends it to the multicast channel port (239: 255: 255: 250: 1900), and the WS-Discovery module 324 generates a WS-Discovery: Bye message. A multicast channel port 239: 255: 255: 250: 3702 is transmitted (S714). Even at this time, Both UPnP SSDP: ByeBye message and WS-Discovery: Bye message can be generated and transmitted, or only one of the two messages can be generated and transmitted.

CD가 CP로부터 멀티캐스트된 탐색 메시지를 수신(S730)하면 수신 포트에 따라 해당 모듈이 탐색 메시지를 처리하여 필요한 정보를 디스커버리 구현 모듈(322)에 제공(S732)한다. 즉, 멀티캐스트 포트:1900으로 수신된 메시지는 UPnP SSDP 모듈(324)이 처리하고, 멀티캐스트 포트:3702로 수신된 메시지는 WS-Discovery 모듈 (324)이 처리한다. 디스커버리 구현 모듈(322)은 탐색 메시지로부터 획득된 정보를 디스커버리 인터페이스 모듈(321)을 통하여 어플리케이션에 전달하고 어플리케이션으로부터 제공받은 CD 정보를 기반으로 응답 메시지 생성에 필요한 정보를 UPnP SSDP 모듈(323) 또는 WS-Discovery 모듈(324)에 제공(S736)한다. UPnP SSDP 모듈(323) 및 WS-Discovery 모듈(324)은 탐색 메시지에 대응하는 응답 메시지를 생성하여 탐색 메시지를 전송한 CP에 전송(S738)한다.When the CD receives the multicast discovery message from the CP (S730), the corresponding module processes the discovery message according to the reception port and provides necessary information to the discovery implementation module 322 (S732). That is, the message received at the multicast port: 1900 is processed by the UPnP SSDP module 324, and the message received at the multicast port: 3702 is processed by the WS-Discovery module 324. The discovery implementation module 322 transfers the information obtained from the discovery message to the application through the discovery interface module 321 and transmits information necessary for generating a response message based on the CD information provided from the application to the UPnP SSDP module 323 or the WS. -Provided to the discovery module 324 (S736). The UPnP SSDP module 323 and the WS-Discovery module 324 generate a response message corresponding to the discovery message and transmit the generated discovery message to the CP that has transmitted the discovery message (S738).

도 8은 본 발명의 실시예에 따른 디스커버리 단계를 CP의 측면에서 보여주는 흐름도이다.8 is a flowchart illustrating a discovery step in terms of a CP according to an embodiment of the present invention.

디스커버리 단계에서 CP는 CD로부터 Alive/Hello 메시지 또는 Bye 메시지를 수신하고, 네트워크에 참여할 경우 Search/Probe, Resolution 메시지를 멀티캐스트하여 관심있는 CD를 탐색한다.In the discovery phase, the CP receives an Alive / Hello message or a Bye message from the CD, and searches for a CD of interest by multicasting a Search / Probe and Resolution message when participating in the network.

CD로부터 Alive/Hello 메시지 또는 Bye 메시지를 수신(S805)하면, 수신 포트에 따라 해당 모듈이 메시지를 처리하여 필요한 정보를 디스커버리 구현 모듈(322)에 제공(S815)한다. 디스커버리 구현 모듈(322)은 CD에 관한 정보를 디스커버리 인터페이스 모듈(321)을 통하여 어플리케이션에 제공(S820)한다.When the Alive / Hello message or the Bye message is received from the CD (S805), the module processes the message according to the receiving port and provides necessary information to the discovery implementation module 322 (S815). The discovery implementation module 322 provides information about the CD to the application through the discovery interface module 321 (S820).

CP가 네트워크에 새롭게 추가되는 경우 고유한 네트워크 주소를 할당받은 CP는 디스커버리 인터페이스 모듈(321)을 통하여 탐색 명령을 내린다(S825). 디스커버리 구현 모듈(322)은 디스커버리 인터페이스 모듈(321)을 통하여 제공받은 정보를 UPnP SSDP 모듈(323) 및 WS-Discovery 모듈(324)에 제공(S830)한다. UPnP SSDP 모듈(323)은 UPnP SSDP:Search 메시지를 생성하여 멀티캐스트 채널 포트 (239:255:255:250:1900)로 전송하고 WS-Discovery 모듈(324)은 WS-Discovery:Probe/Resolution 메시지를 생성하여 멀티캐스트 채널 포트(239:255:255:250:3702)로 전송(S835)한다. 이 때 어플리케이션의 결정에 따라 UPnP SSDP:Search 메시지 및 WS-Discovery:Probe/Resolution 메시지를 모두 생성하여 전송하거나, 두 메시지중 하나의 메시지만 생성하여 전송할 수 있다. WS-Discovery:Probe 메시지는 유형에 따라 서비스를 탐색하는 경우 사용되고, WS-Discovery:Resolution 메시지는 서비스 명으로 서비스를 탐색하는 경우 사용된다.When the CP is newly added to the network, the CP assigned the unique network address issues a search command through the discovery interface module 321 (S825). The discovery implementation module 322 provides the information provided through the discovery interface module 321 to the UPnP SSDP module 323 and the WS-Discovery module 324 (S830). The UPnP SSDP module 323 generates a UPnP SSDP: Search message and sends it to the multicast channel port (239: 255: 255: 250: 1900), and the WS-Discovery module 324 sends a WS-Discovery: Probe / Resolution message. It generates and transmits to the multicast channel ports 239: 255: 255: 250: 3702 (S835). At this time, both the UPnP SSDP: Search message and the WS-Discovery: Probe / Resolution message can be generated and transmitted, or only one of the two messages can be generated and transmitted according to the application's decision. The WS-Discovery: Probe message is used when searching for a service by type, and the WS-Discovery: Resolution message is used when searching for a service by service name.

탐색 메시지에 대한 응답 메시지는 CP가 탐색 메시지를 전송한 소켓으로 수신되므로 소켓에 따라 응답 메시지가 UPnP 메시지인지 웹 서비스 메시지인지 구별될 수 있다. 한편, 상술한 바와 같이 응답 메시지의 헤더 정보, 또는 응답 메시지의 포맷으로 구별될 수도 있다.Since the response message to the discovery message is received by the socket to which the CP transmits the discovery message, the response message may be distinguished whether the response message is a UPnP message or a web service message. On the other hand, as described above may be distinguished by the header information of the response message, or the format of the response message.

디스커버리 구현 모듈(322)은 탐색된 CD에 관한 정보를 디스커버리 인터페이스 모듈(321)을 통하여 어플리케이션에 제공(S850)한다.The discovery implementation module 322 provides information about the found CD to the application through the discovery interface module 321 (S850).

도 9는 본 발명의 실시예에 따른 디스크립션 단계를 CD의 측면에서 보여주는 흐름도이다.9 is a flow chart illustrating a description step in terms of a CD according to an embodiment of the invention.

디스크립션 단계는 CD가 CP의 요청에 의해 서비스에 대한 상세 정보를 제공하는 단계라 할 수 있다. 서비스 디바이스의 어플리케이션 개발자는 서비스에 대한 정보를 디스크립션 인터페이스 모듈(331)을 통해 디스크립션 구현 모듈(332)에 전달하거나 디스크립션 구현 모듈(332)에 레퍼런스한다. The description step may be referred to as a step in which the CD provides detailed information about a service at the request of a CP. The application developer of the service device transmits information about a service to the description implementation module 332 through the description interface module 331 or references the description implementation module 332.

CP는 HTTP 프로토콜을 이용하여 디스커버리 단계에서 획득한 디바이스/서비 스 템플릿의 위치정보 또는 WSDL 문서의 위치정보로 해당 문서를 요청한다. 서비스가 CP로부터 디스크립션 요청을 받게되면(S910) 디스크립션 빌더 모듈(335)은 요청 메시지를 수신하는 디스크립션 문서의 URL에 따라 디스크립션 구현 모듈(332)내의 정보를 이용하여 동적으로 디바이스/서비스 템플릿 또는 WSDL 문서를 스트리밍으로 전송(S920)한다. 다른 실시예에서는 디스크립션 빌더 모듈(332)이 파일 형태로 저장되어 있는 디바이스/서비스 템플릿 또는 WSDL 문서를 CP의 요청에 따라 전송할 수 있다. The CP requests the document by using the HTTP protocol using the location information of the device / service template acquired in the discovery step or the location information of the WSDL document. When the service receives a description request from the CP (S910), the description builder module 335 dynamically uses the information in the description implementation module 332 according to the URL of the description document that receives the request message to dynamically determine the device / service template or WSDL document. To transmit in streaming (S920). In another embodiment, the description builder module 332 may transmit a device / service template or WSDL document stored in a file form according to a request of the CP.

도 10은 본 발명의 실시예에 따른 디스크립션 단계를 CP의 측면에서 보여주는 흐름도이다.10 is a flowchart illustrating a description step in terms of a CP according to an embodiment of the present invention.

CP는 디스커버리 단계에서 디스크립션 문서의 위치 정보를 획득하여 CD에 디스크립션 관련 문서를 요청하게 된다. 즉, CP가 디스크립션 인터페이스 모듈(331)을 통하여 디스크립션 요청 명령을 내리면(S1010) 디스크립션 구현 모듈(332)이 디스커버리 단계에서 획득한 CD 정보에 포함되어 있는 프로토콜 형식에 따라 UPnP 모듈(333) 또는 WSDL 모듈(334)에 디스크립션 문서의 위치 정보 등을 제공(S1020)하여 디스크립션 문서를 요청하는 메시지를 생성하여 전송(S1030)하게 한다. 디스크립션 문서를 수신하면 디스크립션 빌더 모듈(335)이 문서를 분석하여 UPnP 모듈(333) 또는 WSDL 모듈(334)에 제공(S1040)한다. UPnP 모듈(333) 또는 WSDL 모듈(334)의 선택은 CP가 디스커버리 단계에서 획득한 정보 또는 디스크립션 문서의 포맷을 통하여 결정할 수 있다. UPnP 모듈(333) 또는 WSDL 모듈(334)은 수신한 문서를 처리하여 디스크립션 구현 모듈(332)에 제공(S1050)하고 디스크립션 구현 모듈 (332)은 CD에 관한 정보를 분석하여 디스크립션 인터페이스 모듈(331)을 통해 어플리케이션 레이어에 전달(S1060)한다.The CP acquires the location information of the description document in the discovery step and requests the description related document from the CD. That is, when the CP issues a description request command through the description interface module 331 (S1010), the description implementation module 332 according to the protocol format included in the CD information acquired in the discovery step may be used for the UPnP module 333 or the WSDL module. In operation 334, the location information of the description document and the like are provided (S1020) to generate and transmit a message requesting the description document (S1030). When the description document is received, the description builder module 335 analyzes the document and provides the document to the UPnP module 333 or the WSDL module 334 (S1040). Selection of the UPnP module 333 or the WSDL module 334 may be determined through the format of the information or description document acquired by the CP in the discovery step. The UPnP module 333 or the WSDL module 334 processes the received document and provides the received document to the description implementation module 332 (S1050). The description implementation module 332 analyzes information about the CD to describe the description interface module 331. Transfer to the application layer through (S1060).

도 11은 본 발명의 실시예에 따른 이벤팅 단계를 CD의 측면에서 보여주는 흐름도이다.11 is a flow chart showing the eventing step in terms of a CD according to an embodiment of the invention.

이벤팅 단계에서는 CP가 관심 있는 서비스에 등록(Subscribe)을 요청하면 서비스는 CP를 등록 리스트(Subscription List)에 등록하여 관리하게된다. 이후 서비스는 자신의 상태에 변화가 일어나면 등록된 CP들에게 이벤트 메시지를 보내 상태 변화를 알려준다. CP는 등록 요청을 할 때 등록 요청의 유효시간 정보를 같이 보낸다. 즉 CP 등록의 유효시간이 경과하면 서비스는 해당 CP에 더 이상 이벤트 메시지를 전송하지 않는다. 따라서 CP가 이벤트 메시지를 계속 받기를 원하면 등록 갱신(Renew) 메시지를 전송하여 유효시간을 수정한다. 한편, CP가 더 이상 서비스로부터 이벤트 메시지를 받기를 원하지 않을 경우 등록 제거(Unscribe) 메시지를 전송할 수 있다. 본 발명의 실시예에 따른 미들웨어 장치는 UPnP를 위한 이벤팅 리스트와 웹 서비스를 위한 이벤팅 리스트를 별도로 관리한다.In the event of an event, when a CP requests subscription to a service of interest, the service registers and manages the CP in a subscription list. After that, the service sends an event message to the registered CPs when the state changes, and notifies the state change. When the CP makes a registration request, the CP sends the valid time information of the registration request. That is, when the valid time of CP registration elapses, the service no longer transmits an event message to the CP. Therefore, if the CP wants to continue receiving the event message, it revises the validity time by sending a registration renewal message. Meanwhile, when the CP no longer wants to receive an event message from the service, the CP may transmit an unregister message. The middleware device according to the embodiment of the present invention separately manages an event list for UPnP and an event list for web services.

서비스는 CP로부터 이벤트 관련 메시지, 즉 등록 메시지, 등록 갱신 메시지, 등록 제거 메시지를 수신(S1110)하면, 인터프리터 모듈(355)은 이벤트 관련 메시지가 수신된 이벤팅 URL 또는 이벤트 관련 메시지의 포맷을 통하여 수신된 메시지가 UPnP-GENA 메시지인지 WS-Eventing 메시지인지 분별하여 해당 모듈에 전달(S1120)한다. UPnP-GENA 모듈(353) 또는 WS-Eventing 모듈(354)이 메시지를 파싱하여 필요한 정보를 이벤팅 구현 모듈(352)에 제공(S1130)한다. 이벤팅 구현 모듈(352)은 필 요 정보를 분석한 후 이벤팅 인터페이스 모듈(351)을 통하여 이벤팅 관련 메시지를 보낸 CP에 관한 정보를 어플리케이션 레이어로 전달하고, 관리하고 있는 CP 관련 정보를 수정(S1140)한다. 서비스의 상태가 변하면 UPnP-GENA 모듈(353) 또는 WS-Eventing 모듈(354)은 별도로 관리되는 이벤팅 리스트에 등록된 CP에 이벤트 메시지를 생성하여 전송(S1150)한다.When the service receives an event related message, that is, a registration message, a registration update message, and a registration removal message from the CP (S1110), the interpreter module 355 receives the event related message through a format of an event URL or an event related message. The classified message is classified as a UPnP-GENA message or a WS-Eventing message and transferred to the corresponding module (S1120). The UPnP-GENA module 353 or the WS-Eventing module 354 parses the message and provides necessary information to the eventing implementation module 352 (S1130). Eventing implementation module 352 analyzes the necessary information, and delivers the information about the CP that sent the event-related message through the eventing interface module 351 to the application layer, and corrects the CP-related information managed ( S1140). When the state of the service changes, the UPnP-GENA module 353 or the WS-Eventing module 354 generates and transmits an event message to a CP registered in a separately managed event list (S1150).

도 12는 본 발명의 실시예에 따른 이벤팅 단계를 CP의 측면에서 보여주는 흐름도이다.12 is a flowchart illustrating an eventing step in terms of a CP according to an embodiment of the present invention.

CP는 이벤팅 인터페이스 모듈(351)을 통해 관심있는 서비스에 등록 또는 등록 갱신 요청을 하거나, 등록 제거 요청을 한다(S1210). 이벤팅 구현 모듈(352)은 이벤팅 인터페이스 모듈(351)을 통해 등록, 등록 갱신, 등록 제거 요청과 해당 서비스에 관한 정보를 제공받고 해당 서비스에 관한 정보를 기반으로 해당 모듈, 즉 UPnP-GENA 모듈(353) 또는 WS-Eventing 모듈(354)에 이벤팅 관련 요청 및 서비스에 관한 정보를 전달(S1220)한다. UPnP-GENA 모듈(353) 또는 WS-Eventing 모듈(354)은 등록 요청, 등록 갱신 요청, 등록 제거 요청 메시지를 생성하여 전송(S1230)한다.The CP makes a request for registration or registration update or a registration removal request to the service of interest through the event interface module 351 (S1210). Eventing implementation module 352 receives the registration, registration update, registration removal request and the information about the service through the event interface module 351, the corresponding module, that is, UPnP-GENA module based on the information about the service In operation S1220, information about an event and a request related to events may be transmitted to the WS-Eventing module 354. The UPnP-GENA module 353 or the WS-Eventing module 354 generates and transmits a registration request, registration update request, and registration removal request message (S1230).

서비스로부터 서비스의 상태에 관한 이벤트 메시지를 수신하면(S1240), 인터프리터 모듈(355)이 수신한 메시지가 UPnP-GENA 메시지인지 WS-Eventing 메시지인지 분별하여 해당 모듈에 전달(S1250)한다. 수신된 메시지가 UPnP-GENA 메시지인지 WS-Eventing 메시지인지는 CP가 이벤팅 등록시 이미 알고 있거나 수신된 이벤트 메시지의 포맷으로 구분될 수 있다. UPnP-GENA 모듈(353) 또는 WS-Eventing 모듈(354)이 메시지를 파싱하여 필요한 정보를 이벤팅 구현 모듈(352)에 제공(S1260)한 다. 이벤팅 구현 모듈(352)은 필요 정보를 분석한 후 이벤팅 인터페이스 모듈(351)을 통하여 이벤팅 메시지를 보낸 서비스의 상태에 관한 정보를 어플리케이션 레이어로 전달(S1270)한다.When receiving an event message regarding the status of the service from the service (S1240), the interpreter module 355 determines whether the received message is a UPnP-GENA message or a WS-Eventing message and delivers it to the corresponding module (S1250). Whether the received message is a UPnP-GENA message or a WS-Eventing message may be divided into the format of the event message that the CP already knows or receives at the event registration. The UPnP-GENA module 353 or the WS-Eventing module 354 parses the message and provides necessary information to the eventing implementation module 352 (S1260). Eventing implementation module 352 analyzes the necessary information and delivers the information on the status of the service that sent the event through the eventing interface module 351 to the application layer (S1270).

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. Although embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features thereof. I can understand that. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.

상기한 바와 같은 본 발명의 통합 미들웨어 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다. According to the integrated middleware device and method of the present invention as described above has one or more of the following effects.

통합 미들웨어 장치 및 방법을 제공함으로써 디바이스를 위한 어플리케이션 개발자가 하부 레이어에서 사용되는 프로토콜에 독립적으로 서비스를 구현할 수 있다는 장점이 있다.By providing an integrated middleware device and method, an application developer for a device can implement a service independently of a protocol used in a lower layer.

Claims (15)

소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 어드레싱 모듈;An addressing module for assigning a unique network address within a given network; 상기 네트워크에 다른 디바이스가 참여 또는 탈퇴할 경우 상기 할당된 네트워크 주소를 통해 상기 디바이스에 관한 정보를 수신하고, 상기 수신된 정보의 포트에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 정보를 해독하는 디스커버리 모듈; 및Receiving information about the device through the assigned network address when another device joins or leaves the network, and uses the at least one of a plurality of distributed computing protocols according to the port of the received information. A discovery module for decrypting; And 상기 해독된 정보를 기초로 상기 디바이스에 서비스를 요청하는 제어 모듈을 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Integrated middleware device supporting a plurality of protocols for distributed computing including a control module for requesting a service from the device based on the decrypted information 제 1항에 있어서,The method of claim 1, 상기 디스커버리 모듈에 의해 해독된 정보를 기초로 상기 디바이스에 관한 상세정보를 요청하고, 상기 상세정보를 수신하고, 상기 디스커버리 모듈에 의해 해독된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 상세정보를 해독하는 디스크립션 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Request detailed information about the device based on the information decrypted by the discovery module, receive the detailed information, and use at least one of a plurality of distributed computing protocols according to the information decrypted by the discovery module Middleware device supporting a plurality of protocols for distributed computing further comprising a description module for decoding the detailed information 제 1항에 있어서,The method of claim 1, 상기 디스커버리 모듈에 의해 해독된 정보를 기초로 상기 디바이스에 관한 상세정보를 요청하고, 상기 상세정보를 수신하고, 상기 수신된 상세정보에 포함된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 상세정보를 해독하는 디스크립션 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Request detailed information about the device based on the information decrypted by the discovery module, receive the detailed information, and determine at least one protocol among a plurality of distributed computing protocols according to the information included in the received detailed information. Integrated middleware device supporting a plurality of protocols for distributed computing further comprising a description module for decoding the detailed information using 제 2항 또는 제 3항에 있어서,The method of claim 2 or 3, 상기 디스크립션 모듈에 의해 해독된 정보를 기초로 상기 디바이스의 상태변화에 관한 정보를 요청하고, 상기 상태변화에 관한 정보를 수신하고, 상기 디스크립션 모듈에 의해 해독된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 상태변화에 관한 정보를 해독하는 이벤팅 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Request information about a state change of the device based on the information decrypted by the description module, receive information about the state change, and at least one of a plurality of distributed computing protocols in accordance with the information decrypted by the description module. Integrated middleware device supporting a plurality of protocols for distributed computing further comprising an eventing module for decoding the information on the state change using a single protocol 제 2항 또는 제 3항에 있어서,The method of claim 2 or 3, 상기 디스크립션 모듈에 의해 해독된 정보를 기초로 상기 디바이스의 상태변화에 관한 정보를 요청하고, 상기 상태변화에 관한 정보를 수신하고, 상기 수신된 상태변화에 관한 정보에 포함된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 상태변화에 관한 정보를 해독하는 이벤팅 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Request information about a state change of the device based on the information decoded by the description module, receive information about the state change, and distribute a plurality of distributions according to information included in the received information about the state change Integrated middleware device supporting a plurality of protocols for distributed computing further comprising an eventing module for decoding the information on the state change using at least one of the computing protocols 제 1항에 있어서,The method of claim 1, 상기 디스커버리 모듈은The discovery module 상기 네트워크에 참여한 상기 다른 디바이스를 탐색하는 메시지를, 제공가능한 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 전송하고, 상기 탐색 메시지에 대한 응답 메시지를 수신하고, 상기 응답 메시지의 소켓에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 응답 메시지를 해독하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Send a message for discovering the other device participating in the network using at least one of a plurality of distributed computing protocols available, receive a response message for the discovery message, and distribute a plurality of distributions according to a socket of the response message Integrated middleware device that supports multiple protocols for distributed computing that decrypts the response message using at least one of the computing protocols 제 1항에 있어서,The method of claim 1, 상기 디스커버리 모듈은The discovery module 상기 네트워크에 참여한 상기 다른 디바이스를 탐색하는 메시지를, 제공가능한 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 전송하고, 상기 탐색 메시지에 대한 응답 메시지를 수신하고, 상기 응답 메시지에 포함된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 응답 메시지를 해독하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Send a message for discovering the other device participating in the network using at least one of a plurality of distributed computing protocols available, receive a response message to the discovery message, and according to the information contained in the response message An integrated middleware device that supports multiple protocols for distributed computing that decrypts the response message using at least one of the distributed computing protocols of 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 어드레싱 모듈;An addressing module for assigning a unique network address within a given network; 상기 네트워크에 참여 또는 탈퇴할 경우 상기 할당된 상기 네트워크 주소를 통해 자신의 정보를, 제공가능한 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 상기 네트워크내의 다른 디바이스에게 알리는 디스커버리 모듈; 및A discovery module for informing the other device in the network by using at least one of a plurality of distributed computing protocols that can be provided when the user joins or leaves the network; And 상기 디바이스로부터 상기 정보에 기초한 서비스 요청을 수신하고 상기 서비스 요청에 따른 서비스 수행 결과를 상기 디바이스에 전송하는 제어 모듈을 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치An integrated middleware device supporting a plurality of protocols for distributed computing, including a control module for receiving a service request based on the information from the device and transmitting a service performance result according to the service request to the device. 제 8항에 있어서,The method of claim 8, 상기 디바이스로부터 상기 정보에 기초한 상세정보를 요청받고, 상기 요청의 URL에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 상세정보를 전송하는 디스크립션 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치And a description module for receiving detailed information based on the information from the device and transmitting the detailed information using at least one of a plurality of distributed computing protocols according to the URL of the request. Integrated middleware devices that support the protocol 제 9항에 있어서,The method of claim 9, 상기 디바이스로부터 상기 상세정보에 기초한 상태변화에 관한 정보를 요청받고, 상기 요청의 URL에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 요청을 해독하고, 상기 해독된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 상기 요청한 디바이스에 상기 상태변화에 관한 정보를 전송하는 이벤팅 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Receiving information about a state change based on the detailed information from the device, decrypting the request using at least one of a plurality of distributed computing protocols according to the URL of the request, and generating a plurality of information according to the decrypted information. Integrated middleware device supporting a plurality of protocols for distributed computing further comprising an eventing module for transmitting the information on the state change to the requesting device using at least one of the distributed computing protocols 제 9항에 있어서,The method of claim 9, 상기 디바이스로부터 상기 상세정보에 기초한 상태변화에 관한 정보를 요청 받고, 상기 요청의 포맷에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 요청을 해독하고, 상기 해독된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 상기 요청한 디바이스에 상기 상태변화에 관한 정보를 전송하는 이벤팅 모듈을 더 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Receiving information about a state change based on the detailed information from the device, decrypting the request using at least one of a plurality of distributed computing protocols according to a format of the request, and generating a plurality of information according to the decrypted information. Integrated middleware device supporting a plurality of protocols for distributed computing further comprising an eventing module for transmitting the information on the state change to the requesting device using at least one of the distributed computing protocols 제 8항에 있어서,The method of claim 8, 상기 디스커버리 모듈은The discovery module 상기 디바이스로부터 자신을 탐색하는 메시지를 수신하고, 상기 수신된 탐색 메시지의 포트에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 탐색 메시지를 해독하고, 상기 해독된 정보에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 디바이스에 자신의 정보를 전송하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 통합 미들웨어 장치Receive a message searching for itself from the device, decrypt the discovery message using at least one of a plurality of distributed computing protocols according to a port of the received discovery message, and distribute a plurality of distributed according to the decrypted information Integrated middleware device that supports multiple protocols for distributed computing that transmits its information to the device using at least one of the computing protocols 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 단계;Assigning a unique network address within a given network; 상기 네트워크에 다른 디바이스가 참여 또는 탈퇴할 경우 상기 할당된 네트워크 주소를 통해 상기 디바이스에 관한 정보를 수신하고, 상기 수신된 정보의 포트에 따라 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나의 프로토콜을 이용하여 상기 정보를 해독하는 단계; 및Receiving information about the device through the assigned network address when another device joins or leaves the network, and uses the at least one of a plurality of distributed computing protocols according to the port of the received information. Decrypting; And 상기 해독된 정보를 기초로 상기 디바이스에 서비스를 요청하는 단계를 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 방법Requesting a service from the device based on the decrypted information; and supporting a plurality of protocols for distributed computing. 소정의 네트워크내에서 고유한 네트워크 주소를 할당하는 단계;Assigning a unique network address within a given network; 상기 네트워크에 참여 또는 탈퇴할 경우 상기 할당된 상기 네트워크 주소를 통해 자신의 정보를, 제공가능한 다수의 분산 컴퓨팅 프로토콜 중 적어도 하나를 이용하여 상기 네트워크내의 다른 디바이스에게 알리는 단계; 및Informing the other device in the network by using at least one of a plurality of distributed computing protocols that can be provided when the user joins or leaves the network through the assigned network address; And 상기 디바이스로부터 상기 정보에 기초한 서비스 요청을 수신하고 상기 서비스 요청에 따른 서비스 수행 결과를 상기 디바이스에 전송하는단계를 포함하는 분산 컴퓨팅을 위한 다수의 프로토콜을 지원하는 방법Receiving a service request based on the information from the device and transmitting a service performance result according to the service request to the device. 제 13항 및 제 14항 중 어느 하나의 항에 따른 방법을 수행하기 위한 프로그램을 기록한 기록매체Record carrier recording a program for performing the method according to any one of claims 13 and 14
KR1020040069550A 2004-09-01 2004-09-01 Apparatus and method for integrated middleware supporting multiple protocols for distributed computing KR100664921B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040069550A KR100664921B1 (en) 2004-09-01 2004-09-01 Apparatus and method for integrated middleware supporting multiple protocols for distributed computing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040069550A KR100664921B1 (en) 2004-09-01 2004-09-01 Apparatus and method for integrated middleware supporting multiple protocols for distributed computing

Publications (2)

Publication Number Publication Date
KR20060020851A KR20060020851A (en) 2006-03-07
KR100664921B1 true KR100664921B1 (en) 2007-01-04

Family

ID=37127860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040069550A KR100664921B1 (en) 2004-09-01 2004-09-01 Apparatus and method for integrated middleware supporting multiple protocols for distributed computing

Country Status (1)

Country Link
KR (1) KR100664921B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8141947B2 (en) * 2007-07-12 2012-03-27 Lear Corporation Haptic seating system
KR101707633B1 (en) * 2015-03-20 2017-02-17 주식회사 뉴론웍스 Method of data enterchange between standrd/non-standard application protocol and Middleware with dynamic control from user-defined condition

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751635A (en) 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
JPH0851468A (en) * 1994-06-30 1996-02-20 At & T Corp Interface for programming application for distributed processing in network
KR20040031899A (en) * 2002-10-07 2004-04-14 (주)싱크블루테크놀로지 WebSynergy , Web Services Integration Platform as EAI solution with MOM and Web Services technologies
KR20040045619A (en) * 2002-11-25 2004-06-02 한국전자통신연구원 Architecture of look-up service in jini-based home network supporting ieee 1394 and tcp/ip and method thereof
KR20050081548A (en) * 2004-02-14 2005-08-19 엘지전자 주식회사 Device dynamic controlling method and system for distributed network based to universal plug and play

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751635A (en) 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
JPH0851468A (en) * 1994-06-30 1996-02-20 At & T Corp Interface for programming application for distributed processing in network
KR20040031899A (en) * 2002-10-07 2004-04-14 (주)싱크블루테크놀로지 WebSynergy , Web Services Integration Platform as EAI solution with MOM and Web Services technologies
KR20040045619A (en) * 2002-11-25 2004-06-02 한국전자통신연구원 Architecture of look-up service in jini-based home network supporting ieee 1394 and tcp/ip and method thereof
KR20050081548A (en) * 2004-02-14 2005-08-19 엘지전자 주식회사 Device dynamic controlling method and system for distributed network based to universal plug and play

Also Published As

Publication number Publication date
KR20060020851A (en) 2006-03-07

Similar Documents

Publication Publication Date Title
JP4374026B2 (en) Middleware apparatus and method for supporting compatibility between devices in home network
US7774477B2 (en) Peer networking host framework and hosting API
US10382543B2 (en) System and device for enabling any network functionality client or server in a HTML5 application
JP4154364B2 (en) Notification method
JP4041118B2 (en) Gateway device, network system, communication program, and communication method
US7827275B2 (en) Method and system for remotely accessing devices in a network
JP4421517B2 (en) Information processing server, remote operation system, and remote operation method
US20040120344A1 (en) Device discovery application interface
FI124694B (en) Improved rendering system
JP2005501477A (en) Method for bridging a UPnP network and a HAVi network
US20040133896A1 (en) Network device application interface
US20040133678A1 (en) Data processing system, information processing apparatus and method, and computer program
CN101656645A (en) Method, equipment and system for communication between external equipment and internal equipment of home network
US7962598B2 (en) Concurrent IGRS-UPnP
JP2004320741A (en) Apparatus and method for connecting independent networks
KR100664921B1 (en) Apparatus and method for integrated middleware supporting multiple protocols for distributed computing
KR20120072115A (en) Apparatus and method for expanding upnp network area
WO2007071808A1 (en) Instant messaging
JP4900169B2 (en) Network system, relay device, and relay program
KR20050055134A (en) Apparatus, system and method for forwarding byebye message in place of cd using the upnp network management information
Hu et al. Multicast complement for efficient UPnP eventing in home computing network
KR100952280B1 (en) Protocol for remote controlled-rebooting of Residential Gateway
Razak Major service discovery technology: A hands-on analysis
KR101667049B1 (en) Method and apparatus for restricting the disclosure of network information in remote access service
Hu et al. UPnP Eventing with Multicast Support in Home Computing Network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee