WO2017168512A1 - 通信装置、通信方法及び通信プログラム - Google Patents

通信装置、通信方法及び通信プログラム Download PDF

Info

Publication number
WO2017168512A1
WO2017168512A1 PCT/JP2016/059908 JP2016059908W WO2017168512A1 WO 2017168512 A1 WO2017168512 A1 WO 2017168512A1 JP 2016059908 W JP2016059908 W JP 2016059908W WO 2017168512 A1 WO2017168512 A1 WO 2017168512A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual terminal
terminal
communication
command
response
Prior art date
Application number
PCT/JP2016/059908
Other languages
English (en)
French (fr)
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 CN201680084364.XA priority Critical patent/CN108885592A/zh
Priority to JP2018507836A priority patent/JP6764117B2/ja
Priority to EP16896732.1A priority patent/EP3438833A4/en
Priority to PCT/JP2016/059908 priority patent/WO2017168512A1/ja
Publication of WO2017168512A1 publication Critical patent/WO2017168512A1/ja
Priority to US16/133,026 priority patent/US20190020727A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9554Retrieval from the web using information identifiers, e.g. uniform resource locators [URL] by using bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Definitions

  • the present invention relates to a communication device, a communication method, and a communication program.
  • a video device and a display device for displaying video are connected via a dedicated connection cable.
  • a video playback button is operated after selecting content on the video device, a playback control signal is transmitted from the video device via the connection cable, and the content is played back on the display device.
  • a plurality of devices are connected to each other and operated, they are generally connected by a dedicated connector or cable.
  • Patent Document 1 describes a technique for controlling communication between apparatuses.
  • patent document 2 describes a network terminal.
  • an object of the first aspect of the present disclosure is to provide a communication device, a communication method, and a communication program that can easily connect a plurality of devices to a network and perform communication between terminals.
  • communication client means for starting communication via a network
  • communication server means for responding to the start of communication
  • self profile information having identification information and address of the first virtual terminal
  • a memory for storing
  • the communication server means includes In response to the first command transmitted from the first device via the network, the self profile information is returned to the first device, and further from the first device via the network.
  • the communication client means includes: In response to a predetermined event associated with the first virtual terminal, the first virtual terminal based on the address of the second virtual terminal set in the link information of the first virtual terminal A communication device that performs communication connection via the network to the second virtual terminal.
  • a plurality of devices can be easily connected via a network and communication between terminals can be performed.
  • FIG. It is a figure which shows the structure and program group of an apparatus which performs communication between terminals, such as a 1st apparatus and a 2nd apparatus. It is a figure which shows the structure and program groups of apparatuses, such as a terminal. It is a figure which shows the processing content and description of a WEB application. It is a figure which shows the program and hardware which process communication and communication between a terminal, a 1st apparatus, and a 2nd apparatus. It is a figure which shows the process which a terminal acquires and performs the WEB application 111.
  • FIG. It is a figure which shows the process of the profile command (PROF command) by a terminal. It is a figure which shows the process of the link command (LINK command) by a terminal.
  • FIG. 1 and FIG. 2 are diagrams showing processing until communication is possible between the first and second devices in the present embodiment.
  • FIG. 3 is a diagram illustrating processing in which communication is performed between the first and second devices in the present embodiment.
  • an example of processing until the first device 100a and the second device 100b can be connected to each other by the terminal 900 and then communication processing performed between the virtual terminals of the first device and the second device will be described.
  • the first device 100a is, for example, a display device with a touch panel
  • the second device 100b is, for example, a video camera device.
  • the display device includes various operation buttons, physical operation elements such as operation target images (character strings and icons) displayed on the display screen, connection terminals to which physical cables are connected, and the like.
  • the video camera device also has physical operation elements such as various operation buttons (recording button, playback button, stop button, etc.), a connection terminal to which a physical cable is connected, and the like.
  • virtual terminals are set in the first device 100a and the second device 100b corresponding to the operation elements and connection terminals described above.
  • a virtual terminal is defined in the profile information of each of the first device and the second device, and communication is performed between the virtual terminal of the first device and the virtual terminal of the second device via a communication network. Therefore, the virtual terminal is not a physical terminal but a virtual communication terminal (communication node) set in the profile information.
  • the virtual terminal may be associated with the above-described physical operation element or physical connection terminal, and may be associated with a virtual function other than the operation element or the connection terminal.
  • such a virtual terminal is simply called a terminal.
  • a virtual terminal when distinguishing from a physical terminal, it is called a virtual terminal.
  • a terminal 900 is, for example, a smartphone, a pad terminal, or a personal computer.
  • the terminal 900 can operate a WEB browser (communication client) (WEB: web), and the terminal can be connected to a node on the communication network via a communication network such as the Internet or an intranet.
  • WEB WEB: web
  • the first device 100a and the second device 100b are the above-described display device, video camera device, and the like, but an OS (Operating System), a communication client (program), a communication server (program), and the like, which are basic programs. Is installed.
  • the communication client and the communication server are programs that perform transmission processing using, for example, HTTP (Hypertext Transfer Protocol).
  • the user uses the terminal 900 to acquire URI (Uniform Resource Identifier) information of the first device (S1).
  • the URI is acquired by a matrix type barcode, but it can also be acquired by other methods.
  • the terminal 900 accesses the acquired URI by the communication client of the WEB browser (S2), and the first device 100a stores it in the internal storage device in response to the access from the terminal by the communication server.
  • a WEB application (program) 111 is returned as a response (S3).
  • the web application downloaded by the browser of the terminal 900 is executed, and the display image 121D of the web application is displayed on the display device.
  • the WEB application is, for example, HTML5 data.
  • connection GUI one process of the WEB application
  • GUI Graphical User Interface
  • the communication server responds to the PROF command and responds with the profile data 127a stored in the internal storage device (S5).
  • the profile data includes information on a plurality of virtual terminals that the first device has, for example, the name of the terminal, the URI, and link information. Specific examples will be described later.
  • connection GUI of the terminal 900 displays an image of the connection GUI having the icon 211a of the first device 100a and the add request icon 121D-B of another device in the display image 121D based on the acquired profile data.
  • the icon 211a also includes a virtual terminal icon 212.
  • connection GUI of the terminal transmits a PROF command 310 to an arbitrary terminal of the second device 100b (S6).
  • the communication server of the second device responds with profile data 127b stored therein (S7).
  • the connection GUI of the terminal 900 additionally displays the icon 211b of the second device 100b in the display image 121D based on the acquired profile data.
  • This icon also includes a virtual terminal icon.
  • the user can input or obtain the URI of the second device by touching the blank area of the display image 121D, so that the connection GUI of the terminal can connect the PROF to the second device.
  • the command 310 may be transmitted.
  • the second device may be selected from the bookmark instead of the device addition request icon.
  • the WEB application for processing the connection GUI may be stored in either the first device or the second device.
  • the user performs a drag operation so as to connect between the arbitrary terminal 212 of the icon of the first device and the second device displayed on the display screen 121D of the terminal 900.
  • the connection operation is started from the terminal 212a of the icon 211a of the first device
  • the terminal 212b that can communicate with the terminal 212a of the first device among the terminals of the icon 211b of the second device is highlighted.
  • the profile data includes information on the data that can be processed by the terminal and the upper limit of the number of connections as the terminal information
  • the connection GUI can detect the terminal 212b that can communicate with the terminal 212a.
  • the profile data may include the name and description of each terminal, and the name and description may be displayed on the display screen. In that case, the user can easily determine from which terminal the drag operation should be performed.
  • the terminal connection GUI displays a link command (hereinafter referred to as a LINK command) 320a on the terminal 212a of the first device and a LINK command on the terminal 212b of the second device.
  • a link command hereinafter referred to as a LINK command
  • 320b is transmitted (S8, S10).
  • the LINK command 320a transmitted to the first device includes the URI of the terminal 212b of the second device and a connection instruction.
  • the LINK command 320b transmitted to the second device includes the URI of the terminal 212a of the first device and a connection instruction.
  • the communication server of the first device 100a sets the URI of the link destination terminal 212b in the link information of the terminal 212a in the profile data (S9).
  • the communication server of the second device 100b sets the URI of the link destination terminal 212a in the link information of the terminal 212b in the profile data (S10).
  • the URI setting of these link destination terminals is performed by a LINK command process (program) described later.
  • the connection GUI of the terminal displays the first device connection icon 213.
  • the terminal 212a of the first device and the terminal 212b of the second device are brought into a linked state and can communicate with each other. . Specific communication processing will be described in detail later.
  • the communication process between the first device and the second device will be described.
  • the terminal 212a of the first device and the terminal 212b of the second device are in a linked state and are in a state where they can communicate with each other. Therefore, in response to the occurrence of a predetermined event associated with each of the terminals 212a and 212b, the communication client of the device in which the event has occurred is activated.
  • the predetermined event includes, for example, an operation of a physical operation element by a user, a power activation, and the like.
  • the activated communication client transmits a terminal process associated with a predetermined event, for example, a command and data for data transmission or data request, to the URI of the link destination terminal set in the profile data. Further, the communication server of the device at the link destination terminal executes processing corresponding to the received command and data.
  • a predetermined event for example, a command and data for data transmission or data request
  • Such communication between terminals is called inter-terminal communication.
  • the communication between terminals is communication by HTTP between a communication client and a communication server. Therefore, if there is information on the URI of the terminal associated with the predetermined event and the URI of the terminal in a link state with the URI, the communication client and the communication server can communicate by HTTP.
  • the second device 100b starts recording when the touch panel on the display screen of the first device 100a is touched.
  • the OS of the first device starts the communication client and the terminal 212a associated with the touch panel.
  • Sends a send command (hereinafter referred to as SEND command) 330 and transmission data 331 to the terminal 212b of the second device 100b (S13).
  • the transmission data 331 includes a data type “Boolean” and a value “true”, and the value “true” means an instruction to start recording.
  • the SEND command and the transmission data are transmitted to all the terminals of other devices set as the link destination terminal of the terminal 212a in the profile data of the first device.
  • the communication server of the second device 100b starts a program for processing the received SEND command, and starts a recording operation associated with the recording terminal as the terminal 212b and the value “true” of the transmission data (S14). ).
  • the second device responds with the URI of the video distribution data when the video input button of the first device is operated.
  • a player control program for controlling the display device is activated.
  • the player control program uses the URI of the video distribution terminal of the second device, which is set as the link destination terminal of the video input terminal in the profile data, the receive command (hereinafter referred to as RECV command), and the transmission data as parameters. Execute.
  • the communication client transmits the RECV command 340 and the transmission data 331 to the video distribution terminal of the second device (S16).
  • the communication server of the second device starts a program for processing the received RECV command, and the video input terminal as the terminal 212b and the data type of transmission data “application / dash + xml” (indicating video distribution data) (MIME type) is executed.
  • the communication server receives the reception data 341 having the value “URI” of the video distribution data “https://[1234:5678::90ab]/video.mpd” acquired by the program that processes the RECV command as the first value.
  • the communication client of the first device acquires the video content based on the URI of the video distribution data, and causes the display device to reproduce the content (S18).
  • the predetermined event of the first device may be power activation of the first device instead of the operation of the video input button.
  • connection GUI is executed by the terminal 900.
  • the first device or the second device executes the connection GUI of the WEB application of the terminal 900 to correspond to the transmission of the PROF command and the LINK command. Processing may be performed.
  • First device, second device, terminal configuration and program group 4 4, 5, and 6 are diagrams illustrating a configuration and a program group of a device that performs communication between terminals such as the first device and the second device.
  • the apparatus 100 includes a central processing unit (CPU) 101 (Central Processing Unit) 101, a storage device 102 including a nonvolatile storage device, and a communication device 103 for performing communication.
  • the device 100 also includes a unique device 104 necessary for functions unique to the device (for example, display, recording, reproduction, etc.).
  • the unique function includes a process of starting communication between a terminal associated with a predetermined event and the link destination terminal in response to the predetermined event.
  • the storage device 102 stores or incorporates software 110.
  • the software 110 has a plurality of programs and data.
  • the communication server (program) 114 is a program that performs reception and response processing in accordance with a communication standard called HTTP (Hypertext Transfer Protocol) (including an encryption communication standard called HTTPS), and is generally called an HTTP server.
  • the communication client (program) 115 is a program for performing transmission processing with respect to a communication server according to HTTP, and is generally called an HTTP client.
  • the kernel 116 is an operating system and is a set of programs necessary for basic operation of the apparatus.
  • the WEB application 111 is a program that the communication server 114 responds to, for example, a terminal that has accessed the device 100 (communication using HTTP), and is data of a program executed by the terminal.
  • a WEB application includes a connection GUI (program function) 121 described later.
  • the inter-device communication program 112 includes command processing (programs) 122 to 126 for controlling communication between devices performed by the above-described several types of commands and processing those commands.
  • the command processing group is mainly activated by the communication server of the apparatus 100 and performs each command processing.
  • the command processing group includes a PROF command processing 122, a LINK command processing 123, a SEND command processing 124, a RECV command processing 125, and a NULL command processing 126.
  • the inter-device communication data 113 is data that is referred to or set in communication between devices.
  • Mainly information unique to the device 100 (device name, icon information, position information (positioning information of the device by GPS (Global Positioning System), etc.), information of a plurality of virtual terminals, for example, terminal names, terminal URIs, etc.
  • Profile data 127 that describes link information, etc.). If authentication is required for communication between apparatuses, authentication data 128 may be included.
  • the communication server 114 of the apparatus 100 is a program having at least an HTTP reception process 114-1 for performing a reception process according to HTTP and an HTTP response process 114-2 for responding the result according to HTTP. is there. Further, as necessary, it has an encryption communication process 114-3 for performing an encryption communication (HTTPS) and an authentication process 114-4 at the time of reception for processing authentication and approval. In addition, there may be a process 114-10 necessary for the apparatus. Processing 114-10 includes log recording processing, load distribution processing, proxy processing, and other extended processing.
  • the communication client 115 is a program having at least an HTTP transmission process 115-1 for performing a transmission process according to HTTP. Further, as necessary, it has an encryption communication process 115-2 for performing encrypted communication (HTTPS) and an authentication process 115-3 at the time of transmission for processing data transmission necessary for authentication. In addition, there may be a process 115-10 necessary for the apparatus.
  • HTTPS encrypted communication
  • authentication process 115-10 necessary for the apparatus.
  • FIG. 7 is a diagram showing a configuration of a device such as a terminal and a program group.
  • the terminal is a device such as a PC having a WEB browser, a pad terminal, or a smartphone.
  • the terminal 900 includes a CPU 901, a storage device 902 including a nonvolatile storage device, and a communication device 903 for performing communication.
  • the device may include a unique device 904 necessary for the device-specific function.
  • the storage device 902 stores or incorporates terminal software 910.
  • the terminal software 910 has a plurality of programs and data.
  • the WEB browser 915 is a communication client that performs transmission processing on the communication server according to HTTP.
  • the kernel 916 is an operating system.
  • the WEB browser 915 is a program including at least an HTTP transmission process 915-1 that performs transmission processing according to HTTP and a drawing engine 915-4 that executes a response to the HTTP transmission process 915-1. Further, as necessary, it has an encryption communication process 915-2 for performing an encrypted communication and an authentication process 915-3 for processing a data transmission necessary for authentication. In addition, there may be a process 915-10 necessary for the apparatus.
  • FIG. 8 is a diagram showing the processing contents and explanation of the WEB application.
  • the WEB application 111 includes a connection GUI (processing) 121.
  • the WEB application 111 performs other processing 129 (device and unique device control GUI, device and unique device setting GUI, device bookmark GUI, GUI for displaying device handling instructions, Display of an initial screen, display of a MENU for calling each GUI, and the like.
  • the function 121-1 for calling an arbitrary device of the connection GUI 121 and displaying the device as a symbol (icon) includes event control such as a mouse and a touch panel, input (acquisition) of a URI, transmission of a PROF command, storage of profile data It has functions such as drawing icons and terminals.
  • connection GUI 121 for the operation for connecting the called devices has functions such as event control such as a mouse and a touch panel, line drawing, and transmission of a LINK command.
  • FIG. 9 is a diagram showing a program and hardware for processing communication and communication between the terminal, the first device, and the second device.
  • the terminal 900 accesses the first device 100a to acquire a WEB application and transmits a PROF command and a LINK command will be described.
  • the browser 915 uses the device driver of the kernel 916 or the network protocol stack to access or send a command from the communication device 903 to the first device 100 a based on the above-described user operation.
  • This communication includes access by HTTP, transmission of IP packets by TCP / IP (Transmission Control Protocol / Internet Protocol), and physical communication by the communication device via the network NW to which the terminal and the first device can be connected.
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • the communication device 103 receives the IP packet, and the data in the IP packet is passed to the communication server 114 by the kernel protocol stack.
  • the communication server 114 responds to the WEB application in response to the access or causes the inter-device communication program 111 to process the command and data in response to the command.
  • the command processing of the inter-device communication program 111 executes processing corresponding to the command, if it is a PROF command, the profile data is returned to the communication server 114, and if it is a LINK command, the link destination URI is the terminal information in the profile data. Set to.
  • the kernel or other control program or the like causes the communication client 115 to operate. Start up. Then, the communication client transmits a command and transmission data corresponding to the predetermined event to the link destination URI of the virtual terminal associated with the predetermined event by HTTP.
  • the communication server 114 receives the command and the transmission data, and causes the corresponding command processing of the inter-device communication program 111 to execute the command processing, as described above.
  • FIG. 10 is a diagram illustrating processing in which the terminal acquires and executes the WEB application 111.
  • the URI which is the position of the device 100 in the network, is described in the instruction manual or main body of the device.
  • the terminal 900 acquires the URI of the device 100 (S1), executes a communication client that is a WEB browser of the terminal, and accesses the acquired URI (S2).
  • the communication server 114 of the device 100 returns the WEB application 111 to the terminal 900 (S3_2).
  • the terminal 900 receives the WEB application 111 (S3_3), and the WEB browser executes it (S3_4).
  • the WEB application 111 is created by, for example, HTML5 (Hypertext Markup Language 5).
  • HTML5 Hypertext Markup Language 5
  • various processes such as setting and operation of the apparatus 100 can be easily operated from the display screen of the terminal 900 using a graphical interface.
  • the WEB application 111 includes a connection GUI 121 as one of various processing functions.
  • the connection GUI 121 has a function of calling an arbitrary device and displaying the device with a symbol (icon), and a function for connecting the called devices.
  • the device icon As shown in FIGS. 1 and 2, the device icon includes a logical terminal (virtual terminal) icon.
  • the device and terminal icons may be two-dimensional or three-dimensional.
  • the entity accessed by the terminal URI is CGI (Common Gateway Interface).
  • CGI Common Gateway Interface
  • the terminal CGI executes a predetermined program. Therefore, by transmitting a command to the terminal of the apparatus, the inter-device communication program 112 of the apparatus is executed, and command processing corresponding to the type of the command is executed.
  • the command types include profile PROF, link LINK, send SEND, receive RECV, and null NULL.
  • FIG. 11 is a diagram showing processing of a profile command (PROF command) by the terminal.
  • the PROF command is a command that requests the device 100 to respond with the profile data.
  • the connection GUI 121 executed by the terminal 900 transmits a PROF command 310 to an arbitrary terminal of the device 100 (S4).
  • the WEB application When the WEB application is acquired by a response from the apparatus 100, the WEB application has information on the transmission destination URI of the PROF command of the apparatus 100. Therefore, transmission of the PROF command to the apparatus 100 by the connection GUI is automatically performed, for example, at the start of execution of the WEB application.
  • the connection GUI 121 can transmit a PROF command to the device by inputting a URI of a desired device and operating a transmission instruction at the terminal.
  • the communication server 114 of the apparatus 100 executes the PROF command processing 122 (S5_2).
  • the PROF command processing 122 retrieves the profile data 127 from the storage device in the device and passes it to the communication server (S5_3).
  • the communication server returns the profile data 127 to the terminal 900 (S5_4).
  • the connection GUI of the terminal processes the profile data and displays the icon of the device and its terminal based on the profile data, for example (S5_5).
  • the icons are as shown in FIG.
  • the apparatus 100 may confirm whether or not to respond by receiving the PROF command 310 for the purpose of protection from a malicious third party by using a standard authentication function of the network.
  • FIG. 17 is a diagram showing the structure of profile data.
  • the device 100 stores the characteristics of the device and the terminal (virtual terminal) and the current state in the profile data 127.
  • the profile data includes data 127_1 related to the device and data 127_2 related to a plurality of terminals.
  • the device-related data 127_1 includes a device name, device description, device icon information, device position information, and device terminal information.
  • the terminal data 127_2 includes a terminal name, a terminal description, a terminal URI, terminal attribute information, the maximum connectable number of terminals, and terminal link information.
  • the terminal attribute information 127_3 includes a plurality of pieces of data information that can be processed by the terminal.
  • the link information 127_4 of the terminal has a plurality of URIs of link destination terminals set by the LINK command transmitted to the terminal.
  • FIG. 18 is a diagram illustrating an example of data information that can be processed by a terminal, which is terminal attribute information.
  • the data information that can be processed by the terminal includes the type of data (data type) that can be handled by the terminal and the terminal attribute that indicates how the terminal can process the data.
  • Transmission data and reception data are composed of data type and value pairs.
  • data types include true / false values (values are true and false), numeric values (values are numbers), characters (values are characters), and MIME types (values are URIs).
  • the terminal attribute is a combination of a SEND command, a RECV command, and its transmission / reception direction, and has four types (IN, OUT, REQ, ACK).
  • the description of each terminal attribute is as shown in FIG. Accordingly, the link destination terminal of the terminal with the terminal attribute OUT is the terminal attribute IN, and the link destination terminal of the terminal with the terminal attribute IN is also the terminal attribute OUT.
  • the link destination terminal of the terminal with the terminal attribute REQ is the terminal attribute ACK
  • the link destination terminal of the terminal with the terminal attribute ACK is the terminal attribute REQ.
  • Each device holds profile data to form an independent / distributed network configuration. With such a network configuration, even if a device in the network fails, other devices can continue to operate without being affected by the failure. In addition, communication with a device that accumulates information, such as a central server, is not necessary, and communication between terminals of a device that is simple and low-cost can be realized. In addition, the privacy of the user of the device is respected.
  • FIG. 12 is a diagram showing processing of a link command (LINK command) by the terminal.
  • a link refers to a state in which different terminals are logically connected and can communicate with each other, or an action to make such a state.
  • Different terminals may be terminals of different devices or different terminals in the same device.
  • One terminal may be linked to a plurality of different terminals.
  • the LINK command is a command for linking or releasing the link.
  • the function 121- for connecting the terminals of the connection GUI is provided. 2 (FIG. 8), the LINK command 320 is transmitted to the URI of the terminal dragged to connect the apparatus 100 (S8). In FIG. 12, the LINK command is transmitted from the terminal 900 only to the device 100. As described in FIG. 2, when different terminals to be linked are different devices, the LINK command is displayed in the URI of the terminal of each device. Is sent. Transmission of the LINK command itself is performed by a communication client of the WEB browser.
  • the LINK command 320 includes information on whether to link or release, and information on the URI of the link destination partner terminal. In addition, authentication data 128 may be included.
  • the communication server 114 of the apparatus 100 receives the LINK command 320 (S9_1), the communication server 114 executes the LINK command processing 123 (S9_2).
  • the LINK command processing 123 writes the URI of the counterpart terminal included in the LINK command in the link information of the terminal of the LINK command destination URI in the profile data 127 stored in the storage device 102 in the apparatus, and sets it. To do. Thereafter, the LINK command processing 123 may return information indicating whether the processing has succeeded or failed to the terminal 900 (S9_4).
  • the different terminals are linked.
  • a communication client activated in response to the event uses the URI of the terminal associated with the event.
  • a later-described SEND command or RECV command is transmitted to the URI of the link destination terminal.
  • the command type and the transmission data attached to the command are associated with the terminal associated with the event in advance.
  • the apparatus 100 may limit whether or not to receive and process the LINK command 320 for the purpose of protection from a malicious third party by a standard authentication function of the network.
  • FIG. 13 is a diagram illustrating a communication process of a SEND command between the terminal of the first device and the terminal of the second device in the link state.
  • the communication client 115 When a predetermined event corresponding to the terminal of the first device 100a occurs, the communication client 115 is activated. Then, the communication client 115 transmits the SEND command 330 to the link destination terminal of the terminal associated with the predetermined event of the second device 100b (S12).
  • Transmission data 331 is attached to the SEND command 330 and transmitted. As shown in FIG. 3, the transmission data 331 has a data type of a boolean value (boolean) and a value of true (true) or false (false).
  • the SEND command and transmission data are associated with a terminal associated with a predetermined event.
  • the communication server 114 of the second device 100b receives the SEND command 330 (S14_1), the communication server 114 executes the SEND command processing 124 (S14_2).
  • the SEND command processing 124 processes the transmission data 331 as input data to the link destination terminal (S14_3). As a result, a process associated with the link destination terminal of the second device and corresponding to the value of the transmission data is executed. Thereafter, the SEND command processing 124 may respond to the first device 100a with information on whether the rewriting has succeeded or failed in the communication server 114 (S14_4).
  • the second device 100b may receive and process the SEND command 330 after authenticating using the authentication data 128 obtained at the time of linking for the purpose of protection from a malicious third party device or the like.
  • the predetermined event corresponding to the terminal in the first device includes various events. For example, an event of a user operation on a physical operation element of the first device, a power-on event of the first device, an event in which a terminal of the first device receives a SEND command from a terminal of another device Or an event in which a sensor in the first device senses a person.
  • FIG. 14 is a diagram illustrating a communication process of a SEND command in one specific example.
  • the communication client in response to operating the touch panel of the first device, the communication client is activated, sends a SEND command from the terminal associated with the touch panel to the terminal of the linked second device, and the second The communication server of the apparatus causes the SEND command process to execute the recording control process.
  • FIG. 19 is a diagram showing an example of profile data of the first device in one specific example.
  • FIG. 20 is a diagram illustrating an example of profile data of the second device in one specific example.
  • the profile data 127a of the first device in FIG. 19 includes the device name “monitor”, device image information, etc., and the terminal information of the device as the terminal 1 name “touch panel”, the terminal 1 URI1_1, and the terminal 1 attribute information.
  • the profile data 127b of the second device in FIG. 20 includes the name “video camera” of the device, the image information of the device, and the terminal information of the device as the name “recording” of the terminal 1, the URI 2_1 of the terminal 1, and the attributes of the terminal 1
  • the information includes “IN, Boolean”, “ACK, Boolean”, link information of the terminal 1 (set from “none” to “URI1_1 of the linked terminal”), and the like.
  • the terminal 1 “touch panel” of the first device and the terminal 2 “recording” of the second device are set in the link state, and the SEND command can be transmitted (OUT) and received (IN), respectively.
  • the terminal 2 “video input” of the first device and the terminal 2 “video distribution” of the second device are also set in the link state, and transmission (REQ) and response (ACK) of the RECV command are possible.
  • the user touches the touch panel of the first device (S12_1).
  • an event is generated by the kernel function (S12_2).
  • a resident program (daemon) that waits for an event responds to an event that touches the touch panel, and sends a SEND command corresponding to the event + transmission data (Boolean, true), a destination URI, and authentication information in a predetermined table or profile data.
  • the communication client is executed together with the information (S12_3).
  • the above processes S12_1-S12_3 are realized by a configuration unique to the first device.
  • the communication client of the first device transmits a SEND command and transmission data from the terminal of the touch panel to the URI 2_1 of the terminal corresponding to the recording terminal of the second device (S12_4).
  • the communication server of the second device receives the SEND command and the transmission data (S14_1), and executes the SEND command process (S14_2).
  • the recording control process is executed using the true / false value of the transmission data transmitted to the terminal (URI2_1) corresponding to the recording terminal as a parameter (S14_3).
  • the recording control process is either to start recording (true) or stop recording (false) based on the parameter value (true, false) and the setting of the terminal of the second device.
  • This process S14_3 is also realized by a configuration unique to the second device.
  • FIG. 15 is a diagram illustrating a RECV command communication process between the terminal of the first device and the terminal of the second device in the link state.
  • the communication client 115 is activated in response to a predetermined event in the first device 100a, and the communication client 115 sends a RECV command 340 to a terminal of the second device 100b that is a link destination of a terminal associated with the predetermined event. Transmission is performed together with the transmission data 331 (S16).
  • the transmission data 331 includes the requested data type (data type) as shown in FIG.
  • the communication server 114 of the second device 100b executes the RECV command processing 125 (S17_2).
  • the RECV command processing 125 acquires the type (data type) of data requested for the link destination terminal from the transmission data, generates reception data 341 corresponding to the type (S17_3), and receives the reception data 341 as a communication server. 114 (S17_4). Then, the communication server 114 responds with the received data to the first device 100a (S17_5).
  • the second device may execute reception and processing of the RECV command 340 when authentication is performed using the authentication data 128 for the purpose of protection from another device or the like of a malicious third party.
  • the communication client of the first device that has received the received data processes the received data (S18). For example, the first device is controlled according to the received data.
  • FIG. 16 is a diagram showing a RECV command communication process in one specific example.
  • the communication client in response to the power activation event of the first device, transmits a RECV command from the terminal associated with the power activation event to the terminal of the linked second device, and the second device.
  • the RECV command process activated by the communication server in response returns the requested received data to the terminal of the first device.
  • the user activates the power supply of the first device (S16_1).
  • the kernel executes a player (program) that controls the first device and a player control (program) that controls the player (S16_2).
  • the player has, for example, a function of playing and stopping according to an instruction from the player control, and a function of downloading, analyzing, and playing back the video distribution data (S16_3).
  • the activated player control includes the RECV command + transmission data (data type: application / dash + xml, value: none (unique value)) corresponding to the video distribution terminal associated with the power activation event, and the link of the terminal
  • the URI of the terminal (the video distribution terminal of the second device) and authentication information are acquired from a predetermined table and profile data, and the communication client is activated using the acquired information as parameters (S16_4).
  • the RECV command + transmission data is a unique value of the video input terminal associated with power activation.
  • the above processes S16_1 to S16_4 are realized by a configuration unique to the first device.
  • the communication client transmits a RECV command and transmission data to the URI of the video distribution terminal of the second device (S16_5).
  • the communication server of the second device receives the RECV command and transmission data (S17_1). Then, the communication server executes RECV command processing (S17_2). In the RECV command processing, reception data 341 including the URI of the storage location of the video distribution data of the second device is generated as reception data corresponding to the type of transmission data transmitted to the video distribution terminal (URI2_2) (S17_3). This process S17_3 is realized by a configuration unique to the second device.
  • the RECV command process passes the generated received data to the communication server (S17_4).
  • the communication server responds the received data to the video input terminal of the first device (S17_5).
  • the communication client of the first device receives the received data and passes it to the player control (S18_1).
  • the player control instructs the player to play along with the URI of the video distribution data (S18_2).
  • This process S18_2 is realized by a configuration unique to the first device.
  • the player accesses the URI of the video distribution data to acquire and play the video content.
  • the URI of the video distribution data is the position of the storage area for storing the video content in the second device.
  • FIG. 21 is a diagram illustrating a second embodiment.
  • the first device (monitor device) 100a, the second device (video camera) 100b, the third device (lamp) 100c, and the fourth device (air conditioner) 100d display the connection GUI of the terminal 900.
  • the link state is set as shown in the image 121D.
  • the connection GUI issues a LINK command to each device. This is realized by setting the URI of the link destination terminal to each terminal.
  • the first device 100a is a monitor device.
  • a menu for controlling the second to fourth devices can be displayed on the monitor screen.
  • Each menu item is associated with a terminal of the first device 100a.
  • a SEND command or a RECV command is transmitted from the terminal 212a_1 of the first device 100a to the terminal 212b of the second device 100b.
  • Inter-terminal communication is as described above.
  • a SEND command is transmitted from the terminal 212a_2 of the first device to the terminal 212c_1 of the third device 100c.
  • This second menu item is, for example, start of operation. Therefore, the SEND command process of the third device 100c executes a process of lighting the third device 100c corresponding to “true” indicating the start of operation of the transmission data of the SEND command.
  • the SEND command received at the terminal 212c_1 is transferred from the terminal 212c_2 to the terminal 212d of the fourth device 100d. Therefore, the SEND command processing of the fourth device 100d starts air conditioning.
  • Such transfer processing is realized with a configuration unique to the third device 100c so that, for example, player control of the third device 100c can be processed.
  • a plurality of products in the home or the workplace can be networked using the communication control between the virtual terminals of the apparatus of the present embodiment.
  • the configuration required for each home appliance includes programs and data such as a communication server 114, a communication client 115, an inter-device communication program 112, an inter-device communication data 113, a CPU 101, and a storage device 102, the communication device 103, and the like.
  • the WEB application 111 does not necessarily have to be stored in a storage device in the apparatus, and may be downloaded from a predetermined WEB application distribution server to a terminal and installed.
  • the function of the connection GUI of the WEB application allows the user to perform a drag operation to connect the terminals of the device icons on the terminal or the screen of a certain device, thereby
  • the virtual terminals can be connected with a virtual connection cable (in a link state) so that communication between terminals can be performed. Therefore, a plurality of devices can be network-connected without using a complicated physical connection cable. This network connection does not require a large-scale device such as a central server device.
  • a communication device capable of constructing a network connectable state of a plurality of devices by a simple method and performing communication between terminals of the plurality of devices.
  • 100a first device 100b: second device 212: terminal, virtual terminal 900: terminal 111: WEB application 112: inter-device communication program 113: inter-device communication data 114: communication server (program) 115: Communication client (program) 116: Kernel 117: Player (program), Player control (program) 127: Profile data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

簡単に複数の装置間をネットワークで接続し、端子間通信可能にする。 ネットワークを介して通信を開始する通信クライアント手段と、通信の開始に応答する通信サーバ手段と、第1の仮想端子の識別情報とアドレスを有する自己のプロファイル情報を記憶するメモリとを有し、通信サーバ手段は、第1の装置からネットワークを経由して送信される第1のコマンドに応答して、自己のプロファイル情報を第1の装置に返信し、さらに、第1の装置からネットワークを経由して送信される第2のコマンドに応答して、第2のコマンドが有する第2の仮想端子のアドレスを、自己のプロファイル情報内の第1の仮想端子のリンク情報に設定し、通信クライアント手段は、第1の仮想端子に対応付けられた所定のイベントに応答して、第1の仮想端子のリンク情報に設定された第2の仮想端子のアドレスに基づいて、第1の仮想端子から第2の仮想端子に前記ネットワークを介する通信接続を行う、通信装置。

Description

通信装置、通信方法及び通信プログラム
 本発明は,通信装置、通信方法及び通信プログラムに関する。
 一般に装置間、例えばビデオ装置とビデオを表示する表示装置の間は、専用の接続ケーブルを介して接続される。そして、ビデオ装置でコンテンツを選択した後ビデオ再生ボタンを操作すると、ビデオ装置から接続ケーブルを介して再生制御信号が送信され、表示装置にコンテンツが再生される。このように、複数の装置を互いに接続して動作させる場合、一般に専用のコネクタやケーブルにより接続させる。
 一方で、近年、ホームネットワークなど複数の家電を通信ネットワークで接続して動作させることが提案されている。例えば、以下の特許文献1には、装置間の通信を制御する技術が記載されている。また、以下の特許文献2には、ネットワーク端末が記載されている。
特開2014-10608号公報 特開2003-67267号公報
 しかしながら、装置毎にネットワークの通信規格が異なっていたり、装置間ネットワークの管理や通信処理を行うための専用のサーバ装置が必要であるなど、様々な問題が未解決である。そのため、様々な種類の装置をネットワークで接続して動作させることは、一定の専門知識を有する専門家でしか実現することができず、一般ユーザが簡単に実現することは困難である。
 そこで,本開示の第1の側面の目的は,簡単に複数の装置間をネットワーク接続し、端子間通信することができる通信装置、通信方法及び通信プログラムを提供することにある。
 本開示の第1の側面は,ネットワークを介して通信を開始する通信クライアント手段と、前記通信の開始に応答する通信サーバ手段と、第1の仮想端子の識別情報とアドレスを有する自己のプロファイル情報を記憶するメモリとを有し、
 前記通信サーバ手段は、
 第1の装置からネットワークを経由して送信される第1のコマンドに応答して、前記自己のプロファイル情報を、前記第1の装置に返信し、さらに、前記第1の装置から前記ネットワークを経由して送信される第2のコマンドに応答して、前記第2のコマンドが有する第2の仮想端子のアドレスを、前記自己のプロファイル情報内の前記第1の仮想端子のリンク情報に設定し、
 前記通信クライアント手段は、
 前記第1の仮想端子に対応付けられた所定のイベントに応答して、前記第1の仮想端子のリンク情報に設定された前記第2の仮想端子のアドレスに基づいて、前記第1の仮想端子から前記第2の仮想端子に前記ネットワークを介する通信接続を行う通信装置、である。
 第1の側面によれば,簡単に複数の装置間をネットワークで接続し、端子間通信することができる。
本実施の形態における第1、第2の装置間が通信可能になるまでの処理を示す図である。 本実施の形態における第1、第2の装置間が通信可能になるまでの処理を示す図である。 本実施の形態における第1、第2の装置間が通信を行う処理を示す図である。 第1装置、第2装置などの端子間通信を行う装置の構成とプログラム群を示す図である。 第1装置、第2装置などの端子間通信を行う装置の構成とプログラム群を示す図である。 第1装置、第2装置などの端子間通信を行う装置の構成とプログラム群を示す図である。 端末などの機器の構成とプログラム群を示す図である。 WEBアプリケーションの処理内容と説明を示す図である。 端末と第1装置と第2装置間の通信と通信を処理するプログラム及びハードウエアを示す図である。 端末がWEBアプリケーション111を取得、実行する処理を示す図である。 端末によるプロファイルコマンド(PROFコマンド)の処理を示す図である。 端末によるリンクコマンド(LINKコマンド)の処理を示す図である。 リンク状態にある第1装置の端子と第2装置の端子間のセンドコマンド(SENDコマンド)の通信処理を示す図である。 一具体例におけるセンドコマンド(SENDコマンド)の通信処理を示す図である。 リンク状態にある第1装置の端子と第2装置の端子間のレシーブコマンド(RECVコマンド)の通信処理を示す図である。 一具体例におけるレシーブコマンド(RECVコマンド)の通信処理を示す図である。 プロファイルデータの構成を示す図である。 端子の属性情報である端子が処理可能なデータの情報の例を示す図である。 一具体例での第1装置のプロファイルデータの例を示す図である。 一具体例での第2装置のプロファイルデータの例を示す図である。 第2の実施の形態を示す図である。
 [本実施の形態における第1、第2の装置間の接続処理]
 図1、図2は、本実施の形態における第1、第2の装置間が通信可能になるまでの処理を示す図である。また、図3は、本実施の形態における第1、第2の装置間が通信を行う処理を示す図である。以下、端末900により、第1装置100aと第2装置100bとが互いに接続可能になるまでの処理と、その後第1装置と第2装置の仮想端子間で行われる通信処理の例を説明する。
 本実施の形態では、第1装置100aは例えばタッチパネル付き表示装置であり、第2装置100bは例えばビデオカメラ装置である。表示装置は、各種の操作ボタンや、表示画面に表示される操作対象画像(文字列やアイコン)などの物理的な操作エレメントと、物理的なケーブルが接続される接続端子などを有する。また、ビデオカメラ装置にも、各種の操作ボタン(録画ボタン、再生ボタン、停止ボタンなど)である物理的な操作エレメントと、物理的なケーブルが接続される接続端子などを有する。その場合、第1装置100aと第2装置100bには、上記の操作エレメントや接続端子に対応して、仮想端子が設定される。具体的には、第1装置と第2装置それぞれのプロファイル情報に仮想端子が定義され、第1装置の仮想端子と第2装置の仮想端子間で通信ネットワークを介して通信が行われる。したがって、仮想端子は、物理的な端子ではなく、プロファイル情報に設定された仮想的な通信端子(通信ノード)である。また、仮想端子は、前述の物理的な操作エレメントや物理的な接続端子に対応付けられることがあり、さらに操作エレメントや接続端子以外の仮想的な機能に対応付けられる場合もある。
 本実施の形態では、このような仮想端子を、単に端子と呼ぶ。但し、特に物理的な端子と区別する場合は仮想端子と呼ぶ。
 図1において、端末900は、例えば、スマートフォンやパッド端末、パーソナルコンピュータなどである。端末900にはWEBブラウザ(通信クライアント)(WEB:ウェブ)が動作可能であり、端末は、インターネットやイントラネットなどの通信ネットワークを介して、通信ネットワーク上のノードと接続可能である。また、第1装置100aと第2装置100bは、前述の表示装置やビデオカメラ装置などであるが、基盤プログラムであるOS(Operating System)と、通信クライアント(プログラム)と、通信サーバ(プログラム)などがインストールされる。通信クライアントと通信サーバは、例えばHTTP(Hypertext Transfer Protocol)で送信処理を行うプログラムである。
 図1に示されるとおり、最初に利用者が端末900を使用して、第1装置のURI(Uniform Resource Identifier)情報を取得する(S1)。図1の例ではマトリックス型バーコードでURIを取得しているが、他の方法でも取得できる。そして、端末900は、WEBブラウザの通信クライアントにより、取得したURIにアクセスを行い(S2)、第1装置100aは、通信サーバにより、端末からのアクセスに応答して内部の記憶装置に記憶しているWEBアプリケーション(プログラム)111を応答する(S3)。この結果、端末900のブラウザがダウンロードしたWEBアプリケーションを実行し、表示装置にWEBアプリケーションの表示画像121Dを表示する。WEBアプリケーションは、例えばHTML5データである。
 また、表示画像121D内のメニューから接続GUI(WEBアプリケーションが有する一つの処理)(GUI:Graphical User Interface)の項目を選択する操作が行われると、接続GUIが実行され、第1装置100aの任意の端子にプロファイルコマンド(以下PROFコマンド)310を送信する(S4)。WEBアプリケーション111は第1装置のアプリであるので、PROFコマンドの送信先情報を有している。
 そして、第1装置では、通信サーバがPROFコマンドに応答して、内部の記憶装置に記憶しているプロファイルデータ127aを応答する(S5)。プロファイルデータは、第1装置の名称、装置のアイコン情報、URIに加えて、第1装置が有する複数の仮想端子の情報、例えば端子の名称、URI、リンク情報などを有する。具体例は後述する。
 その結果、端末900の接続GUIは、取得したプロファイルデータに基づいて、表示画像121D内に第1装置100aのアイコン211aと、別の装置の追加要求アイコン121D-Bを有する接続GUIの画像を表示する。アイコン211aには、仮想端子のアイコン212も含まれる。
 次に、装置の追加要求アイコンが操作され第2装置のURIが入力または取得されると、端末の接続GUIは、第2装置100bの任意の端子にPROFコマンド310を送信する(S6)。それに応答して、第2装置の通信サーバが内部に記憶しているプロファイルデータ127bを応答する(S7)。その結果、端末900の接続GUIは、取得したプロファイルデータに基づいて、表示画像121D内に第2装置100bのアイコン211bを追加表示する。このアイコンにも仮想端子のアイコンが含まれる。
 前述の装置の追加要求アイコンが表示されなくても、利用者が表示画像121Dの余白領域をタッチして第2装置のURIを入力または取得することで、端末の接続GUIが第2装置にPROFコマンド310を送信するようにしてもよい。または、装置の追加要求アイコンに代えて、ブックマーク内から第2装置を選択するようにしてもよい。さらに、接続GUIの処理を行うWEBアプリケーションは、第1装置または第2装置のいずれかに記憶されているものでよい。
 図2に移り、利用者が、端末900の表示画面121Dに表示されている第1装置と第2装置のアイコンの任意の端子212間を接続するようにドラッグ操作する。例えば、第1装置のアイコン211aの端子212aから接続操作を開始すると、第2装置のアイコン211bの端子のうち第1装置の端子212aと通信可能な端子212bがハイライト表示される。プロファイルデータには、端子の情報として、端子の処理可能なデータの情報と接続数の上限が含まれているので、それに基づいて、接続GUIは、端子212aと通信可能な端子212bを検出できる。また、プロファイルデータには各端子の名称や説明文が含まれ、表示画面に名称や説明文が表示されてもよい。その場合、利用者はどの端子からドラッグ操作すればよいか容易に判別できる。
 そして、利用者が端子212aと端子212bとの間をドラッグ操作すると、端末の接続GUIが、第1装置の端子212aにリンクコマンド(以下LINKコマンド)320aを、第2装置の端子212bにLINKコマンド320bをそれぞれ送信する(S8,S10)。第1装置に送信するLINKコマンド320aには、第2装置の端子212bのURIと接続指示が含まれる。一方、第2装置に送信するLINKコマンド320bには、第1装置の端子212aのURIと接続指示が含まれる。その結果、第1装置100aの通信サーバは、プロファイルデータ内の端子212aのリンク情報にリンク先端子212bのURIを設定する(S9)。同様に、第2装置100bの通信サーバは、プロファイルデータ内の端子212bのリンク情報にリンク先端子212aのURIを設定する(S10)。これらのリンク先端子のURIの設定は、後述するLINKコマンド処理(プログラム)により行われる。そして、端末の接続GUIが、第1装置接続アイコン213を表示する。
 上記のプロファイルデータのリンク情報に互いのリンク先端子のURIを設定することで、第1装置の端子212aと第2装置の端子212bとの間は、リンク状態にされ、互いに通信できる状態になる。具体的な通信処理は後で詳述する。
 図3に移り、第1装置と第2装置間の通信処理について説明する。前述のとおり、LINKコマンドに対するリンク先端子の設定により、第1装置の端子212aと第2装置の端子212bとは、リンク状態にされ、互いに通信できる状態にされている。したがって、各端子212a、212bに対応付けられている所定のイベントの発生に応答して、イベントが発生した装置の通信クライアントが起動する。所定のイベントは、例えば利用者による物理的な操作エレメントの操作や、電源起動などが含まれる。そして、起動した通信クライアントが、プロファイルデータに設定されたリンク先端子のURI宛てに、所定のイベントに対応付けられた端子の処理、例えばデータ送信やデータ要求のためのコマンド及びデータを送信する。さらに、リンク先端子の装置の通信サーバが、受信したコマンド及びデータに対応する処理を実行する。
 このような端子間の通信を端子間通信と称する。端子間通信は、通信クライアントと通信サーバ間のHTTPによる通信である。したがって、所定のイベントに対応付けられた端子のURIとそれとリンク状態にある端子のURIの情報があれば、通信クライアントと通信サーバは、HTTPにより通信することができる。
 図3の処理S12-S14は、第1装置100aの表示画面のタッチパネルに触れると、第2装置100bが録画を開始する例である。まず、利用者は、第1装置のタッチパネルの任意の位置または所定の位置に触れる操作を行うと(S12)、第1装置のOSが通信クライアントを起動し、タッチパネルに対応付けられている端子212aから第2装置100bの端子212bにセンドコマンド(以下SENDコマンド)330と送信データ331を送信する(S13)。送信データ331には、データ型「Boolean」と値「true」が含まれ、値「true」は録画開始の指示を意味する。第1装置のプロファイルデータ内に端子212aのリンク先端子として設定されている他の装置の端子すべてに、SENDコマンドと送信データが送信される。
 そして、第2装置100bの通信サーバが、受信したSENDコマンドを処理するプログラムを起動して、端子212bである録画端子と送信データの値「true」に対応付けられた録画動作を開始する(S14)。
 図3の処理S15-S18は、第1装置の映像入力ボタンの操作が行われると第2装置が映像配信データのURIを応答する例である。利用者が、第1装置の映像入力ボタンを操作すると(S15)、表示装置を制御するプレーヤ制御プログラムが起動する。プレーヤ制御プログラムは、プロファイルデータ内に映像入力端子のリンク先端子として設定されている第2装置の映像配信端子のURIと、レシーブコマンド(以下RECVコマンド)及び送信データとをパラメータにして、通信クライアントを実行する。その結果、通信クライアントはRECVコマンド340と送信データ331を第2装置の映像配信端子に送信する(S16)。
 さらに、第2装置の通信サーバが、受信したRECVコマンドを処理するプログラムを起動し、端子212bである映像入力端子と送信データのデータ型である「application/dash+xml」(映像配信データを示すMIME型)に対応した処理を実行させる。その結果、通信サーバは、RECVコマンドを処理するプログラムが取得した映像配信データのURI「https://[1234:5678::90ab]/video.mpd」を値とする受信データ341を、第1装置の映像入力端子に応答する(S17)。そして、第1装置の通信クライアントは、映像配信データのURIに基づいて映像コンテンツを取得して、表示装置にコンテンツを再生させる(S18)。
 第1装置の所定のイベントは、映像入力ボタンの操作に代えて、第1装置の電源起動などでもよい。
 上記の例では、端末900で接続GUIを実行したが、それに代えて、第1装置または第2装置が端末900のWEBアプリケーションの接続GUIを実行して、PROFコマンドとLINKコマンドの送信と対応する処理を行うようにしてもよい。
 以下、図1、図2、図3の動作を可能にする各装置と端末の構成及びそのプログラム群について説明し、各コマンドに対する動作を詳述する。
 [第1装置、第2装置、端末の構成及びプログラム群]
 図4、図5、図6は、第1装置、第2装置などの端子間通信を行う装置の構成とプログラム群を示す図である。
 図4に示されるとおり、装置100は、中央処理装置であるCPU(Central Processing Unit)101、不揮発性記憶装置を含む記憶装置102、及び通信を行うための通信装置103を有する。さらに、装置100は、これら以外に、その装置固有の機能(例えば表示や録画、再生など)のために必要な固有の装置104も含む。固有の機能には、所定のイベントに応答してそれに対応付けられた端子とそのリンク先端子間の通信を開始する処理も含まれる。さらに、記憶装置102には、ソフトウェア110が記憶または組み込まれている。
 ソフトウェア110は、複数のプログラムとデータを有する。通信サーバ(プログラム)114は、HTTP(Hypertext Transfer Protocol)という通信規格(HTTPSという暗号通信規格を含む)に従って受信ならびに応答の処理を行うプログラムであり、一般にHTTPサーバと呼ばれる。通信クライアント(プログラム)115は、通信サーバに対してHTTPに従って送信の処理を行うプログラムであり、一般にHTTPクライアントと呼ばれる。カーネル116は、オペレーティングシステムであり、装置の基本動作に必要なプログラムの集合である。また、プレーヤプログラム、それを制御するプレーヤ制御プログラム117は、固有の装置104の制御を行う。
 WEBアプリケーション111は、装置100にアクセス(HTTPによる通信)してきた端末などに対して、通信サーバ114が応答するプログラムであり、端末などが実行するプログラムのデータである。WEBアプリケーションに後述する接続GUI(プログラム機能)121が含まれている。
 装置間通信プログラム112は、前述の数種類のコマンドにより行われる装置間の通信を制御し、それらコマンドを処理するためのコマンド処理(プログラム)122~126で構成される。コマンド処理群は、主に、装置100の通信サーバにより起動されてそれぞれのコマンド処理を行う。コマンド処理群には、PROFコマンド処理122、LINKコマンド処理123、SENDコマンド処理124、RECVコマンド処理125、NULLコマンド処理126を有する。
 装置間通信データ113は、装置間の通信で参照されるまたは設定されるデータである。主に、装置100の固有の情報(装置の名称、アイコン情報、位置情報(GPS(Global Positioning System)等による装置の測位情報など)、複数の仮想端子の情報、例えば端子の名称、端子のURI、リンク情報などを有する)を記述しているプロファイルデータ127を有する。また、装置間の通信で認証を必要する場合は、認証データ128を含んでもよい。
 図5に示されるとおり、装置100の通信サーバ114は、少なくとも、HTTPに従った受信処理を行うHTTP受信処理114-1と、その結果をHTTPに従って応答するHTTP応答処理114-2を有するプログラムである。また、必要に応じて、暗号通信(HTTPS)を行うための暗号通信処理114-3や、認証および承認を処理する受信時の認証処理114-4を有する。また、その他、その装置に必要な処理114-10を有する場合がある。処理114-10は、ログ記録処理、負荷分散処理、プロクシ処理、その他の拡張処理などである。
 図6に示されるとおり、通信クライアント115は、少なくとも、HTTPに従った送信処理を行うHTTP送信処理115-1を有するプログラムである。また、必要に応じて、暗号通信(HTTPS)を行うための暗号通信処理115-2や、認証に必要なデータ送信を処理する送信時の認証処理115-3を有する。また、その他、その装置に必要な処理115-10を有する場合がある。
 図7は、端末などの機器の構成とプログラム群を示す図である。端末とは、WEBブラウザを有するPC、パッド端末やスマートフォン等の機器である。端末900は、CPU901、不揮発性記憶装置を含む記憶装置902及び通信を行うための通信装置903を有する。これ以外に、その装置固有の機能のために必要な固有の装置904も構成に含む場合がある。記憶装置902には、端末のソフトウェア910が記憶または組み込まれている。
 端末のソフトウェア910は、複数のプログラムとデータを有する。WEBブラウザ915は、通信サーバに対してHTTPに従って送信の処理を行う通信クライアントである。カーネル916はオペレーティングシステムである。
 そして、WEBブラウザ915は、少なくとも、HTTPに従った送信処理を行うHTTP送信処理915-1と、その応答を実行する描画エンジン915-4を有するプログラムである。また、必要に応じて、暗号通信を行うための暗号通信処理915-2や、認証に必要なデータ送信を処理する認証処理915-3を有する。また、その他、その装置に必要な処理915-10を有する場合がある。
 図8は、WEBアプリケーションの処理内容と説明を示す図である。WEBアプリケーション111は、接続GUI(処理)121を含む。WEBアプリケーション111は、他に、必要に応じて、その他の処理129(装置および固有の装置の制御GUI、装置および固有の装置の設定GUI、装置のブックマークGUI、装置の取扱説明を表示するGUI、初期画面の表示、各GUIを呼び出すMENUの表示など)を含んでも良い。
 接続GUI121の、任意の装置を呼び出してその装置を図柄(アイコン)で表示する機能121-1は、マウスやタッチパネルなどのイベント制御、URIの入力(取得)、PROFコマンドの送信、プロファイルデータの記憶、アイコンや端子の図柄描画などの機能を有する。
 また、接続GUI121の、呼び出した装置の間を接続する操作のための機能121-2は、マウスやタッチパネルなどのイベント制御、線の描画、LINKコマンドの送信などの機能を有する。
 図9は、端末と第1装置と第2装置間の通信と通信を処理するプログラム及びハードウエアを示す図である。まず、端末900が第1装置100aにアクセスしてWEBアプリケーションを取得し、PROFコマンドとLINKコマンドを送信する処理について説明する。
 端末900は、前述の利用者の操作に基づいて、ブラウザ915が、カーネル916のデバイスドライバやネットワークのプロトコルスタックを利用し、通信装置903から第1装置100aにアクセスまたはコマンドを送信する。この通信は、端末と第1装置が接続可能なネットワークNWを介して、HTTPによるアクセスと、TCP/IP(Transmission Control Protocol/Internet Protocol)によるIPパケットの送信と、通信装置による物理的な通信とで行われる。
 第1装置100aでは、通信装置103がIPパケットを受信し、カーネルのプロトコルスタックによりIPパケット内のデータが通信サーバ114に渡される。通信サーバ114は、アクセスに応答してWEBアプリケーションを応答するか、コマンドに応答してコマンドとデータを装置間通信プログラム111に処理させる。
 装置間通信プログラム111のコマンド処理が、コマンドに対応する処理を実行し、PROFコマンドであれば、プロファイルデータを通信サーバ114に応答させ、LINKコマンドであればリンク先URIをプロファイルデータ内の端末情報に設定する。
 次に、第1装置と第2装置間の端末間通信について説明する。第1装置100aで物理的な操作エレメント(表示画面のタッチパネルや映像入力ボタン)を操作したり、電源起動されるなどの所定のイベントが発生すると、カーネルまたはそれ以外の制御プログラム等が通信クライアント115を起動する。そして、通信クライアントが、所定のイベントに対応するコマンドと送信データを、所定のイベントに対応付けられた仮想端子のリンク先URIにHTTPにより送信する。一方、第2装置100bでは、通信サーバ114がコマンドと送信データを受信し、前述と同様に、装置間通信プログラム111の対応するコマンド処理にコマンドの処理を実行させる。
 [WEBアプリケーションの接続GUIの処理]
 図10は、端末がWEBアプリケーション111を取得、実行する処理を示す図である。装置100のネットワークにおける位置であるURIが、その装置の説明書や本体などに記載されている。最初に、端末900が、装置100のURIを取得し(S1)、端末のWEBブラウザである通信クライアントを実行して、取得したURIへアクセスを行う(S2)。装置100の通信サーバ114が、このアクセスに応答して(S3_1)、端末900にWEBアプリケーション111を応答する(S3_2)。端末900は、WEBアプリケーション111を受信し(S3_3)、WEBブラウザがこれを実行する(S3_4)。WEBアプリケーション111は、例えばHTML5(Hypertext Markup Language 5)によって作成されている。WEBアプリケーションを実行することで、装置100の設定や動作などの様々な処理を、端末900の表示画面からグラフィカルなインターフェースで容易に操作することができる。
 WEBアプリケーション111は、様々な処理機能のひとつに接続GUI121がある。接続GUI121は、任意の装置を呼び出してその装置を図柄(アイコン)で表示するという機能や、呼び出した装置の間を接続する操作のための機能を持つ。装置のアイコンについては、図1、図2で示したように、装置のアイコンに論理的な端子(仮想端子)のアイコンが含まれる。装置と端子のアイコンは、平面的であってもよく、立体的であってもよい。
 端子との通信で使用されるデータを、コマンドと呼ぶ。端子のURIによってアクセスされる実体は、CGI(Common Gateway Interface)である。端子のCGIはアクセスされると、所定のプログラムを実行する。したがって、装置の端子にコマンドを送信することで、装置の装置間通信プログラム112が実行され、そのコマンドの種類に応じたコマンド処理が実行される。コマンドの種類には、前述したとおり、プロファイルPROF、リンクLINK、センドSEND、レシーブRECV、ヌルNULLなどがある。
 図11は、端末によるプロファイルコマンド(PROFコマンド)の処理を示す図である。PROFコマンドは、装置100にそのプロファイルデータを応答するように要求するコマンドである。端末900で実行されている接続GUI121が、装置100の任意の端子に対して、PROFコマンド310を送信する(S4)。WEBアプリケーションが装置100からの応答により取得されている場合、そのWEBアプリケーションは装置100のPROFコマンドの送信先URIの情報を有する。したがって、接続GUIによるPROFコマンドの装置100への送信は、例えばWEBアプリケーションの実行開始時に自動的に行われる。または、端末で利用者が所望の装置のURIを入力して送信指示の操作をすることで、接続GUI121がその装置にPROFコマンドを送信することもできる。
 装置100の通信サーバ114は、PROFコマンドを受信すると(S5_1)、PROFコマンド処理122を実行する(S5_2)。PROFコマンド処理122は、装置内の記憶装置からプロファイルデータ127を取り出し、これを通信サーバに渡す(S5_3)。通信サーバは、プロファイルデータ127を端末900に応答する(S5_4)。端末の接続GUIは、プロファイルデータを処理して、例えば、プロファイルデータに基づいて、装置とその端子のアイコンを表示する(S5_5)。アイコンは、図1に示したとおりである。
 装置100は、悪意のある第三者からの保護を目的に、PROFコマンド310を受信して応答するか否かを、ネットワークの標準的な認証機能などによって確認してもよい。
 図17は、プロファイルデータの構成を示す図である。装置100は、装置および端子(仮想端子)の特徴や現在の状態を、プロファイルデータ127に記憶する。プロファイルデータは、装置に関するデータ127_1と、複数の端子に関するデータ127_2を有する。装置に関するデータ127_1は、装置名称、装置の説明文、装置のアイコン情報、装置の位置情報、装置の端子情報を有する。端子に関するデータ127_2は、端子の名称、端子の説明文、端子のURI、端子の属性情報、端子の最大接続可能数、端子のリンク情報を有する。
 端子の属性情報127_3は、その端子が処理可能なデータの情報を複数有する。また、端子のリンク情報127_4は、その端子に対して送信されたLINKコマンドで設定されるリンク先端子のURIを複数有する。
 図18は、端子の属性情報である端子が処理可能なデータの情報の例を示す図である。端子が処理可能なデータの情報は、その端子が扱うことのできるデータの種類(データ型)と、その端子がデータをどのように処理できるかを表した端子属性とを有する。送信データや受信データは、データ型と値の組により構成される。
 図示されるとおり、データ型には、真偽値(値は真と偽)、数値(値は数字)、文字(値は文字)、MIME型(値はURI)がある。また、端子属性とは、SENDコマンド、RECVコマンド、およびその送受信方向の組み合わせで、4種類(IN、OUT、REQ、ACK)を有する。端子属性それぞれについての説明は、図18に示されるとおりである。したがって、端子属性OUTの端子のリンク先端子は端子属性INであり、端子属性INの端子のリンク先端子は端子属性OUTでもある。同様に、端子属性REQの端子のリンク先端子は端子属性ACKであり、端子属性ACKの端子のリンク先端子は端子属性REQである。このような端子属性とデータ型に基づいて、前述の図2で説明した表示画像121Dでの接続先候補の端子のハイライト化が行われる。
 それぞれの装置がプロファイルデータを保持することで、独立・分散型のネットワーク形態を構成する。このようなネットワーク形態であれば、ネットワークにおいてある装置が故障しても、他の装置はその影響を受けずに動作し続けることができる。また、中央サーバのような、情報を集積する装置との通信も必要なくなり、簡便で低コストである装置の端子間通信を実現できる。また、装置の利用者のプライバシーが尊重される。
 図12は、端末によるリンクコマンド(LINKコマンド)の処理を示す図である。本実施の形態では、リンクとは、異なる端子が論理的に接続されて互いの通信が可能な状態のこと、またはそのような状態にする行為をいう。異なる端子は、それぞれ異なる装置の端子でもよいし、同一装置内の異なる端子でもよい。また、1つの端子が、異なる複数の端子とリンクしてもよい。LINKコマンドは、リンクする、または、リンクを解除するためのコマンドである。
 図2で説明したとおり、端末900の接続GUI121による表示画面上で、利用者が異なる端子間を接続するようにドラッグ操作をすると、接続GUIが有する端子間を接続する操作のための機能121-2(図8)により、装置100の接続するようドラッグ操作された端子のURIに対して、LINKコマンド320が送信される(S8)。図12には、端末900から装置100だけにLINKコマンドが送信されているが、図2で説明したとおり、リンク状態にしたい異なる端子が異なる装置の場合、それぞれの装置の端子のURIにLINKコマンドが送信される。LINKコマンドの送信そのものは、WEBブラウザの通信クライアントにより行われる。
 LINKコマンド320は、リンクをするか解除するかの情報、および、リンク先の相手端子のURIの情報を含んでいる。これに加えて、認証データ128を含んでもよい。
 装置100の通信サーバ114は、LINKコマンド320を受信すると(S9_1)、LINKコマンド処理123を実行する(S9_2)。LINKコマンド処理123は、装置内の記憶装置102に記憶されているプロファイルデータ127のうち、LINKコマンドの送信先URIの端子のリンク情報に、LINKコマンドに含められた相手端子のURIを書き込み、設定する。その後、LINKコマンド処理123は、通信サーバ114に処理が成功したか失敗したかの情報を端末900に応答してもよい(S9_4)。
 このようにプロファイルデータ127内のリンク情報にリンク先端子のURIが設定されることで、異なる端子間がリンク状態にされる。そして、利用者が一方の端子に関連付けられた物理的な操作エレメントを操作するなど所定のイベントが発生すると、イベントに応答して起動された通信クライアントが、そのイベントに関連付けられた端子のURIからリンク先端子のURIに、後述するSENDコマンドまたはRECVコマンドを送信する。コマンドの種類とコマンドに添付される送信データは、イベントに関連付けられた端子にあらかじめ対応付けられている。
 なお、装置100は、悪意のある第三者からの保護を目的に、LINKコマンド320を受信して処理するか否かを、ネットワークの標準的な認証機能などによって制限してもよい。
 [端子間通信の処理]
 次に、LINKコマンドによりリンク状態に設定された端子間の通信の処理について説明する。端子間の通信では、例えば、データの送信を行うSENDコマンドと、データの受信を依頼するRECVコマンドと、応答用などに使用されるNULLコマンドが送信される。NULLコマンドは、例えば、通信中に何らかの異常により正しい応答ができない場合、受信したコマンドを受理できない場合などに使用される。NULLコマンドを受信した場合、装置は特に何も実行しない。
 [SENDコマンド]
 図13は、リンク状態にある第1装置の端子と第2装置の端子間のSENDコマンドの通信処理を示す図である。第1装置100aの端子に対応する所定のイベントが発生すると、通信クライアント115が起動する。そして、通信クライアント115が、第2装置100bの所定のイベントに対応付けられた端子のリンク先の端子に対し、SENDコマンド330を送信する(S12)。SENDコマンド330には送信データ331が添付されて送信される。送信データ331は、図3に示したとおり、データ型が真偽値(boolean)で、値が真(true)または偽(false)である。SENDコマンドと送信データは、所定イベントに対応付けられた端子に対応付けされている。
 第2装置100bの通信サーバ114は、SENDコマンド330を受信すると(S14_1)、SENDコマンド処理124を実行する(S14_2)。SENDコマンド処理124は、送信データ331をリンク先端子への入力データとして処理する(S14_3)。その結果、第2装置のリンク先端子に対応付けられた処理であって、送信データの値に対応する処理が実行される。その後、SENDコマンド処理124は、通信サーバ114に書き換えが成功したか失敗したかの情報を第1装置100aに応答してもよい(S14_4)。
 第2装置100bは、悪意のある第三者の装置などからの保護を目的に、リンク時に入手した認証データ128を利用して認証した後、SENDコマンド330の受信と処理をおこなってもよい。
 上記の第1装置での端子に対応する所定のイベントは、様々なイベントが含まれる。例えば、第1装置の物理的な操作エレメントへの利用者による操作のイベントや、第1装置の電源起動のイベントや、第1装置のある端子が他の装置の端子からSENDコマンドを受信するイベントや、第1装置内のセンサが人間を感知したイベントなどがある。
 図14は、一具体例におけるSENDコマンドの通信処理を示す図である。一具体例では、第1装置のタッチパネルを操作したことに応答して、通信クライアントが起動し、タッチパネルに対応付けられた端子からリンク先の第2装置の端子にSENDコマンドを送信し、第2装置の通信サーバがSENDコマンド処理に録画制御処理を実行させる。
 図19は、一具体例での第1装置のプロファイルデータの例を示す図である。また、図20は、一具体例での第2装置のプロファイルデータの例を示す図である。
 図19の第1装置のプロファイルデータ127aは、装置の名称「モニタ」、装置の画像情報などと、装置の端子情報として、端子1の名称「タッチパネル」、端子1のURI1_1、端子1の属性情報として「OUT, Boolean」「ACK, Boolean」、端子1のリンク情報(「なし」から「リンクしている端子のURI2_1」に設定されている。)などを有する。また、端子2の名称「映像入力」、端子2のURI1_2、端子2の属性情報として「REQ, application/dash+xml」、端子2のリンク情報(「なし」から「リンクしている端子のURI2_2」に設定されている。)などを有する。
 図20の第2装置のプロファイルデータ127bは、装置の名称「ビデオカメラ」、装置の画像情報などと、装置の端子情報として、端子1の名称「録画」、端子1のURI2_1、端子1の属性情報として「IN, Boolean」「ACK, Boolean」、端子1のリンク情報(「なし」から「リンクしている端子のURI1_1」に設定されている。)などを有する。また、端子2の名称「映像配信」、端子2のURI2_2、端子2の属性情報として「ACK, application/dash+xml」、端子2のリンク情報(「なし」から「リンクしている端子のURI1_2」に設定されている。)などを有する。
 したがって、第1装置の端子1「タッチパネル」と第2装置の端子2「録画」はリンク状態に設定され、SENDコマンドの送信(OUT)と受信(IN)がそれぞれ可能である。また、第1装置の端子2「映像入力」と第2装置の端子2「映像配信」もリンク状態に設定され、RECVコマンドの送信(REQ)と応答(ACK)がそれぞれ可能である。
 図14において、利用者が第1装置のタッチパネルに触れる(S12_1)。タッチパネルに触れると、カーネルの機能によりイベントが発生する(S12_2)。イベントを待ち受ける常駐プログラム(デーモン)が、タッチパネルを触れたイベントに応答して、イベントに対応するSENDコマンド+送信データ(Boolean, true)と、送信先URIと、認証情報を所定のテーブルやプロファイルデータから取得して、それらの情報とともに通信クライアントを実行する(S12_3)。上記の処理S12_1―S12_3は、第1装置に固有の構成により実現される。
 そして、第1装置の通信クライアントが、タッチパネルの端子から第2装置の録画端子に対応する端子のURI2_1に、SENDコマンドと送信データを送信する(S12_4)。
 一方、第2装置の通信サーバが、SENDコマンドと送信データを受信し(S14_1)、SENDコマンド処理を実行する(S14_2)。そして、SENDコマンド処理は、録画端子に対応する端子(URI2_1)に送信された送信データの真偽値をパラメータとして、録画制御処理を実行する(S14_3)。具体的には、録画制御処理は、パラメータ値(true, false)と、第2装置の端子の設定に基づき、録画を開始する(true)または録画を停止する(false)のいずれかである。この処理S14_3も、第2装置に固有の構成で実現される。
 [RECVコマンド]
 図15は、リンク状態にある第1装置の端子と第2装置の端子間のRECVコマンドの通信処理を示す図である。第1装置100aでの所定のイベントに応答して通信クライアント115が起動し、通信クライアント115が、所定イベントに対応付けられた端子のリンク先である第2装置100bの端子に、RECVコマンド340を送信データ331と共に送信する(S16)。送信データ331には、図3に示したような要求するデータの種類(データ型)が含まれている。
 第2装置100bの通信サーバ114は、RECVコマンド340を受信すると(S17_1)、RECVコマンド処理125を実行する(S17_2)。RECVコマンド処理125は、リンク先の端子に対して要求されたデータの種類(データ型)を送信データから取得し、種類に対応する受信データ341を生成し(S17_3)、受信データ341を通信サーバ114に渡す(S17_4)。そして、通信サーバ114は、受信データを第1装置100aに応答する(S17_5)。
 第2装置は、悪意のある第三者の別の装置などからの保護を目的に、認証データ128を利用して認証した場合に、RECVコマンド340の受信と処理を実行してもよい。
 そして、受信データを受信した第1装置の通信クライアントが受信データを処理する(S18)。たとえば、受信データに従って第1装置を制御する。
 図16は、一具体例におけるRECVコマンドの通信処理を示す図である。一具体例では、第1装置の電源起動イベントに応答して、通信クライアントが、電源起動イベントに対応付けられた端子からそのリンク先の第2装置の端子にRECVコマンドを送信し、第2装置の通信サーバによって起動されたRECVコマンド処理が、要求されている受信データを第1装置の端子に応答する。
 まず、利用者が第1装置の電源を起動する(S16_1)。電源起動に伴いカーネルが第1装置を制御するプレーヤ(プログラム)とそのプレーヤを制御するプレーヤ制御(プログラム)を実行する(S16_2)。プレーヤは、例えば、プレーヤ制御からの指示により再生や停止を行う機能と、映像配信データをダウンロードし、解析し、再生する機能を有する(S16_3)。一方、起動したプレーヤ制御は、電源起動イベントに対応付けられた映像配信端子に対応するRECVコマンド+送信データ(データ型:application/dash+xml,値:なし(固有値))と、その端子のリンク先端子のURI(第2装置の映像配信端子)と、認証情報を、所定のテーブル及びプロファイルデータから取得し、取得情報をパラメータとして通信クライアントを起動する(S16_4)。RECVコマンド+送信データは、電源起動に対応付けられた映像入力端子の固有値である。上記の処理S16_1~S16_4は、第1装置に固有の構成により実現される。
 そして、通信クライアントが、第2装置の映像配信端子のURIに、RECVコマンドと送信データを送信する(S16_5)。
 一方、第2装置の通信サーバが、RECVコマンドと送信データを受信する(S17_1)。そして、通信サーバがRECVコマンド処理を実行する(S17_2)。RECVコマンド処理は、映像配信端子(URI2_2)に送信された送信データの種類に応じた受信データとして、第2装置の映像配信データの保存場所のURIを含む受信データ341を生成する(S17_3)。この処理S17_3は、第2装置に固有の構成により実現される。
 そして、RECVコマンド処理は、生成した受信データを通信サーバに渡す(S17_4)。これに応答して、通信サーバが受信データを第1装置の映像入力端子に応答する(S17_5)。
 さらに、第1装置の通信クライアントが受信データを受信し、プレーヤ制御に渡す(S18_1)。プレーヤ制御は、映像配信データのURIとともに、プレーヤに再生を指示する(S18_2)。この処理S18_2は第1装置に固有の構成により実現される。
 その後、プレーヤは、映像配信データのURIにアクセスして映像コンテンツを取得して再生する。図16の例では、映像配信データのURIは、第2装置内の映像コンテンツを保存する記憶領域の位置である。
 [第2の実施の形態]
 図21は、第2の実施の形態を示す図である。図21の実施の形態では、第1装置(モニタ装置)100a、第2装置(ビデオカメラ)100b、第3装置(ランプ)100c、第4装置(エアコン)100dが、端末900の接続GUIの表示画像121Dに示すようにリンク状態に設定されている。このようなリンク状態は、利用者が、接続GUIの表示画面121Dで各装置のアイコン211a~211dの端子間を接続するようにドラッグ操作することに応答して、接続GUIがLINKコマンドを各装置の端子に送信し、端子それぞれにリンク先端子のURIを設定することにより実現される。
 第1装置100aは、モニタ装置であり、一例として、そのモニタ画面に第2~第4装置を制御するためのメニューが表示可能にされている。そして、各メニュー項目が、第1装置100aの端子に対応付けられている。
 たとえば、第1装置100aのモニタ画面の第1のメニュー項目をタッチするイベントに応答して、第1装置100aの端子212a_1からSENDコマンドまたはRECVコマンドが第2装置100bの端子212bに送信される。端子間通信は前述のとおりである。
 また、第1装置100aのモニタ画面の第2のメニュー項目をタッチするイベントに応答して、第1装置の端子212a_2から第3装置100cの端子212c_1にSENDコマンドが送信される。この第2のメニュー項目は、例えば運転開始である。そこで、第3装置100cのSENDコマンド処理は、SENDコマンドの送信データの運転開始を示す「true」に対応する第3装置100cを点灯する処理を実行する。
 さらに、第3装置100cのSENDコマンド処理は、端子212c_1で受信したSENDコマンドを、端子212c_2から第4装置100dの端子212dに転送する。そこで、第4装置100dのSENDコマンド処理は、空調を開始する。このような転送処理は、例えば、第3装置100cのプレーヤ制御などが処理できるように第3装置100cに固有な構成で実現される。
 図21の第2の実施の形態に示されるとおり、本実施の形態の装置の仮想端子間の通信制御を利用して、家庭内のまたは職場内の複数の製品をネットワーク化することができる。各家電製品に必要な構成は、図4,5,6に示したとおり、通信サーバ114、通信クライアント115、装置間通信プログラム112、装置間通信データ113などのプログラムやデータと、CPU101、記憶装置102、通信装置103などのハードウエアである。WEBアプリケーション111は、必ずしも装置内の記憶装置に記憶されている必要はなく、所定のWEBアプリケーション配信サーバから端末にダウンロードされインストールされても良い。
 以上の通り、本実施の形態によれば、WEBアプリケーションの接続GUIの機能により、利用者は端末またはある装置の画面上で装置アイコンの端子間を接続するドラッグ操作をすることで、各装置の仮想端子間を仮想の接続ケーブルで接続して(リンク状態にして)、端子間通信可能な状態にすることができる。したがって、煩雑な物理的な接続ケーブルを使用せずに複数の装置間をネットワーク接続することができる。このネットワーク接続は、中央サーバ装置などの大規模な装置を必要としない。
 複数の装置のネットワーク接続可能状態を簡便な方法で構築することができ、複数の装置の端子間通信を行うことができる通信装置、通信方法及び通信プログラムを提供する。
100a:第1装置
100b:第2装置
212:端子、仮想端子
900:端末
111:WEBアプリケーション
112:装置間通信プログラム
113:装置間通信データ
114:通信サーバ(プログラム)
115:通信クライアント(プログラム)
116:カーネル
117:プレーヤ(プログラム)、プレーヤ制御(プログラム)
127:プロファイルデータ

Claims (13)

  1.  ネットワークを介して通信を開始する通信クライアント手段と、
     前記通信の開始に応答する通信サーバ手段と、
     第1の仮想端子の識別情報とアドレスを有する自己のプロファイル情報を記憶するメモリとを有し、
     前記通信サーバ手段は、
     第1の装置からネットワークを経由して送信される第1のコマンドに応答して、前記自己のプロファイル情報を、前記第1の装置に返信し、さらに、前記第1の装置から前記ネットワークを経由して送信される第2のコマンドに応答して、前記第2のコマンドが有する第2の仮想端子のアドレスを、前記自己のプロファイル情報内の前記第1の仮想端子のリンク情報に設定し、
     前記通信クライアント手段は、
     前記第1の仮想端子に対応付けられた所定のイベントに応答して、前記第1の仮想端子のリンク情報に設定された前記第2の仮想端子のアドレスに基づいて、前記第1の仮想端子から前記第2の仮想端子に前記ネットワークを介する通信接続を行う、通信装置。
  2.  前記通信クライアント手段は、前記通信接続を介して前記第1の仮想端子から前記第2の仮想端子に第3のコマンドを送信する、請求項1に記載の通信装置。
  3.  前記通信サーバ手段は、前記第2の仮想端子から前記第1の仮想端子に送信される第3のコマンドに応答して、前記第1の仮想端子に対応する所定の処理を実行する、請求項1に記載の通信装置。
  4.  前記第1の仮想端子に対応する所定の処理は、前記第3のコマンドに添付された送信データにも対応する処理を有する、請求項3に記載の通信装置。
  5.  前記第1の仮想端子に対応する所定の処理は、前記第3のコマンドに添付された送信データに対応する受信データを生成し、前記第2の仮想端子に前記受信データを返信する処理を有する、請求項3に記載の通信装置。
  6.  第1の装置からネットワークを経由して送信される第1のコマンドに応答して、第1の仮想端子の識別情報とアドレスとを有する自己のプロファイル情報を、前記第1の装置に返信し、
     前記第1の装置から前記ネットワークを経由して送信される第2のコマンドに応答して、前記第2のコマンドが有する第2の仮想端子のアドレスを、前記自己のプロファイル情報内の前記第1の仮想端子のリンク情報に設定し、
     前記第1の仮想端子に対応付けられた所定のイベントに応答して、前記第1の仮想端子のリンク情報に設定された前記第2の仮想端子のアドレスに基づいて、前記第1の仮想端子から前記第2の仮想端子に前記ネットワークを介する通信接続を行う、処理をコンピュータに実行させる通信プログラム。
  7.  前記処理は、さらに、
     前記通信接続を介して前記第1の仮想端子から前記第2の仮想端子に第3のコマンドを送信することを有する、請求項6に記載の通信プログラム。
  8.  前記処理は、さらに、
     前記第2の仮想端子から前記第1の仮想端子に送信される第3のコマンドに応答して、前記第1の仮想端子に対応する所定の処理を実行する、請求項6に記載の通信プログラム。
  9.  第1の装置からネットワークを経由して送信される第1のコマンドに応答して、第1の仮想端子の識別情報とアドレスとを有する自己のプロファイル情報を、前記第1の装置に返信し、
     前記第1の装置から前記ネットワークを経由して送信される第2のコマンドに応答して、前記第2のコマンドが有する第2の仮想端子のアドレスを、前記自己のプロファイル情報内の前記第1の仮想端子のリンク情報に設定し、
     前記第1の仮想端子に対応付けられた所定のイベントに応答して、前記第1の仮想端子のリンク情報に設定された前記第2の仮想端子のアドレスに基づいて、前記第1の仮想端子から前記第2の仮想端子に前記ネットワークを介する通信接続を行う、処理を有する通信方法。
  10.  前記処理は、さらに、
     前記通信接続を介して前記第1の仮想端子から前記第2の仮想端子に第3のコマンドを送信することを有する、請求項9に記載の通信方法。
  11.  前記処理は、さらに、
     前記第2の仮想端子から前記第1の仮想端子に送信される第3のコマンドに応答して、前記第1の仮想端子に対応する所定の処理を実行する、請求項9に記載の通信方法。
  12.  第1の装置及び第2の装置に第1のコマンドを送信し、
     前記第1のコマンドに応答して返信される、前記第1の装置の第1の仮想端子の識別情報とアドレスを有する第1のプロファイル情報と、前記第2の装置の第2の仮想端子の識別情報とアドレスを有する第2のプロファイル情報に基づいて、前記第1の仮想端子の画像を有する前記第1の装置の第1のアイコンと、前記第2の仮想端子の画像を有する前記第2の装置の第2のアイコンとを表示し、
     前記第1のアイコンの第1の仮想端子の画像と前記第2のアイコンの第2の仮想端子の画像とを互いに接続する入力操作に応答して、前記第1の装置の前記第1の仮想端子に前記第2の仮想端子のアドレスを設定させる第2のコマンドを前記第1の装置に送信し、前記第2の装置に前記第2の仮想端子に前記第1の仮想端子のアドレスを設定させる第3のコマンドを前記第2の装置に送信する、
    処理をコンピュータに実行させる通信プログラム。
  13.  前記第1のプロファイル情報は、前記第1の装置と第1の仮想端子の画像情報を有し、
     前記第2のプロファイル情報は、前記第2の装置と第2の仮想端子の画像情報を有し、
     前記第1のアイコンと前記第2のアイコンが、前記画像情報に基づいて表示される、請求項12に記載の通信プログラム。
PCT/JP2016/059908 2016-03-28 2016-03-28 通信装置、通信方法及び通信プログラム WO2017168512A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201680084364.XA CN108885592A (zh) 2016-03-28 2016-03-28 通信装置、通信方法以及通信程序
JP2018507836A JP6764117B2 (ja) 2016-03-28 2016-03-28 通信装置、通信方法及び通信プログラム
EP16896732.1A EP3438833A4 (en) 2016-03-28 2016-03-28 COMMUNICATION DEVICE, COMMUNICATION PROCESS AND COMMUNICATION PROGRAM
PCT/JP2016/059908 WO2017168512A1 (ja) 2016-03-28 2016-03-28 通信装置、通信方法及び通信プログラム
US16/133,026 US20190020727A1 (en) 2016-03-28 2018-09-17 Communication device, communication method, and communication program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/059908 WO2017168512A1 (ja) 2016-03-28 2016-03-28 通信装置、通信方法及び通信プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/133,026 Continuation US20190020727A1 (en) 2016-03-28 2018-09-17 Communication device, communication method, and communication program

Publications (1)

Publication Number Publication Date
WO2017168512A1 true WO2017168512A1 (ja) 2017-10-05

Family

ID=59963600

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/059908 WO2017168512A1 (ja) 2016-03-28 2016-03-28 通信装置、通信方法及び通信プログラム

Country Status (5)

Country Link
US (1) US20190020727A1 (ja)
EP (1) EP3438833A4 (ja)
JP (1) JP6764117B2 (ja)
CN (1) CN108885592A (ja)
WO (1) WO2017168512A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324451A (ja) * 2002-05-08 2003-11-14 Sony Corp 信号処理システム、信号出力装置、信号入力装置及び通信制御方法
WO2013014874A1 (ja) * 2011-07-28 2013-01-31 パナソニック株式会社 Gui生成装置、集積回路、gui生成方法、gui生成プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1188291B1 (en) * 1999-06-11 2005-04-27 Microsoft Corporation General api for remote control of devices
EP1172721A1 (en) * 2000-07-10 2002-01-16 Sony International (Europe) GmbH Method for controlling network devices via a MMI
JP5350004B2 (ja) * 2009-02-19 2013-11-27 キヤノン株式会社 通信装置、通信装置の制御方法及びプログラム
KR101746226B1 (ko) * 2010-12-22 2017-06-12 삼성전자주식회사 유피엔피에서 스마트 그리드를 이용하여 정보 교환을 수행하기 위한 방법
JP5953984B2 (ja) * 2012-06-29 2016-07-20 ソニー株式会社 通信制御装置、通信制御方法、プログラム、及び通信制御システム
US10608837B2 (en) * 2014-01-06 2020-03-31 Samsung Electronics Co., Ltd. Control apparatus and method for controlling the same
US10200523B2 (en) * 2014-04-28 2019-02-05 Koninklijke Philips N.V. Wireless communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324451A (ja) * 2002-05-08 2003-11-14 Sony Corp 信号処理システム、信号出力装置、信号入力装置及び通信制御方法
WO2013014874A1 (ja) * 2011-07-28 2013-01-31 パナソニック株式会社 Gui生成装置、集積回路、gui生成方法、gui生成プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3438833A4 *

Also Published As

Publication number Publication date
JP6764117B2 (ja) 2020-09-30
CN108885592A (zh) 2018-11-23
EP3438833A4 (en) 2019-11-13
EP3438833A1 (en) 2019-02-06
US20190020727A1 (en) 2019-01-17
JPWO2017168512A1 (ja) 2019-01-31

Similar Documents

Publication Publication Date Title
KR20200075795A (ko) 앱을 다운로드하는 방법 및 앱을 실행시키는 방법
US10063553B2 (en) Programmable display
US9578113B2 (en) Method and apparatus for transferring remote session data
US9639623B2 (en) Method for remotely controlling a video playing within a first web page at a first device from a second device using a document object model
JP2006323597A (ja) ネットワーク家電制御システム
JP5889437B2 (ja) パラメータ設定システムおよび情報処理装置
WO2016044809A1 (en) Method and system for controlling devices with a chat interface
US11824942B2 (en) Communication system, information processing apparatus, and information processing method
JP4541028B2 (ja) Webサーバを利用した遠隔操作制御プログラム
EP3748492B1 (en) Downloading and launching an app on a second device from a first device
KR20120008401A (ko) 홈 네트워크에서 멀티캐스트 메시지를 이용하여 복수 개의 원격 사용자 인터페이스 서버들을 제어하기 위한 장치 및 방법
JP6575311B2 (ja) ネットワークシステムおよび制御装置
WO2017168512A1 (ja) 通信装置、通信方法及び通信プログラム
JP2011512567A (ja) 装置間通信のための方法およびシステム
JP6538675B2 (ja) データ処理システム、センタ装置、及びプログラム
JP2020194556A (ja) 通信装置、通信方法及び通信プログラム
JP5244781B2 (ja) Webサーバ及び方法
JP2005149336A (ja) ストレージ管理方法及びその装置
WO2022230483A1 (en) Method and user device for diagnosing and/or controlling an industrial controller
JP4805199B2 (ja) シナリオ作成プログラム及びシナリオ作成装置
US20210336999A1 (en) System and method for workspace sharing
US20240297908A1 (en) System and method for workspace sharing
JP6141785B2 (ja) 接続システム、接続サーバ、接続方法およびプログラム
JP5194670B2 (ja) ウェブサービスシステム、ウェブサービス提供装置およびプログラム
JP2012231265A (ja) 中継サーバ及び中継通信システム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018507836

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016896732

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016896732

Country of ref document: EP

Effective date: 20181029

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16896732

Country of ref document: EP

Kind code of ref document: A1