Patent Publication Number: US-7583686-B2

Title: Notification method, connection apparatus, communication method, and program

Description:
TECHNICAL FIELD 
   The present invention relates to a notification method, a connection apparatus, a communication method in the connection apparatus, and a program. 
   BACKGROUND ART 
   In recent years, along with the prevalence of networks, not only personal computers but also various devices such as mobile phones, electronic devices, and the like can be connected to networks. Environments used by mutually linking electronic devices and the like extend not only to office use but also home use since home electric appliances and other electric appliances which are solely used so far are connected to networks. 
   Easy connections and easy settings of various devices to be connected to networks are required above all. 
   As one of network techniques that can meet such requirements, a technique called Universal Plug and Play (to be abbreviated as UPnP hereinafter) is available. The UPnP is characterized in that it can apply a plug and play function to devices connected to the network, no driver software or the like need be installed, and it does not depend on the types of OSs (operating systems) running on devices. 
   Using the UPnP, the device can automatically do all of functions: to enter a network and dynamically acquire an IP address, to notify the self functions, to acquire the presence and functions of another device, and so forth, and to allow true zero network settings. Furthermore, the devices can directly communicate with each other, and form a peer-to-peer network. 
   The detailed specification of the UPnP is described in Universal Plug and Play Device Architecture Version 1.0. 
   However, with the above prior art, the UPnP or the like which can dynamically acquire an IP address and can notify the self functions cannot discover and control, e.g., device across the Internet, i.e., it cannot use a device which does not belong to the same subnet. 
   DISCLOSURE OF INVENTION 
   Problems that the Invention is to Solve 
   The present invention has been made to solve the aforementioned problems, and has as its object to notify an apparatus, which is connected to a third network and is connected via a first network and a second network, that a device connected to the first network is available. 
   The present invention has been made to solve the aforementioned problems, and has as its object to allow an apparatus, which is connected to a third network and is connected via a first network and a second network, to transmit a message using destination information valid in the third network to a device connected to the first network. 
   Means of Solving the Problems 
   In order to achieve the above object, the first invention according to the present application is directed to a notification method, wherein a first connection apparatus is connected to a first network and a second network, and a second connection apparatus is connected to the second network and a third network, for notifying an apparatus connected to the third network of information regarding a device connected to the first network, the method comprising the first connection apparatus recognizing the device connected to the first network, and transmitting information regarding the recognized device to the second connection apparatus via the second network, and the second connection apparatus receiving the information transmitted from the first connection apparatus, and transmitting, based on the received information, a message indicating that the recognized device is available onto the third network. 
   In order to achieve the above object, the first invention according to the present application is directed to a notification method, wherein a first connection apparatus is connected to a first network and a second network, and a second connection apparatus is connected to the second network and a third network, for notifying a apparatus connected to the third network of destination information of a message to a device connected to the first network, the method comprising the first connection apparatus acquiring first destination information of a message to the device connected to the first network, and transmitting the acquired first destination information to the second connection apparatus via the second network, and the second network device receiving the first destination information transmitted from the first connection apparatus, generating second destination information of a message to the device by appending an identifier for the device to an identifier of the second connection apparatus, and transmitting a message including the generated second destination information onto the third network. 
   Effects of the Invention 
   As described above, according to the present invention, the user can discover and use a device which is not present on the self-network. 
   As a result, connection to various devices connected to the networks can be easily made. Furthermore, the use opportunity of devices can be increased. 
   Other features and advantages of the present invention will be apparent from the following description taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the figures thereof. 

   
     BRIEF DESCRIPTION OF DRAWINGS 
     The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. 
       FIG. 1  is a diagram showing the overall arrangement of a system; 
       FIG. 2  is a block diagram of a computer system; 
       FIG. 3  is a block diagram of an UPnP device proxy apparatus; 
       FIG. 4  is a block diagram showing the module arrangement of a parsing unit; 
       FIG. 5  is a conceptual view of a device management table; 
       FIG. 6  is a block diagram showing the module arrangement of a reproduction unit; 
       FIG. 7  is a conceptual view of a virtual device management table; 
       FIG. 8  is a block diagram showing the module arrangement of a device unit; 
       FIG. 9  shows the configuration of a connection request SOAP message; 
       FIG. 10  shows the configuration of a connection request SOAP response message; 
       FIG. 11  shows the configuration of a disconnection request SOAP message; 
       FIG. 12  shows the configuration of a remote device information SOAP message; 
       FIG. 13  is a conceptual view of an SCPD; 
       FIG. 14  shows the configuration of a device control information SOAP message; 
       FIG. 15  shows the configuration of an event subscription request SOAP message; 
       FIG. 16  shows the configuration of an event processing information SOAP message; 
       FIG. 17  is a diagram showing the arrangement of a system; 
       FIG. 18  is a block diagram showing the arrangement of an UPnP device proxy apparatus server module; 
       FIG. 19  is a conceptual view of a management table; 
       FIG. 20  is a conceptual view of a UPnP device proxy apparatus registration and connection window of a user PC; and 
       FIG. 21  shows the configuration of an UPnP device proxy apparatus registration SOAP message. 
   

   BEST MODE FOR CARRYING OUT THE INVENTION 
   Preferred embodiments of the present invention will be described hereinafter with reference to the accompanying drawings. In the preferred embodiments, a UPnP device proxy apparatus is provided, scans UPnP protocol messages, acquires device information (device description) and service information (service description) of a device, transfers these pieces of information to a UPnP device proxy apparatus which forms a pair, and reproduces a virtual PnP compatible device on the UPnP device proxy apparatus. 
   &lt;Overall Arrangement of System&gt; 
     FIG. 1  is a diagram showing the overall arrangement of a system according to an embodiment of the present invention. As shown in  FIG. 1 , a user PC  102  as a computer system such as a PC or the like is connected to an external network  100  such as the Internet or the like via an UPnP device proxy apparatus  101 . A different subnet is connected to the external network  100  via an UPnP device proxy apparatus  103 , and a printer  110 , a digital camera  111 , a scanner  112 , and a digital video camera  113  as UPnP compatible devices are connected to that network  120 . In this embodiment, the aforementioned devices are exemplified, but the present invention is not limited to these specific devices. 
   The UPnP device proxy apparatus  103  is a first connection apparatus, and the UPnP device proxy apparatus  101  is a second connection apparatus. The UPnP device proxy apparatus  103  is connected to the first network  120  and the second network  100 , and the UPnP device proxy apparatus  101  is connected to the second network  100  and a third network  105 . 
   This embodiment notifies the user PC  102  as an apparatus connected to the third network  105  of information regarding the devices  110 ,  111 ,  112 , and  113  connected to the first network  120 . That is, the UPnP device proxy apparatus  103 .recognizes devices connected to the first network  120 , and transmits information regarding the recognized devices to the UPnP device proxy apparatus  101  via the second network  100 . The UPnP device proxy apparatus  101  receives the information transmitted from the UPnP device proxy apparatus  103 , and transmits, based on the received information, a message indicating that the recognized devices are available onto the third network  105 . 
   This embodiment notifies the user PC  102  as an apparatus connected to the third network  105  of destination information (URL) of a message to a device (e.g., the printer  110 ) connected to the first network  120 . That is, the UPnP device proxy apparatus  103  acquires first destination information (URL) of a message to the printer  110  connected to the first network  120 , and transmits the acquired first destination information (URL) to the UPnP device proxy apparatus  101  via the second network  100 . The UPnP device proxy apparatus  101  receives the first destination information (URL) transmitted from the UPnP device proxy apparatus  103 , generates second destination information (URL) of a message to the printer  110  by appending an identifier (port number) for the printer  110  to an identifier (IP address) of the UPnP device proxy apparatus  101 , and transmits a message including the generated second destination information (URL) onto the third network. 
   Furthermore, upon reception of a first transmission message having the second destination information (URL) as an address from the user PC  102 , the UPnP device proxy apparatus  101  transmits a second transmission message which includes the first destination information (URL) corresponding to the identifier (port number) included in the second destination information (URL) and the contents of the first transmission message to the UPnP device proxy apparatus  103 . The UPnP device proxy apparatus  103  receives the second transmission message transmitted from the UPnP device proxy apparatus  101 , and transmits a third transmission message including the contents of the first transmission message to have the first destination information as an address. 
   The user PC  102  in  FIG. 1  is so-called a computer having various functions that allow the user to use devices across the Internet  100 , to browse resources, and so forth, and is a computer system which comprises a CPU, ROM, RAM, HDD, and the like. 
   This embodiment will explain a case wherein only one computer system is connected for the sake of simplicity. However, the present invention can be similarly applied to a case wherein a plurality of user PCs  102  are present in a single segment. 
   Furthermore, the network  105  on the user PC  102  side and the network  103  on the UPnP compatible device side have one-to-one correspondence. This mode is adopted for the sake of convenience to simplify the embodiments. However, the present invention can be similarly applied to a 1-to-n or n-to-n configuration. 
   &lt;Computer System Block Diagram&gt; 
     FIG. 2  is a block diagram showing the arrangement of a computer system of the user PC  102  exemplifying one embodiment of the present invention. 
   Reference numeral  201  in  FIG. 2  denotes a central processing unit (to be abbreviated as a CPU hereinafter) which controls an information processing apparatus. 
   Reference numeral  202  denotes a random access memory (to be abbreviated as a RAM hereinafter), which serves as a main memory of the CPU  201 , and as an area for execution programs, and an execution area and data area of these programs. 
   Reference numeral  203  denotes a read-only memory (to be abbreviated as a ROM hereinafter) which stores the operation processing sequence of the CPU  201 . The ROM  203  includes a program ROM that records an Operating System (to be abbreviated as an OS hereinafter) as a system program for making device control of the information processing apparatus, and a data ROM that records information required to operate the system and the like. An HDD  209  (to be described later) may often be used in place of the ROM  203 . 
   Reference numeral  204  denotes a network interface (NETIF) which controls data transfer between information processing apparatuses via a network, and diagnoses the connection status. 
   Reference numeral  205  denotes a video RAM (VRAM), which maps an image to be displayed on the screen of a CRT  206  (to be described later) indicating the operating state of the information processing apparatus and controls its display. Reference numeral  206  denotes a display device which comprises a display or the like. The display device  206  will be abbreviated as a CRT hereinafter. 
   Reference numeral  207  denotes a controller which controls an input signal from an external input device  208  (to be described below). Reference numeral  208  denotes an external input device which accepts operations made for the information processing apparatus by its user, and comprises, e.g., a keyboard and a pointing device such as a mouse or the like. The external input device  208  will be simply referred to as a KB hereinafter. 
   Reference numeral  209  denotes a hard disk drive (HDD) which is used to save application programs and data such as image information and the like. The application programs in this embodiment include software programs and the like which implement various processing components that form this embodiment. 
   Reference numeral  210  denotes an external input and output device such as a floppy® disk drive, CDROM drive, or the like, which inputs and outputs a removable disk and is used to read out application programs and the like from a medium. The external input and output device  210  will be simply referred to as an FDD hereinafter. Note that the FDD  210  may store the application programs and data stored in the HDD  209  when they are used. 
   Reference numeral  200  denotes an input and output bus (address bus, data bus, and control bus) which interconnects the aforementioned units. 
   &lt;Device Proxy Device Block Diagram&gt; 
     FIG. 3  is a block diagram showing the arrangement of the device proxy apparatus  101  exemplifying one embodiment of the present invention. The device proxy apparatus  101  includes a mode for implementing its functions using a computer system and a mode mounted as a dedicated device. The embodiment of the present invention can implement both the modes.  FIG. 3  will explain the arrangement of the device proxy apparatus  101 . However, the device proxy apparatus  103  also has the same arrangement. In the mode for implementing the device proxy apparatus  101  or  103  by the computer system, the system arrangement is common to that shown in  FIG. 2 , and  FIG. 3  shows the configuration of software modules. 
   The UPnP device proxy apparatus  101  comprises a control unit  300 , parsing unit  301 , reproduction unit  302 , and device unit  303 . 
   The control unit  300  has a function of controlling the parsing unit  301 , reproduction unit  302 , and device unit  303 . 
   The parsing unit  301  has a function of receiving and parsing UPnP protocol messages, a function of processing XML data, and a function of storing the IP address, control URL, event URL, and the like of a device. 
   The reproduction unit  302  has a function of generating a virtual device based on the device description and service description of a device. 
   The device unit  303  has a function that allows itself, i.e., the UPnP device proxy apparatus  101  to serve as an UPnP device, and a function that allows it to serve as a virtual device. In the example of  FIG. 1 , the reproduction unit  302  generates four device units  303  corresponding to four devices from the printer  110  to the digital video  113 . 
   &lt;Procedure of Overall System Processing&gt; 
   The procedure of the overall processing of the system according to the embodiment of the present invention will be described below using  FIG. 1 . 
   Assume that only the printer  110  is connected to the network  120  except for the UPnP device proxy apparatus  103 , and the user PC  102  uses the printer  110  via the network  100  such as the Internet or the like, for the sake of simplicity. In this case, the printer  110  is used as a representative device in a description. Instead, the processing of other UPnP. compatible devices such as the digital camera  111 , scanner  112 , digital video camera  113 , and the like except for functions unique to individual devices can be similarly implemented. 
   The user PC  102  discovers the UPnP device proxy apparatus  101 , and issues a connection request to the UPnP device proxy apparatus  103  to the UPnP device proxy apparatus  101 . 
   On the other hand, on the network  120 , Alive messages (messages each indicating that the self device is available on the network) of an SSDP (Simple Service Discovery Protocol, to be abbreviated as SSDP; the SSDP is a device discovery protocol specified by the UPnP) are broadcasted. The UPnP device proxy apparatus  101  always receives these messages, and internally holds the received messages (the device  101  recognizes the printer  110  based only on this message). 
   Upon reception of the connection request from the UPnP device proxy apparatus  101 , the UPnP device proxy apparatus  103  transmits an SSDP search message onto the network  120 , to which the self-device belongs, and waits for a response. Upon reception of the response, the UPnP device proxy apparatus  103  acquires information regarding an UPnP compatible device connected to the network  120 , to which the self-device belongs, from the response message. In this case, the UPnP device proxy apparatus  103  recognizes the printer  110 . 
   The UPnP device proxy apparatus  103  transmits the acquired device and service descriptions of the printer  110  and required information to the UPnP device proxy apparatus  101  as a SOAP message. 
   The UPnP device proxy apparatus  101  receives the transmitted information above, and generates a virtual printer  110 V having the UPnP functions. The virtual printer  110 V (i.e., the device unit  303  of the UPnP device proxy apparatus  101 ) transmits an SSDP Alive message onto the network  105 . 
   That is, the UPnP device proxy apparatus  103  as the first connection apparatus recognizes the device  110  connected to the first network  120 , and transmits information regarding the recognized device to the UPnP device proxy apparatus  101  as the second connection apparatus via the second network  100 . The UPnP device proxy apparatus  101  receives the information transmitted from the UPnP device proxy apparatus  103 , and transmits, based on the received information, a message (Alive message) indicating that the recognized device is available onto the third network  105 . 
   The user PC  102  receives the SSDP Alive message, and discovers the virtual printer  110 V. Alternatively, the user PC  102  transmits an SSDP search message onto the network  105 , and receives a response (a message indicating that a device having the recognized functions is available) from the UPnP device proxy apparatus  101 . 
   The user PC  102  opens a presentation page of the virtual printer  110 V using a browser or the like, and issues a print request. Alternatively, the user PC  102  issues a print request according to a control protocol specified by the UPnP using a dedicated application. 
   Upon reception of the print request, the virtual printer  110 V (i.e., the device unit  303  of the UPnP device proxy apparatus  101 ) transmits that print request to the UPnP device proxy apparatus  103 . 
   Upon reception of the print request, the UPnP device proxy apparatus  103  transmits that message to the printer  110 . The UPnP device proxy apparatus  103  receives a response to the above print request from the printer  110 , and transmits that message to the UPnP device proxy apparatus  101 . 
   Upon reception of the response to the above print request, the UPnP device proxy apparatus  101  transmits that message to the user PC  102 . 
   The user PC  102  issues a disconnection request to the UPnP device proxy apparatus  101 . 
   Embodiment 1 
   In embodiment 1, the procedures of the detailed processes of the respective processes of the above embodiment will be described below based on the above description. In the following description of embodiment 1, the overall system arrangement diagram, computer system block diagram, and UPnP device proxy apparatus block diagram are common to  FIGS. 1 to 3 . Message exchanges between the UPnP device proxy apparatuses use SOAP, which applies to all message exchanges between the UPnP device proxy apparatuses to be described hereinafter. 
   &lt;Module Arrangement and Function of Parsing Unit&gt; 
     FIG. 4  is a block diagram showing the module arrangement of the parsing unit  301  exemplifying one embodiment of the present invention. 
   The parsing unit  301  comprises a control module  400 , device discovery listener module  401 , HTTP client module  402 , XML processing module  403 , device management module  404 , and dispatch module  405 . 
   The control module  400  has a function of controlling the device discovery listener module  401 , HTTP client module  402 , XML processing module  403 , and device management module  404 , exchanging data with interfaces of respective modules, and so forth. 
   The device discovery listener module  401  has a function of receiving an SSDP message, device search request, and device announce. 
   The HTTP client module  402  has a function of acquiring a specific document via an HTTP (Hyper Text Transfer Protocol; to be abbreviated as an HTTP hereinafter). 
   The XML processing module  403  has a function of parsing XML data and a function of performing extraction, addition, change, deletion, and the like of elements. 
   The device management module  404  has a device management table  500  (to be described later) used to manage device information acquired from the device discovery listener module  401 , and has a function of making search, addition, change, and deletion of data with respect to that table. 
   The dispatch module  405  has an HTTP server function of receiving commands and messages transmitted from the device proxy apparatus  101  which forms a pair, a function of transmitting a device control command and event processing command to a real device, and a function of receiving an event message. 
   &lt;Device Management Table&gt; 
     FIG. 5  is a conceptual view of the device management table  500  held by the device management module  404  exemplifying one embodiment of the present invention. 
   The device management table  500  includes a UDN item  501 , DescURL item  502 , LifeTime item  503 , and LatestTime item  504 . The device management table  500  allows to make search, read/write, addition, and deletion of the respective items, and one item uniquely specifies other items. 
   The UDN item  501  is an identifier used to identify a device, and stores a UDN tag value of the device description. The DescURL item  502  stores the URL of the device description held by the device. 
   The LifeTime item  503  stores the value of an announce lifetime in an SSDP device announce, e.g., an HTTP header “CACHE-CONTROL:MAX-AGE” of an SSDP NOTIFY command. The LatestTime item  504  stores the latest time of issuance of an SSDP Alive message of each device. 
   &lt;Module Arrangement and Function of Reproduction Unit&gt; 
     FIG. 6  is a block diagram showing the module arrangement of the reproduction unit  302  exemplifying one embodiment of the present invention. 
   The reproduction unit  302  comprises a reproduction control module  600 , virtual device generation module  601 , HTTP server module  602 , XML processing module  603 , and virtual device management module  604 . 
   The reproduction control module  600  has a function of controlling the virtual device generation module  601 , HTTP server module  602 , XML processing module  603 , and virtual device management module  604 , exchanging data with interfaces of respective modules, and so forth. 
   The virtual device generation module  601  has a function of generating a virtual device on the basis of the device and service descriptions. 
   The HTTP server module  602  is a so-called HTTP server, and has a function of providing a document and the like in response to a request from a client. 
   The XML processing module  603  has the same function as that of the XML processing module  403 . 
   The virtual device management module  604  has a virtual device management table  700  (to be described later) used to store information regarding a real device, and has a function of making search, addition, change, and deletion of data with respect to that table. 
   &lt;Virtual Device Management Table&gt; 
     FIG. 7  is a conceptual view of the virtual device management table  700  held by the virtual device management module  604  exemplifying one embodiment of the present invention. 
   The virtual device management table  700  has a UDN item  701 , ControlURL item  702 , eventSubURL item  703 , and CallBackURL item  704 . The virtual device management table  700  allows to make search, read/write, addition, and deletion of the respective items, and one item uniquely specifies other items except for the CallBackURL item  704 . Furthermore, one or more values of the CallBackURL item  704  associated with the uniquely specified record are specified. 
   The UDN item  701  is an identifier used to identify a device, and stores a UDN tag value of the device description. 
   The ControlURL item  702  stores the URL of an end point that accepts a control command of a real device, i.e., an original device. The eventSubURL item  703  stores the URL of the end point that subscribes an event of the real device, i.e., the original device. The CallBackURL item  704  stores the URL of the end point used to transmit an event message to the user PC  102  that has subscribed an event. 
   &lt;Module Arrangement and Function of Device Unit&gt; 
     FIG. 8  is a block diagram showing the module arrangement of the device unit  303  exemplifying one embodiment of the present invention. 
   The device unit  303  comprises a main control module  801 , HTTP server module  802 , HTTP client module  803 , XML processing module  804 , event processing module  805 , device control module  806 , and discovery module  807 . 
   The main control module  801  has a function of controlling the HTTP server module  802 , HTTP client module  803 , XML processing module  804 , event processing module  805 , device control module  806 , and discovery module  807 , exchanging data with interfaces of respective modules, and so forth. Furthermore, the main control module  801  has a function of holding and providing the self device description, service description, and presentation document, and a function of providing a function required to connect the UPnP device proxy apparatus  101  on the external network. 
   The HTTP server module  802  has the same function as that of the HTTP server module  602 . 
   The HTTP client module  803  has the same function as that of the HTTP client module  402 . 
   The XML processing module  804  has the same function as that of the XML processing module  403 . 
   The event processing module  805  has a function of satisfying a protocol GENA (Generic Event Notification Architecture; to be abbreviated as GENA hereinafter) of device events specified by the UPnP, and also has a function of an event subscription and issuing an event to the user PC  102  and the like. 
   The device control module  806  has a function of receiving and parsing a SOAP (see W3C XML Protocol Working Group) message as a control protocol specified by the UPnP, and executing real or virtual processing according to that command. 
   The discovery module  807  has a function of satisfying the SSDP as the device discovery protocol specified by the UPnP, and a function of executing response processing to an Alive announce, ByeBye announce, and search. 
   &lt;Discovery of UPnP Device Proxy Device 101&gt; 
   The UPnP device proxy apparatus  101  itself is implemented as an UPnP compatible device, and an external device in the same network  105  can discover and use the UPnP device proxy apparatus  101  in the process specified by the UPnP. 
   The method of allowing the user PC  102  to discover the UPnP device proxy apparatus  101  includes two methods, i.e., a method of receiving an SSDP Alive message issued by the UPnP device proxy apparatus  101  and a method of transmitting a search message from the user PC  102  onto the network  105 , and receiving a response to that message returned from the UPnP device proxy apparatus  101 . These methods are based on the Discovery protocol specified by the UPnP. 
   As the discovery unit of the user PC  102 , Windows® XP as an OS available from Microsoft Corporation incorporates a UPnP client function as a standard function, and when the user PC  102  uses this OS, reception of an SSDP Alive message, transmission of an SSDP search message, and the like are automatically done. Also, a dedicated application which performs the above discovery process can be used as the discovery unit. 
   The embodiment of the present invention will give a description under the assumption that the user PC  102  uses Windows® XP as the OS. 
   Upon completion of the discovery process, an icon indicating the UPnP device proxy apparatus  101  appears in a “My Network” folder of Explorer (available from Microsoft Corporation). 
   Upon double-clicking the icon, a browser such as Internet Explorer (available from Microsoft Corporation) or the like is launched to display a page including a text input area used to input a connection destination. 
   &lt;UPnP Device Proxy Device Connection Processing&gt; 
   The user inputs the IP address or host name of the UPnP device proxy apparatus  103  to the text input area of the browser, and presses a connection button. Upon pressing of the connection button, the browser transmits a connection request message to the UPnP device proxy apparatus  101 . 
   The HTTP server module  802  of the UPnP device proxy apparatus  101  receives the connection request message. The main control module  801  acquires the IP address or host name of the input connection destination (UPnP device proxy apparatus  103 ) input via the browser from the received message. 
   The main control module  801  transmits a SOAP message, which describes an operation name “connect” and the IP address or host name of the UPnP device proxy apparatus  101  as its argument, as shown in  FIG. 9 , to the UPnP device proxy apparatus  103  via the HTTP client module  803 . 
   The HTTP server module  802  of the UPnP device proxy apparatus  103  receives the connection request SOAP message. The XML processing module  804  processes the received message to acquire the IP address or host name of the UPnP device proxy apparatus  101 , and the main control module  801  passes it to the control unit  300 . The control unit  300  then passes the IP address or host name to the control module  400  of the parsing unit  301 . 
   The main control module  801  of the UPnP device proxy apparatus  101  returns a SOAP Response message, which describes the IP address or host name of the UPnP device proxy apparatus  103  as a return value, as shown in  FIG. 10 , as a response to the connection request SOAP message received previously, to the UPnP device proxy apparatus  101  via the HTTP client module  803 . 
   &lt;Acquisition of UPnP Device Information&gt; 
   Upon completion of the above connection processing, the UPnP device proxy apparatus  103  starts to search for UPnP compatible devices connected to the network  120  to which the self-device belongs. 
   The control module  400  of the parsing module  301  creates an SSDP search message using the XML processing module  403 , transmits it onto the network  120  via the HTTP client module  402 , and waits for a response. The control module  400  repeats this process at appropriate time intervals until the UPnP device proxy apparatus  101  issues a disconnection request. 
   Upon reception of a response from an UPnP compatible device during this repetition, the HTTP client module  402  receives the response message, and passes it to the control module  400 . 
   Parallel to the aforementioned process, the device discovery listener module  401  prepares for reception of an SSDP NOTIFY message via the network  120 . The UPnP compatible device broadcasts the SSDP NOTIFY message onto the network at predetermined time intervals. The device discovery listener module  401  continues the reception process until the UPnP device proxy apparatus  101  issues a disconnection request. Upon reception of the NOTIFY message, the device discovery listener module  401  passes that message to the control module  400 . 
   The UPnP device proxy apparatus  103  acquires information associated with the device from the response to the search message or the NOTIFY message. 
   An example of the NOTIFY message is as follows. 
   NOTIFY*HTTP/1.1
     HOST:239.255.255.250:1900   CACHE-CONTROL:max-age=30   LOCATION:http://192.168.1.11/printer/devicedsc.xml   NT:urn:schemas-upnp-org:printbasic:1   NTS:ssdp:alive   USN:uuid:upnp-printbasic111   

   Upon reception of the response or NOTIFY message, the control module  400  acquires the URL of a device description (the value of a LOCATION header is the URL of the device description), the UDN (the value of a USN header is the UDN), the value of the NTS header, and the value of CACHE-CONTROL from the message. The UPnP device proxy apparatus  103  can acquire these pieces of information from the response to the search message. The control module  400  passes the URL of the device description, the UDN, the value of the NTS header, and the value of CACHE-CONTROL to the device management module  404 . 
   The device management module  404  that has acquired the above values searches the device management table  500  using the UDN value as a key. If a relevant record is found by the above search and its NTS header value is “SSDP:ALIVE”, the device management module  404  updates the value of the LatestTime item  504  by the current time. If a record is found, and its NTS header value is “SSDP:BYEBYE”, the device management module  404  deletes the relevant record. 
   If no relevant record is found by the above search, the device management module  404  inserts the URL of the device description, the UDN, the value of CACHE-CONTROL, and the current time in the items  502 ,  501 ,  503 , and  504  of the table  500 . 
   As described above, the UPnP device proxy apparatus  103  as the first connection apparatus recognizes the device connected to the first network  120 . Also, the UPnP device proxy apparatus  103  as the first connection apparatus acquires the destination information (the URL of the device description) of a message to the device connected to the first network  120 . 
   &lt;Transfer of UPnP Device Information&gt; 
   After the above process, if the aforementioned record is found and its NTS header value is “SSDP:BYEBYE”, the device management module  404  creates a SOAP message shown in  FIG. 11  using an operation name “byebye” and the acquired UDN value as its argument. 
   If no relevant record is found, the device management module  404  acquires the device and service descriptions from the URL of the device description (the value of the item  502  in  FIG. 5 ), and creates a SOAP message which describes an operation name “remoteAlive”, and the UDN (the value of the item  501  in  FIG. 5 ) and the IP address or host name of the UPnP device proxy apparatus  103  as its arguments, and is attached with the acquired device and service descriptions as its attachments, as shown in  FIG. 12 , using both the values inserted in the above-mentioned record. The device management module  404  generates an element of an URLBase tag based on the URL of the acquired device description, and puts it in the attachment of this SOAP message. “URLBase” will be described later. The device management module  404  transmits the created message to the UPnP device proxy apparatus  101 . Note that the device description is information associated with a device, and includes a device type, vendor name, model name, serial number, and the like specified by the UPnP. The service description is a description of interfaces of services (print and the like in case of a printer) provided by that device. These pieces of information are acquired from the URL of the device description. 
   As described above, the UPnP device proxy apparatus  103  as the first connection apparatus recognizes the device (e.g., the printer  110 ) connected to the first network  120 , and transmits the information regarding the recognized device to the UPnP device proxy apparatus  101  as the second connection apparatus via the second network  100 . In this recognition, the UPnP device proxy apparatus  103  acquires information (URL) of the storage location of the device description held by the device from the message (the response message to the search message or the NOTIFY message) from the device (e.g., the printer  110 ). The UPnP device proxy apparatus  103  acquires the information (device and service descriptions) of the device from the information (URL) of the storage location of the device description. An example of this device information includes the type of that device, and another example includes the services or functions (e.g., print and the like) provided by that device. 
   The UPnP device proxy apparatus  103  as the first connection apparatus acquires the destination information (URLBase) of a message to the device (e.g., the printer  110 ) connected to the first network  120 , and transmits the acquired destination information (URLBase) to the UPnP compatible device  101  as the second connection apparatus via the second network  100 . 
   The above processes of message creation and message transmission are repeated with the aforementioned information acquisition process. 
   &lt;Generation and Extinction of Virtual UPnP Device&gt; 
   The HTTP server module  602  of the UPnP compatible device  101  receives the SOAP message transmitted from the UPnP device proxy apparatus  103 . That is, the HTTP server module  602  serves as first connection unit connected to the second network  100 , and receives first destination information (URLBase) of a message to the device (e.g., the printer  110 ) connected to the first network  120  from the UPnP device proxy apparatus  103  as the connection apparatus via the second network  100 . 
   The HTTP server module  602  passes the received SOAP message to the reproduction control module  600 , which processes the message using the XML processing module  603 . The reproduction control module  600  extracts the operation name, argument part, and the like of the SOAP message from the processing result. 
   If the operation name is “byebye”, the reproduction control module  600  passes the UDN as the argument value of the SOAP message to the virtual device management module  604 . Upon reception of only the UDN, the virtual device management module  604  searches the virtual device management table  700  using the UDN as a key and deletes a relevant record. Furthermore, the virtual device management module  604  sends a processing request for issuing an SSDP:BYEBYE message to the generated virtual device to the control unit  300 . The control unit  300  instructs the discovery module  807  to issue SSDP:BYEBYE including the UDN as an argument to the main control module  801 . The discovery module  807  that has received the instruction transmits an SSDP:BYEBYE message including the UDN as an argument (a message which notifies that the device of that UDN is unavailable) onto the network  105 . After that, the main control module  801  ends its own process. 
   If the operation name is “remoteAlive”, the reproduction control module  600  passes the UDN as the argument value and the IP address or host name of the UPnP device proxy apparatus  103 , and the device and service descriptions of the SOAP message ( FIG. 12 ) to the virtual device management module  604 . 
   Upon reception of these values, the virtual device management module  604  extracts the values of the “ControlURL” tag and “eventSubURL” tag from the device description using the XML processing module  603 . The virtual device management module  604  inserts the extracted values into the items  702  and  703  of the virtual device management table  700  and the UDN in the item  701  of the virtual device management table  700 . Furthermore, the virtual device management module  604  rewrites elements of tags as follows to create information shown in  FIG. 13 . 
   The module  604  rewrites the element of a “friendlyName” tag by a value obtained by appending, to an original value (the value included in the message of the operation name “remoteAlive” shown in  FIG. 12 ), the IP address or host name of the UPnP device proxy apparatus  103  and “.” . “friendlyName” represents a (human-readable) device name. 
   The module  604  rewrites the element of an “URLBase” tag by the URL obtained by combining the IP address of the UPnP device proxy apparatus  101  and the port number. URLBase is the URL used as a base for accessing a device. This port number corresponds to the UDN (the identifier used to identify the device), and the UPnP device proxy apparatus  101  identifies the target device using this port number. 
   The module  604  rewrites the element of an “SCPDURL” tag by “/service/service.xml”. “SCPDURL” is the URL indicating an XML file that describes services provided by the device. The module  604  rewrites the element of a “ControlURL” tag by “/control”. The module  604  rewrites the element of an “eventSubURL” tag by “/event”. 
   The virtual device management module  604  creates a presentation page based on the service description, and creates a new device unit process using the written device description and the service description. 
   The main control module  801  of the generated device unit transmits an SSDP:ALIVE message onto the network  105 . The SSDP:ALIVE message includes the URL of the device description (the value of the LOCATION header), the UDN (the value of the USN header is the UDN), the value of the NTS header (SSDP:ALIVE), and the value of CACHE-CONTROL as in the NOTIFY message described in &lt;Acquisition of UPnP Device Information&gt;. The URL of the device description includes the value of URLBase, which is rewritten, as described above. The value of CACHE-CONTROL is a predetermined value (e.g., 20 sec). 
   That is, the main control module  801  serves as second connection unit which is connected to the third network  105  and receives a message to the predetermined address (the IP address of the UPnP device proxy apparatus  101 ). Also, the virtual device management module  604  serves as generation unit which generates second destination information (URLBase) of a message to the device by appending the identifier (port number) for the device to the predetermined address (the IP address of the UPnP device proxy apparatus  101 ). The main control module  801  transmits a message including the second destination information onto the third network. 
   As described above, the UPnP device proxy apparatus  101  as the second connection apparatus receives information transmitted from the UPnP device proxy apparatus  103  as the first connection apparatus, and transmits, based on the received information, a message (SSDP:ALIVE message) indicating that the recognized device is available onto the third network  105 . This message includes information (URL) of the storage location of the device description. This information (URL) of the storage position is generated by combining the identification information (IP address) of the UPnP device proxy apparatus  101  and the identifier (port number) used to identify the device (URLBase). 
   The UPnP device proxy apparatus  101  as the second connection apparatus receives first destination information (URLBase) transmitted from the UPnP device proxy apparatus  103  as the first connection apparatus, generates second destination information (URLBase) of a message to the device by appending the identifier (port number) for the device (e.g., the printer  110 ) to the identifier (IP address) of the UPnP device proxy apparatus  101 , and transmits a message (SSDP:ALIVE message) including the generated second destination information (URLBase) onto the third network. Note that the second destination information indicates the URL formed by combining the IP address of the UPnP device proxy apparatus  101  and the port number. 
   &lt;Device Control Module and Event Processing Module in Device Unit&gt; 
   As described above, the device control module  806  manipulates a real device upon reception of a control request from the UPnP client. However, the new device which is generated in this case is the virtual device  110 V, which executes processing for transferring the control request to the real device  110 . 
   Likewise, the event processing module also transfers event subscribe and event issuance requests to the real device  110 . 
   The aforementioned implementation is programmed to execute versatile transfer processing since it does not depend on the functions of various real devices. 
   &lt;Control of Device&gt; 
   The user PC  102  can control the virtual device discovered by the SSDP:ALIVE message or the like, as described above. The user PC  102  specifies this virtual device using URLBase included in the SSDP:ALIVE message. 
   Upon reception of a device control request from the user PC  102 , the HTTP server module  802  of the UPnP device proxy apparatus  101  passes the request to the device control module  806 . The address of this control request includes URLBase. The UPnP device proxy apparatus  101  specifies a virtual device to be controlled based on the port number included in this URLBase, and the corresponding device unit  303  receives and processes this control request. 
   Upon reception of the request, the device control module  806  requests the virtual device management module  604  to search for ControlURL of the UDN via the control unit  300  using the self UDN (the UDN corresponding to the port number included in URLBase) as a key. Upon reception of the search request, the virtual device management module  604  searches the virtual device management table  700  using the UDN. The virtual device management module  604  extracts the value of the ControlURL item  702  from a relevant record, and supplies it to the device control module  806  via the control unit  300 . 
   Upon reception of the ControlURL value, the device control module  806  creates a SOAP message which describes an operation name “control” and the ControlURL value (the value appended with URLBase) as its argument value, and is attached with the request, as shown in  FIG. 14 , and transmits that message to the UPnP device proxy apparatus  103  via the HTTP client module  803 . 
   More specifically, when the UPnP device proxy apparatus  101  as the second connection apparatus receives a first transmission message (control request) which has second destination information (URLBase) as an address from the user PC  102  as an apparatus connected to the third network  105 , it transmits a second transmission message (SOAP message), which includes the first destination information (URLBase) corresponding to the identifier (port number) included in the second destination information (URLBase), and the contents of the first transmission message (control request), to the UPnP device proxy apparatus  103  as the first connection apparatus. The second destination information represents the URL as a combination of the IP address of the UPnP device proxy apparatus  101  and the port number. 
   Upon reception of the SOAP message, the dispatch module  405  of the parsing unit  301  of the UPnP device proxy apparatus  103  processes the message using the XML processing module  403 , and acquires the argument of the operation and the attached message (the control request from the user PC  102 ). 
   The dispatch module  405  transmits the attached message as a SOAP message to the URL of the argument via the HTTP client module  402 . That is, the UPnP device proxy apparatus  103  as the first connection apparatus receives the second transmission message (SOAP message) transmitted from the UPnP device proxy apparatus  101  as the second connection apparatus, and transmits a third transmission message (SOAP message), which includes the contents of the first transmission message (control request), to have the first destination information (URLBase) as an address. 
   After the dispatch module  405  waits for and receives a response to the SOAP message, it creates a SOAP response with an operation “control”, and sends it back to the UPnP device proxy apparatus  101  to have a control response of the real device as an attachment. 
   Upon reception of the SOAP response, the device control module  806  of the device unit  303  of the UPnP device proxy apparatus  101  extracts the attached message from the SOAP response message using the XML processing module.  804 , and returns it to the user PC  102  as a SOAP response. 
   &lt;Device Event Subscribe&gt; 
   Upon reception of a device event subscribe request from the user PC  102 , the HTTP server module  802  of the UPnP device proxy apparatus  101  passes the value of CALLBACK included in the HTTP header of the event subscribe request to the event processing module  805 . 
   The event processing module  805  which received the CALLBACK value requests the virtual device management module  604  to insert the CALLBACK value in the CallBackURL item of the self UDN via the control unit  300  to have that UDN as a key. 
   Upon reception of the request, the virtual device management module  604  searches the virtual device management table  700  using the UDN. The virtual device management module  604  inserts the CALLBACK value into the CallBackURL item  704  of a relevant record. Furthermore, the virtual device management module  604  acquires the value of the eventSubURL item  703  of the relevant record. 
   Upon reception of the value of the eventSubURL item  703 , the event processing module  805  creates a SOAP message which includes an operation name “eventSub”, and the UDN and the value of the eventSubURL item  703  as its argument values, as shown in  FIG. 15 , and transmits that message to the UPnP device proxy apparatus  103  via the HTTP client module  803 . 
   Upon reception of the SOAP message, the dispatch module  405  of the parsing unit  301  of the UPnP device proxy apparatus  103  processes the message using the XML processing module  403 , and acquires the argument of the operation. 
   The dispatch module  405  transmits an event subscribe message specified by the UPnP to the URL of the argument via the HTTP client module  402 . In this case, the dispatch module  405  sets the value of the CALLBACK header such as http://192.168.1.21:8022/uuid:hogeprinter000/event using the UDN as the argument. 
   The dispatch module  405  transmits a SOAP response to the UPnP device proxy apparatus  101 . 
   &lt;Device Event Processing&gt; 
   When an event is reported from the real device  110 , the dispatch module  405  of the UPnP device proxy apparatus  103  receives it, and extracts a device UDN from the received directory name. The dispatch module  405  then creates a SOAP message which includes an operation name “event” and the UDN as its argument, and is attached with the event message reported from the device  110 , as shown in  FIG. 16 , and transmits the created SOAP message to the UPnP device proxy apparatus  101 . 
   The HTTP server module  602  of the UPnP device proxy apparatus  101  receives the SOAP message, and processes it using the XML processing module  603 . The reproduction control module  600  acquires the UDN and attached message from the processing result. 
   The reproduction control module  600  requests the virtual device management module  604  to acquire the value of the CallBackURL item of the UDN via the control unit  300  to have the UDN as a key. 
   Upon reception of the request, the virtual device management module  604  searches the virtual device management table  700  using the UDN. The virtual device management module  604  extracts the value from the CallBackURL item  704  of a relevant record. 
   The reproduction control module  600  acquires the value of the CallBackURL item via the control unit  300 , and transmits the attached message of the SOAP to that value. 
   Embodiment 2 
   In the above description, in the UPnP device proxy apparatus connection processing, the IP address or host name of the UPnP device proxy apparatus  103  is input to the text input area of the browser. Alternatively, the UPnP device proxy apparatus connection processing can be attained by using a UPnP device proxy apparatus registration server  2001  connected to the network  100 , as shown in  FIG. 17 . 
   &lt;Module Arrangement and Function of UPnP Device Proxy Device Registration Server&gt; 
     FIG. 18  is a block diagram showing the module arrangement of the UPnP device proxy apparatus registration server  2001  exemplifying one embodiment of the present invention. 
   The UPnP device proxy apparatus registration server  2001 , which registers and manages the UPnP device proxy apparatuses and provides their information, comprises a registration control module  2100 , HTTP server module  2101 , table management module  2102 , and XML processing module  2103 . 
   The registration control module  2100  controls the HTTP server module  2101 , table management module  2102 , and XML processing module  2103 , and exchanges data with interfaces of respective modules. 
   The HTTP server module  2101  has the same function as that of the HTTP server module  602 . 
   The table management module  2102  has an UPnP proxy management table  2200  (to be described later) used to manage information regarding the UPnP device proxy apparatuses, and has a function of making search, addition, change, and deletion of data with respect to that table. 
   The XML processing module  2103  has the same function as that of the XML processing module  403 . 
   &lt;UPnP Proxy Management Table&gt; 
     FIG. 19  is a conceptual view of the UPnP proxy management table  2200  held by the table management module  2102  exemplifying one embodiment of the present invention. 
   The UPnP proxy management table  2200  includes a HostName Item  2201 , IpAddress item  2202 , Place item  2203 , and Comment item  2204 . The UPnP proxy management table  2200  allows to make search, read/write, addition, and deletion of the respective items. 
   The HostName item  2201  stores the host name of the UPnP device proxy apparatus. The IPAddress item  2202  stores the IP address of the UPnP device proxy apparatus. The Place item  2203  stores information regarding the installation place or the like of the UPnP device proxy apparatus. The Comment item  2204  stores arbitrary information or the like of the UPnP device proxy apparatus. 
   &lt;UPnP Device Proxy Registration&gt; 
   The procedure of the processing for registering the UPnP device proxy apparatus  101  will be described below. 
   Upon double-clicking an icon indicating the UPnP device proxy apparatus  101  in a “My Network” folder of Explorer (available from Microsoft Corporation), a browser such as Internet Explorer (available from Microsoft Corporation) is launched, and a page shown in  FIG. 20  is displayed. 
   The user of the user PC  102  inputs appropriate information in text input areas of “place” and “comment” of “proxy registration”, and presses a registration button. Simultaneously with pressing of the registration button by the user of the user PC  102 , the user PC  102  transmits a message, and the HTTP server module  802  of the UPnP device proxy apparatus  101  receives that message. 
   The main control module  801  acquires the place and comment input by the user from the message, acquires the host name and IP address of the self device, and creates a SOAP message shown in  FIG. 21  using an operation name “registration”, and the place, comment, host name, and IP address as its arguments. The main control module  801  then transmits the SOAP message to the UPnP device proxy apparatus registration server  2001  via the HTTP client module  803 . 
   The HTTP server module  2101  receives the SOAP message, and processes it using the XML processing module  2103 . The registration control module  2100  acquires the host name and IP address of the UPnP device proxy apparatus  101  and the Place value and Comment value input by the user as the processing result of the SOAP message. The registration control module  2100  passes the acquired value to the table management module  2102 , which inserts these values in the UPnP proxy management table  2200 . After the insertion, the registration control module  2100  transmits a SOAP response to the UPnP device proxy apparatus  101 . 
   Upon reception of the SOAP response, the HTTP client module  803  of the UPnP device proxy apparatus  101  passes the SOAP response message to the main control module  801 , which processes the message using the XML processing module  804 . The main control module  801  displays a page that advises accordingly on the browser of the user PC based on the processing result. 
   &lt;Connection Using UPnP Device Proxy Device Registration Servers 
   The procedure of connection processing using the UPnP device proxy apparatus registration server will be described below. 
   Upon double-clicking the icon indicating the UPnP device proxy apparatus  101  in the “My Network” folder of Explorer (available from Microsoft Corporation) on the user PC  102 , the browser such as Internet Explorer (available from Microsoft Corporation) is launched, and the page shown in  FIG. 20  is displayed. 
   That is, when the user of the user PC  102  double-clicks the icon indicating the UPnP device proxy apparatus  101  to establish connection to the UPnP device proxy apparatus  101 , the UPnP device proxy apparatus  101  acquires registered information (including the host name or IP address as the information regarding the UPnP device proxy apparatus  101 ) from the UPnP device proxy apparatus registration server  2001 . The user PC  102  displays the page shown in  FIG. 20  by reflecting the information acquired by the UPnP device proxy apparatus  101 . 
   The user of the user PC  102  selects the host name to be connected (the host name of the UPnP device proxy apparatus  101 ) from a list of “connection destination list”, confirms the place and comment fields, and presses a connection button. 
   Note that the UPnP device proxy apparatus  103  side also executes processing for registering the UPnP device proxy apparatus  103  in the UPnP device proxy apparatus registration server  2001 .  FIG. 20  shows that “place” of “proxy registration” is “Tokyo office 1”, and “printer is available” as “comment”. 
   After that, the same processing (processing after transmission of the connection request message to the UPnP device proxy apparatus  101 ) as that after the IP address or host name of the UPnP device proxy apparatus  103  is input to the text input area of the browser and the connection button of the browser pressed in &lt;UPnP Device Proxy Device Connection Processing&gt; of embodiment 1 is executed. 
   Other Embodiments 
   The objects of the present invention are also achieved by supplying a storage medium (or recording medium), which records a program code of a software program that can implement the functions of the above-mentioned embodiments to the system or apparatus, and reading out and executing the program code stored in the storage medium by a computer (or a CPU or MPU) of the system or apparatus. In this case, the program code itself read out from the storage medium implements the functions of the above-mentioned embodiments, and the storage medium which stores the program code constitutes the present invention. The functions of the above-mentioned embodiments may be implemented not only by executing the readout program code by the computer but also by some or all of actual processing operations executed by an operating system (OS) running on the computer on the basis of an instruction of the program code. 
   Furthermore, the functions of the above-mentioned embodiments may be implemented by some or all of actual processing operations executed by a CPU or the like arranged in a function extension card or a function extension unit, which is inserted in or connected to the computer, after the program code read out from the storage medium is written in a memory of the extension card or unit. 
   The present invention is not limited to the above embodiments and various changes and modifications can be made within the spirit and scope of the present invention. Therefore to apprise the public of the scope of the present invention, the following claims are made. 
   CLAIM OF PRIORITY 
   This application claims priority from Japanese Patent Application No. 2004-126845, filed Apr. 22, 2004, which is hereby incorporated by reference herein in its entirety.