Communication management device, communication system, communication management method, and program

The communication management device optimizes bandwidth control by determining network topology and adjusting limits among terminal devices, addressing the limitations of web browser API restrictions and enhancing QoS in communication systems.

JP7823375B2Active Publication Date: 2026-03-04RICOH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-11-30
Publication Date
2026-03-04

AI Technical Summary

Technical Problem

Conventional communication systems using web browser APIs are limited in their ability to optimize bandwidth control due to security or privacy restrictions, preventing access to network topology information, which hinders effective QoS management.

Method used

A communication management device that determines network topology based on terminal device communications and adjusts bandwidth limits accordingly, optimizing bandwidth control without requiring a special relay device.

Benefits of technology

Enables optimized bandwidth control based on network topology information, ensuring high-quality content delivery by limiting communication bandwidth among terminal devices sharing the same network.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007823375000001
    Figure 0007823375000001
  • Figure 0007823375000002
    Figure 0007823375000002
  • Figure 0007823375000003
    Figure 0007823375000003
Patent Text Reader

Abstract

To optimize bandwidth control on the basis of network topology information in a communication system that transmits / receives content data by a plurality of terminal devices' using an API of a Web browser.SOLUTION: A communication management device has: a communication management part configured to manage first communication that a terminal device transmits content data to another terminal device via a relay device; a reception part configured to receive from the terminal device a result of determination showing whether or not second communication with the another terminal device is possible without the relay device; and a control unit configured to restrict a communication bandwidth of the first communication in the another terminal device where the second communication with the terminal device is possible on the basis of the determination result.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a communication management device, a communication system, a communication management method, and a program. [Background technology]

[0002] BACKGROUND ART Communication systems have become widespread in which a plurality of terminal devices connected to a communication network use a web browser's API (Application Programming Interface) to transmit and receive content data, such as video or audio, via a relay device.

[0003] Furthermore, in order to implement Quality of Service (QoS) in a web client that lacks the ability to support QoS, a technique is known in which a terminal device issues an instruction to a router to implement QoS (see, for example, Patent Document 1). Summary of the Invention [Problem to be solved by the invention]

[0004] In a web browser, for example, the APIs that can be executed are limited due to security or privacy issues, and therefore it is not possible to obtain, for example, information on the data link layer or information on nearby terminal devices. Therefore, in conventional communication systems that use web browser APIs to send and receive content data, there is a problem in that it is not possible to optimize bandwidth control based on network topology information.

[0005] The technology disclosed in Patent Document 1 uses a special router (IP relay device) that performs QoS control in response to commands from terminal devices, and achieves bandwidth control without relying on network topology information.

[0006] One embodiment of the present invention has been made in consideration of the above-mentioned problems, and enables bandwidth control to be optimized based on network topology information in a communication system in which multiple terminal devices send and receive content data using a web browser API. [Means for solving the problem]

[0007] In order to solve the above problem, a communication management device according to one embodiment includes a communication management unit configured to manage a first communication in which a first terminal device transmits first content data to a second terminal device via a relay device, and a second communication in which the first terminal device transmits second content data to a third terminal device via the relay device; Place and The result of the judgment indicates whether communication is possible. and a determination result indicating whether communication with the third terminal device is possible. a receiving unit configured to receive a determination result that the first terminal device is capable of communicating with the second terminal device through the third communication; and a determination result that the first terminal device is not capable of communicating with the third terminal device through the third communication. and a limiting unit configured to determine that the first terminal device and the second terminal device are on the same network based on the above, and to limit the communication bandwidth of the first communication in the second terminal device that is capable of the third communication with the first terminal device. [Effects of the Invention]

[0008] According to one embodiment of the present invention, in a communication system in which a plurality of terminal devices transmit and receive content data using the API of a web browser, it becomes possible to optimize bandwidth control based on network topology information. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of a system configuration of a communication system according to an embodiment. [Figure 2] FIG. 10 is a diagram illustrating access restrictions imposed by a web browser according to an embodiment. [Figure 3] FIG. 2 is a diagram illustrating an example of a hardware configuration of a terminal device (imaging device) according to an embodiment. [Figure 4] FIG. 2 is a diagram illustrating an example of a hardware configuration of a computer according to an embodiment. [Figure 5] 1 is a diagram illustrating an example of a functional configuration of a communication system according to a first embodiment. [Figure 6] FIG. 4 is a diagram illustrating an example of connection management information according to the first embodiment. [Figure 7A] FIG. 1 is a sequence diagram (1) showing an example of a first communication process according to the first embodiment. [Figure 7B] FIG. 10 is a sequence diagram (2) illustrating an example of the first communication process according to the first embodiment. [Figure 8] FIG. 4 is a sequence diagram illustrating an example of a bandwidth limitation process according to the first embodiment. [Figure 9] FIG. 10 is a diagram illustrating an example of a functional configuration of a communication system according to a second embodiment. [Figure 10] FIG. 10 is a sequence diagram illustrating an example of a first communication process according to the second embodiment. [Figure 11] FIG. 10 is a sequence diagram illustrating an example of a bandwidth limitation process according to the second embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. <System configuration> FIG. 1 is a diagram illustrating an example of a system configuration of a communication system according to an embodiment. In the communication system 1, a user A at a site A connects a terminal device (image capture device) 100a and a terminal device (information terminal) 100b to a router 101, such as a mobile router, and communicates with a terminal device (information terminal) 100c at another site B via a communication network 2. For example, by participating in a predetermined event, such as remote communication, provided by the management system 10, a user B at the site B can view the situation at the site A in real time by displaying captured images, such as video, delivered from the remote site A at the site B. Here, the predetermined event includes a teleconference, a teleclass, a telemedicine, a meeting or consultation, or an inspection, monitoring, or patrol of a remote site, realized by communication between remote sites via the management system 10. In the following description, the term "terminal device 100" is used to refer to any of the terminal devices 100a, 100b, and 100c.

[0011] 1, the communication system 1 includes terminal devices 100a and 100b located at base A, a terminal device 100c located at base B, a communication management device 11, a relay device 12, and a file server 13. The communication management device 11, the relay device 12, and the file server 13 may be included in a single management system 10. The file server 13 may also use a cloud service or the like external to the communication system 1.

[0012] The terminal devices 100a to 100c can communicate with a communication management device 11, a relay device 12, a file server 13, and the like via a communication network 2. The communication network 2 is constructed, for example, by the Internet, a mobile communication network, a LAN (Local Area Network), and the like. Note that the communication network 2 may include not only wired communication networks but also wireless communication networks such as 3G (3rd Generation), 4G (4th Generation), 5G (5th Generation), Wi-Fi (Wireless Fidelity) (registered trademark), WiMAX (Worldwide Interoperability for Microwave Access), or LTE (Long Term Evolution).

[0013] Terminal device (photography device) 100a is a photography device used by user A at site A, and transmits content data such as photographed images of subjects or scenery within site A to other terminal devices 100b, 100c, etc. participating in the event via management system 10. The content data transmitted by terminal device (photography device) 100a may be video or still images, or may be both video and still images. Furthermore, the photographed images may include audio along with the images.

[0014] Here, the terminal device (image capture device) 100a is an example of a main transmission terminal that participates in an event provided by the management system 10 and mainly transmits content data. The main transmission terminal is not limited to an image capture device, but may be, for example, a mobile object such as a video conference terminal, an IWB (Interactive White Board: an electronic whiteboard with a blackboard function that allows mutual communication), or a robot that moves within a distribution center.

[0015] Furthermore, the site A where the terminal device (image capture device) 100a is installed may be, for example, an outdoor site such as a business office, construction site, substation, farm, rice field, plantation, cultivated land, or disaster site, or an indoor site such as a school, warehouse, commercial facility, hospital, or nursing home. In other words, the site A where the terminal device (image capture device) 100a is installed may be any site where there is a need to hold a remote conference or an event such as an inspection with a user at the site B.

[0016] Terminal device (information terminal) 100b is an information terminal such as a PC (Personal Computer), smartphone, tablet terminal, or wearable terminal used by user A at site A. User A can use terminal device (information terminal) 100b to display captured images and the like transmitted by terminal device (imaging device) 100a, and can also communicate with user B by transmitting and receiving content data such as video and audio to and from terminal device (information terminal) 100c. Terminal device (information terminal) 100b is an example of a main receiving terminal that participates in an event provided by management system 10 and mainly receives content data.

[0017] The terminal device (information terminal) 100c is an information terminal such as a PC, smartphone, tablet terminal, or wearable terminal used by user B at site B. User B can use the terminal device (information terminal) 100c to display captured images and the like transmitted by the terminal device (imaging device) 100a, and can also communicate with user A by transmitting and receiving content data such as video or audio to and from the terminal device (information terminal) 100b. The terminal device (information terminal) 100c is an example of a normal terminal that participates in an event provided by the management system 10 and transmits and receives content data independently, for example. The number of normal terminals may be two or more.

[0018] The terminal devices (information terminals) 100b and 100c are not limited to general-purpose information terminals, but may be, for example, an HMD (head mounted display) or an IWB (Interactive White Board: an electronic white board with a blackboard function that allows mutual communication).

[0019] The communication management device 11 is, for example, an information processing device having a computer configuration, or a system including multiple computers. The communication management device 11 performs, for example, call control of communications (events) for transmitting and receiving content data between multiple terminal devices 100, and authentication and authorization of the terminal devices 100. The communication management device 11 has, for example, the function of a signaling server for WebRTC (Web Real-Time Communication), which enables real-time communication on a web browser.

[0020] The relay device 12 is, for example, an information processing device having a computer configuration, or a system including multiple computers. The relay device 12 relays a first communication in which content data is transmitted and received among multiple terminal devices 100. For example, the relay device 12 forwards content data transmitted by a terminal device (image capture device) 100a to other terminal devices 100b and 100c participating in the same communication (event). Similarly, the relay device 12 forwards content data transmitted by terminal devices 100b and 100c to other terminal devices 100 participating in the same communication (event). The relay device 12 has, for example, a function of a WebRTC SFU (Selective Forwarding Unit).

[0021] The file server 13 is, for example, an information processing device having a computer configuration, or a system including multiple computers. The file server 13 provides the terminal device 100 with HTML (Hyper Text Markup Language) files that can be executed in the web browser of the terminal device 100, or web applications such as JavaScript (registered trademark).

[0022] In the communication system 1 shown in Fig. 1, it is assumed that bases A and B each form a private network (or local network) using a different NAT (Network Address Translation) router or the like. Here, the NAT router is a network device that converts private IP addresses into public IP addresses. It is also assumed that the communication management device 11, relay device 12, and file server 13 each have a public IP address.

[0023] With the above configuration, the terminal device 100a is capable of a first communication of transmitting and receiving content data with other terminal devices 100b and 100c via the relay device 12. Furthermore, the terminal device 100a is capable of a second communication of directly communicating by P2P (Peer to Peer) with another terminal device 100b in the same private network, using the communication management device 11. On the other hand, the terminal device 100a cannot perform a second communication of directly communicating by P2P with another terminal device 100c in another private network.

[0024] In this embodiment, the terminal device 100 performs the first communication and the second communication by using a web browser or an application (such as a mobile application) having the functionality of a web browser.

[0025] 2 is a diagram illustrating access restrictions by a web browser according to one embodiment. A web browser 200 executed by the terminal device 100 receives a JavaScript (hereinafter referred to as JS) file from the file server 13, for example, via HTTP (Hyper Text Transfer Protocol), and stores the file in a temporary storage area. A JS interpreter 202 of the web browser 200 executes the JS code stored in the temporary storage area. The JS interpreter 202 accesses a network I / F (Interface) 211 or devices such as a camera 212, using an API (Application Programming Interface) (hereinafter referred to as browser API) provided by the web browser.

[0026] However, in the web browser 200, for example, to protect security or privacy, access to devices such as the network I / F 211 or the camera 212 is restricted. Therefore, the program (JS code, etc.) executed by the JS interpreter 202 cannot use the browser API 203 to obtain, for example, information on the data link layer or information on nearby terminal devices. Therefore, in a conventional communication system that performs the first communication using the browser API 203 of the web browser 200, it has been difficult to optimize the bandwidth control of the first communication.

[0027] For example, the technology disclosed in Patent Document 1 uses a special relay device that performs QoS control in response to commands from terminal devices, and achieves bandwidth control without relying on network topology information. However, this method has the problem of requiring a special relay device that performs QoS control in response to commands from terminal devices.

[0028] Therefore, the communication management device 11 of this embodiment uses the browser API 203 of the web browser 200 to enable the bandwidth control of the first communication to be optimized based on network topology information in the communication system 1 that performs the first communication.

[0029] In the system configuration shown in FIG. 1, in order to deliver the video captured by terminal device 100a to site B with the highest possible quality, there is a demand to limit the communication bandwidth of other terminal device 100b connected to the same router 101 as much as possible.

[0030] Therefore, the terminal device 100a in this embodiment determines whether or not second communication is possible with other terminal devices 100b, 100c that are performing first communication without going through the relay device 12, and transmits the determination result to the communication management device 11.

[0031] Furthermore, if the terminal device 100a can perform the second communication with another terminal device 100b with which the terminal device 100a is performing the first communication, the communication management device 11 determines that the terminal device 100b is in the same private network as the terminal device 100a and that they share a NAT router, etc. On the other hand, if the terminal device 100a cannot perform the second communication with another terminal device 100c with which the terminal device 100a is performing the first communication, the communication management device 11 determines that the terminal device 100c is in a different private network from the terminal device 100a and does not share a NAT router. In this way, the communication management device 11 according to this embodiment has the function of determining the network configuration (network topology) based on the determination result sent by the terminal device 100a.

[0032] Furthermore, the communication management device 11 instructs the relay device 12 that relays the first communication to limit the communication bandwidth of the first communication of the terminal device 100b, which is in the same private network as the terminal device 100a and shares the NAT router. As a preferred example, the communication management device 11 may instruct the relay device 12 to limit the transmission bandwidth of the first communication of the terminal device 100b.

[0033] As a result, in the system configuration shown in Figure 1, the communication bandwidth of another terminal device 100b connected to the same router 101 can be limited in order to deliver the video captured by terminal device 100a to site B with the highest possible quality.

[0034] As described above, according to this embodiment, it is possible to optimize bandwidth control based on network topology information in a communication system 1 in which multiple terminal devices 100 transmit and receive content data using a web browser API. Therefore, the communication system 1 according to this embodiment does not require a special relay device that performs QoS control in response to commands from terminal devices, as in the technology disclosed in Patent Document 1.

[0035] The system configuration of the communication system 1 shown in FIG. 1 is an example. For example, the terminal device 100a does not necessarily have to have a photographing function as long as it distributes content data to the other terminal devices 100b and 100c. For example, the terminal device 100a may be an IWB (electronic whiteboard) that distributes content data such as photographed images or captured images input from outside to the other terminal devices 100b and 100c. Furthermore, the management system 10 is not limited to a physical machine (computer) and may be realized by a program executed on a virtual machine on the cloud.

[0036] <Hardware configuration> Next, the hardware configuration of each device constituting the communication system 1 according to the embodiment will be described.

[0037] (Hardware configuration of terminal device (imaging device)) FIG. 3 is a diagram illustrating an example of the hardware configuration of a terminal device (image capture device) according to an embodiment. Here, an example is shown in which terminal device (image capture device) 100a is an omnidirectional image capture device that captures an object, a landscape, or the like to capture a omnidirectional image. Terminal device (image capture device) 100a may be a camera that captures a normal planar image, such as a regular digital camera or a smartphone, or a wide-angle camera that can capture a wide-angle image with a predetermined angle of view or greater. In the following description, terminal device (image capture device) 100a is described as an omnidirectional (omnidirectional) image capture device using two image capture elements, but the number of image capture elements may be two or more. Furthermore, the device does not necessarily have to be dedicated to omnidirectional image capture; a regular digital camera, smartphone, or the like may be retrofitted with an omnidirectional image capture unit to have substantially the same functions as terminal device (image capture device) 100a.

[0038] As shown in FIG. 3, the terminal device (photographing device) 100a includes an imaging unit 301, an image processing unit 304, an imaging control unit 305, a microphone 308, a sound processing unit 309, a CPU (Central Processing Unit) 311, a ROM (Read Only Memory) 312, an SRAM (Static Random Access Memory) 313, a DRAM (Dynamic Random Access Memory) 314, an operation unit 315, an input / output I / F (Interface) 316, a short-range communication circuit 317, an antenna 317a of the short-range communication circuit 317, an electronic compass 318, a gyro sensor 319, an acceleration sensor 320, and a network I / F 321.

[0039] Of these, imaging unit 301 has wide-angle lenses (so-called fisheye lenses) 302a and 302b (hereinafter referred to as lenses 302 when there is no need to distinguish between them) each having a field angle of 180° or more for forming a hemispherical image. Also, imaging unit 301 has two image sensors 303a and 303b provided corresponding to wide-angle lenses 302a and 302b.

[0040] The imaging elements 303a and 303b include image sensors such as CMOS (Complementary Metal Oxide Semiconductor) sensors or CCD (Charge Coupled Device) sensors that convert optical images captured by the lenses 302a and 302b into electrical image data and output the converted data. The imaging elements 303a and 303b also include timing generation circuits that generate horizontal or vertical synchronization signals and pixel clocks for the image sensors, as well as registers in which various commands or parameters required for the operation of the imaging elements are set.

[0041] The imaging elements 303a and 303b of the imaging unit 301 are each connected to the image processing unit 304 via a parallel I / F bus. Meanwhile, the imaging elements 303a and 303b of the imaging unit 301 are each connected to the imaging control unit 305 via a serial I / F bus (such as an I2C bus). The image processing unit 304, the imaging control unit 305, and the sound processing unit 309 are connected to the CPU 311 via a bus 310. Furthermore, the bus 310 is also connected to a ROM 312, an SRAM 313, a DRAM 314, an operation unit 315, an input / output I / F 316, a short-range communication circuit 317, an electronic compass 318, a gyro sensor 319, an acceleration sensor 320, a network I / F 321, and the like.

[0042] The image processing unit 304 takes in the image data output from the image sensors 303a and 303b via a parallel I / F bus, performs predetermined processing on each piece of image data, and then synthesizes the image data to create equirectangular projection image data.

[0043] The imaging control unit 305 generally sets commands and the like in the registers of the imaging elements 303a and 303b using an I2C bus, with the imaging control unit 305 acting as a master device and the imaging elements 303a and 303b acting as slave devices. Necessary commands and the like are received from the CPU 311. The imaging control unit 305 also uses the I2C bus to retrieve status data and the like from the registers of the imaging elements 303a and 303b and send it to the CPU 311.

[0044] Furthermore, the imaging control unit 305 instructs the imaging elements 303a and 303b to output image data when the shutter button on the operation unit 315 is pressed. Some terminal devices (imaging devices) 100a have a preview display function or a function for displaying moving images on a display (for example, a display of an external device such as a smartphone that performs short-range communication with the terminal device (imaging device) 100a using the short-range communication circuit 317). In this case, the image data is output continuously from the imaging elements 303a and 303b at a predetermined frame rate (frames per minute).

[0045] As will be described later, the imaging control unit 305 also functions as a synchronization control means that cooperates with the CPU 311 to synchronize the output timing of image data from the imaging elements 303a and 303b. In this embodiment, the terminal device (imaging device) 100a is not provided with a display unit, but a display unit may be provided. The microphone 308 converts sound into sound (signal) data. The sound processing unit 309 receives the sound data output from the microphone 308 via an I / F bus and performs predetermined processing on the sound data.

[0046] The CPU 311 controls the overall operation of the terminal device (image capturing device) 100a and executes necessary processes by executing programs stored in advance in, for example, the ROM 312. The ROM 312 stores various programs for the CPU 311. The SRAM 313 and DRAM 314 are work memories that store programs executed by the CPU 311, data in the middle of processing, and the like. In particular, the DRAM 314 stores image data in the middle of processing by the image processing unit 304 and data of processed equirectangular projection images.

[0047] The operation unit 315 is a collective term for various operation buttons, a power switch, a shutter button, a touch panel that combines display and operation functions, etc. The user operates the operation unit 315 to input various shooting modes, shooting conditions, etc.

[0048] The input / output I / F 316 is a general term for an interface circuit (such as a USB I / F) with external media such as an SD card or a personal computer. The input / output I / F 316 may be wireless or wired. The equirectangular projection image data stored in the DRAM 314 is recorded on external media via the input / output I / F 316, or transmitted to an external terminal (device) via the input / output I / F 316 as needed.

[0049] The short-range communication circuit 317 communicates with an external terminal (device) via an antenna 317a provided in the terminal device (image capture device) 100a by wireless communication such as NFC (Near Field Communication), Bluetooth (registered trademark), or Wi-Fi. The short-range communication circuit 317 can transmit data of the equirectangular projection image to the external terminal (device).

[0050] The electronic compass 318 calculates the orientation of the terminal device (image capture device) 100a from the Earth's magnetism and outputs orientation information. This orientation information is an example of related information (metadata) conforming to Exif, and is used for image processing such as image correction of the captured image. The related information also includes data such as the capture date and time of the image and the data size of the image data. The gyro sensor 319 is a sensor that detects angle changes (roll angle, pitch angle, yaw angle) that accompany the movement of the terminal device (image capture device) 100a. The angle changes are an example of related information (metadata) conforming to Exif, and are used for image processing such as image correction of the captured image. The acceleration sensor 320 is a sensor that detects acceleration in three axial directions.

[0051] The terminal device (image capturing device) 100a calculates the attitude (angle with respect to the direction of gravity) of its own device (terminal device (image capturing device) 100a) based on the acceleration detected by the acceleration sensor 320. The accuracy of image correction is improved by providing the terminal device (image capturing device) 100a with the acceleration sensor 320. The network I / F 321 is an interface for performing data communication using a communication network 2 such as the Internet via a router or the like, and corresponds to the network I / F 211 in FIG. 2.

[0052] (Computer hardware configuration) The terminal devices (information terminals) 100b and 100c have, as an example, the hardware configuration of a computer 400 as shown in Fig. 3. Also, as an example, the communication management device 11, the relay device 12, the file server 13, etc. are realized by one or more computers 400.

[0053] Fig. 4 is a diagram showing an example of the hardware configuration of a computer according to an embodiment. For example, as shown in Fig. 4, a computer 400 includes a CPU 401, a ROM 402, a RAM (Random Access Memory) 403, a HD (Hard Disk) 404, an HDD (Hard Disk Drive) controller 405, a display 406, an external device connection I / F (Interface) 407, a network I / F 408, a keyboard 409, a pointing device 410, a DVD-RW (Digital Versatile Disk Rewritable) drive 412, a media I / F 414, an audio input / output I / F 415, a speaker 416, a microphone 417, a camera 418, and a bus line 419.

[0054] Of these, the CPU 401 controls the overall operation of the computer 400. The ROM 402 stores programs used to start up the computer 400, such as an IPL (Initial Program Loader). The RAM 403 is used, for example, as a work area for the CPU 401. The HD 404 stores programs such as an OS (Operating System), applications, and device drivers, as well as various data. The HDD controller 405 controls the reading and writing of various data from and to the HD 404, for example, under the control of the CPU 401.

[0055] The display 406 displays various types of information such as a cursor, menus, windows, characters, or images. The display 406 may be provided outside the computer 400. The external device connection I / F 407 is an interface such as a USB (Universal Serial Bus) that connects various external devices to the computer 400. The network I / F 408 is an interface for communicating with other devices using, for example, the communication network 2. If the computer 400 is the terminal device 100b or 100c, the network I / F 408 corresponds to the network I / F 211 in FIG. 2.

[0056] The keyboard 409 is a type of input means having multiple keys for inputting characters, numbers, various instructions, etc. The pointing device 410 is a type of input means for selecting and executing various instructions, selecting a processing target, moving a cursor, etc. The keyboard 409 and pointing device 410 may be provided externally to the computer 400. The DVD-RW drive 412 controls reading and writing of various data from a DVD-RW 411, which is an example of a removable storage medium. The DVD-RW 411 is not limited to a DVD-RW, and may be another storage medium.

[0057] The media I / F 414 controls the reading and writing (storage) of data from and to a medium 413 such as a flash memory. The sound input / output I / F 415 is a circuit that processes the input and output of sound signals between a speaker 416 and a microphone 417 under the control of the CPU 401. The speaker 416 is a built-in device that converts electrical signals into physical vibrations to produce sounds such as music and voice. The microphone 417 is a built-in device that converts sounds into electrical signals. The bus line 419 includes an address bus, a data bus, various control signals, and the like for electrically connecting the above components.

[0058] 4 is an example of the hardware configuration of the computer 400. The computer 400 may have any configuration as long as it has, for example, a CPU 401, a ROM 402, a RAM 403, a network I / F 408, a bus line 419, and the like.

[0059] <Functional configuration> Next, the functional configuration of the communication system 1 according to this embodiment will be described.

[0060] [First embodiment] Fig. 5 is a diagram illustrating an example of a functional configuration of a communication system according to the first embodiment. The functional configuration of the communication system 1 illustrated in Fig. 5 indicates those functional configurations of the devices illustrated in Fig. 1 that are related to the processes described below.

[0061] (Functional configuration of the communication management device) The communication management device 11 realizes, for example, a transmitting / receiving unit 501, an authentication unit 502, a communication management unit 503, a receiving unit 504, a restriction unit 505, an information management unit 506, and a storage unit 507 by the computer 400 executing a predetermined program. Note that at least a part of the above functional configurations may be realized by hardware.

[0062] The transmitting / receiving unit 501 connects the communication management device 11 to the communication network 2 using, for example, the network I / F 408, and executes transmitting / receiving processing to transmit and receive data, information, etc. with other devices. The authentication unit 502 executes authentication processing to authenticate and authorize the terminal device 100, user, etc. that accesses the communication management device 11.

[0063] The communication management unit 503 executes a communication management process for managing a first communication in which a plurality of terminal devices 100 transmit and receive content data such as video or audio via the relay device 12. For example, the communication management unit 503 manages the first communication using communication management information 508 as shown in FIG.

[0064] Fig. 6 is a diagram showing an example of communication management information according to the first embodiment. In the example of Fig. 6, the communication management information 508 includes information such as "ID," "allowed room ID," "terminal use," and "password" as items. "ID" is identification information that identifies, for example, the terminal device 100, the web browser 200 included in the terminal device 100, or an application having a web browser function. Here, as an example, the following description will be given assuming that "ID" is identification information that identifies the terminal device 100.

[0065] "Admitted Room ID" is identification information (hereinafter referred to as Room ID) that identifies a communication session (admitted room) that the terminal device 100 can participate in. For example, in the example of FIG. 6, it is indicated that a terminal device 100 (e.g., terminal device 100a) with ID "B0001" can participate in rooms (chat rooms, etc.) with Room IDs "Room1," "Room2," and "Room3." It is also indicated that a terminal device 100 (e.g., terminal device 100b) with ID "B0002" can participate in rooms with Room IDs "Room1," "Room4," and "Room5." Similarly, it is indicated that a terminal device 100 (e.g., terminal device 100c) with ID "B0003" can participate in a room with Room ID "Room1."

[0066] "Terminal use" is information indicating, for example, whether the terminal device 100 is the aforementioned sending main terminal (e.g., terminal device 100a), receiving main terminal (e.g., terminal device 100b), or normal terminal (e.g., terminal device 100c). "Password" is authentication information for authenticating the terminal device 100. For example, if the combination of ID and password of the terminal device 100 connecting to the communication management device 11 is stored in the communication management information 508, the authentication unit 502 permits access by the terminal device 100. Note that the password is an example of authentication information for authenticating the terminal device 100. For example, the authentication information for authenticating the terminal device 100 may be other authentication information such as an electronic certificate, an access token, or biometric information.

[0067] Furthermore, the communication management unit 503, as a WebRTC signaling server, also performs connection control of the second communication for P2P communication between the terminal devices 100 using the ICE (Interactive Connectivity Establishment) protocol or the like. Here, the ICE protocol is a series of protocols that sets the priority of connection candidates exchanged by messages such as offer, answer, and icecandidate, and performs connection confirmation, etc.

[0068] The receiving unit 504 receives, from the terminal device 100, a determination result indicating whether second communication with another terminal device 100 is possible without going through the relay device 12. For example, when the terminal device 100a is performing first communication with the other terminal devices 100b and 100c, the receiving unit 504 receives a determination result indicating whether second communication with the other terminal devices 100b and 100c is possible.

[0069] The limiting unit 505 limits the communication bandwidth of the first communication in other terminal devices 100 that are capable of second communication with the terminal device 100 that transmitted the determination result, based on the determination result received by the receiving unit 504. For example, when the receiving unit 504 receives from the terminal device 100a a determination result indicating that second communication with the terminal device 100b is possible, the limiting unit 505 limits (e.g., reduces) the communication bandwidth of the first communication in the terminal device 100b.

[0070] As a preferred example, the limiting unit 505 mainly limits the transmission band of the first communication among the communication bands of the first communication in the terminal device 100b.

[0071] The information management unit 506 stores and manages, for example, communication management information 508 and the like in the storage unit 507. For example, the information management unit 506 displays a web page or the like for setting the communication management information 508 on a PC or the like for an administrator, and accepts settings such as "ID," "allowed room ID," "terminal use," or "password."

[0072] The storage unit 507 is realized by, for example, the programs executed by the CPU 401, the HD 404, the HDD controller 405, the RAM 403, etc., and stores various data, information, programs, etc., such as communication management information 508.

[0073] (Functional configuration of terminal device) 3 executes a predetermined program, the terminal device 100a realizes a transmitting / receiving unit 511, an input / output unit 512, an imaging control unit 513, a storage unit 514, a web browser 515, etc. Note that at least a part of the above functional configurations may be realized by hardware.

[0074] It is assumed that the terminal devices 100b and 100c realize the same functional configuration as the terminal device 100a, for example, by the CPU 401 in FIG. 4 executing a predetermined program.

[0075] The transmitting / receiving unit 511, for example, uses the network I / F 321 (or the network I / F 408) to connect the terminal device 100 to the communication network 2 and executes communication processing for communicating with other devices. The input / output unit 512 executes at least one of an input processing for accepting an input operation by a user and an output processing for a display screen, sound, light, or the like.

[0076] The photographing control unit 513 controls, for example, the imaging unit 301, the image processing unit, and the imaging control unit (or the camera 418) to perform photographing control processing to acquire photographed image data obtained by photographing the periphery of the terminal device 100.

[0077] The storage unit 514 executes a storage process for storing various information, data, programs, etc. in a storage device such as the SRAM 313, the HD 404, or the RAM 403, for example.

[0078] Web browser 515 implements first communication unit 516, second communication unit 517, notification unit 518, etc. by downloading and executing, for example, a JS file 534 or an HTML file from file server 13. Note that web browser 515 corresponds to web browser 200 described in FIG. 2, and provides, for example, browser API 203 such as WebRTC to a program executed by web browser 515.

[0079] The first communication unit 516 executes a first communication process using the browser API 203 provided by the web browser 515 to perform a first communication for transmitting and receiving content data to and from another terminal device 100 via the relay device 12.

[0080] The second communication unit 517 executes second communication processing to perform one-to-one second communication with another terminal device 100, using the browser API 203 provided by the web browser 515. For example, the second communication unit 517 performs second communication, which is P2P communication using the ICE protocol, using the WebRTC API provided by the web browser 515.

[0081] The notification unit 518 executes notification processing to notify the communication management device 11 of a determination result indicating whether or not second communication is possible with each of the other terminal devices 100 that are performing first communication with the terminal device 100. Note that if the terminal device 100 is the terminal device 100b that is a receiving main terminal or the terminal device 100c that is a normal terminal, the terminal device 100 may not have the notification unit 518.

[0082] (Functional configuration of relay device) Relay device 12 implements, for example, a transmitting / receiving unit 521, a connection management unit 522, a bandwidth management unit 523, an encryption management unit 524, and a transfer management unit 525 by executing a predetermined program on computer 400. Note that at least a part of the above functional configurations may be implemented by hardware.

[0083] The transmitting / receiving unit 521 connects the relay device 12 to the communication network 2 using, for example, the network I / F 408, and executes a transmitting / receiving process for transmitting and receiving data, information, etc. to and from other devices.

[0084] The connection management unit 522 executes a connection management process for managing the connection of the terminal device 100 to the relay device 12. For example, the connection management unit 522 allows the terminal devices 100 that request a connection by specifying the same Room ID (session ID) to participate in the same Room (communication session).

[0085] The bandwidth management unit 523 executes bandwidth management processing to manage the communication bandwidth of the first communication that transmits and receives content data via the relay device 12. For example, the bandwidth management unit 523 limits the communication bandwidth of the terminal device 100 in accordance with control from the communication management device 11. The encryption management unit 524 executes encryption management processing to manage encryption such as DTLS (Datagram Transport Layer Security). The transfer management unit 525 executes transfer management processing to transfer content data between multiple terminal devices 100 that have entered the same Room (participating in the same communication session).

[0086] (file server) The file server 13 realizes, for example, a transmission / reception unit 531, a file providing unit 532, and a storage unit 533 by the computer 400 executing a predetermined program. Note that at least a part of the above functional configurations may be realized by hardware.

[0087] The transmitting / receiving unit 531 connects the file server 13 to the communication network 2 using, for example, the network I / F 408, and executes a transmitting / receiving process for transmitting and receiving data, information, etc. to and from other devices.

[0088] The file providing unit 532 executes a file providing process that provides a program (JS file 534 or HTML file 535) that realizes the first communication unit 516, the second communication unit 517, the notification unit 518, etc., by executing it on the web browser 515.

[0089] The storage unit 533 is realized by, for example, a program executed by the CPU 401, the HD 404, the HDD controller 405, the RAM 403, and the like, and executes storage processing for storing the JS file 534, the HTML file 535, and the like.

[0090] The file server 13 may be realized by a cloud service or the like external to the management system 10.

[0091] <Processing flow> Next, the processing flow of the communication management method according to the first embodiment will be described.

[0092] (First communication process) Fig. 7A is a sequence diagram showing an example of a first communication process according to the first embodiment. In Fig. 7A, the dashed arrow indicates a response message, and explanations thereof will be omitted unless particularly necessary. The same applies to Figs. 7B, 8, 10, and 11.

[0093] In step S701, the web browser 515 of the terminal device 100a downloads a web application (hereinafter referred to as a web app), such as a JS (JavaScript) file 534 or an HTML file 535, from the file server 13. This process is automatically executed, for example, by the web browser 515 accessing a predetermined URL (Uniform Resource Locator). The following description assumes that the downloaded web app is the JS file 534.

[0094] In step S702, the web browser 515 of the terminal device 100a executes the downloaded web application 720. This implements, for example, the first communication unit 516, the second communication unit 517, and the notification unit 518 described in FIG.

[0095] In step S703, the first communication unit 516 (hereinafter simply referred to as the first communication unit 516) realized by the web application 720 of the terminal device 100a uses the API provided by the web browser 515 to request a WebSocket connection with the communication management device 11.

[0096] In step S704, the web browser 515 of the terminal device 100a establishes a WebSocket connection with the communication management device 11. Here, WebSocket is a communication protocol that provides a bidirectional communication channel over a single TCP (Transmission Control Protocol) connection.

[0097] In step S705, the first communication unit 516 of the terminal device 100a uses the API provided by the web browser 515 to request connection to Room 1 of the relay device 12 as the "sending main terminal."

[0098] In step S706, the web browser 515 of the terminal device 100a transmits a connection request to the relay device 12 by a WebSocket message, requesting the communication management device 11 to connect to Room 1 of the relay device 12 as the "sending main terminal."

[0099] In step S707, when the communication management unit 503 of the communication management device 11 receives a valid connection request to the relay device 12 from the terminal device 100a, the communication management unit 503 requests the relay device 12 to create a WebRTC offer. For example, the connection request to the relay device 12 sent by the terminal device 100a includes the ID, password, Room ID, and the like described in FIG. 6. The authentication unit 502 of the communication management device 11 performs authentication processing based on whether the combination of the ID and password included in the connection request to the relay device 12 is registered in the communication management information 508. In addition, the authentication unit 502 performs authorization processing based on whether the Room ID included in the connection request to the relay device 12 is included in the "allowed room ID" of the communication management information 508. In this way, the authentication unit 502 can confirm whether the connection request to the relay device 12 received from the terminal device 100a is valid.

[0100] In step S708, the connection management unit 522 of the relay device 12 replies with a WebRTC offer in response to the WebRTC offer creation request from the communication management device 11. The WebRTC offer is information transmitted by the communication initiator in WebRTC signaling. This WebRTC offer includes, for example, information about content data, connection information, and information such as a public key for encryption key sharing, written in SDP (Session Description Protocol).

[0101] In step S709, upon receiving the WebRTC offer, the first communication unit 516 of the terminal device 100a requests the web browser 515 to create a WebRTC answer. The WebRTC answer is information returned by the party that received the WebRTC offer in WebRTC signaling. This WebRTC offer also includes information written in SDP, such as content data information, connection information, and a public key for encryption key sharing.

[0102] In step S710, the first communication unit 516 of the terminal device 100a returns, for example, a WebRTC answer created by the web browser 515 to the relay device 12 via the web browser 515. As a result, in step S711, the first communication unit 516 of the terminal device 100a establishes first communication with the relay device 12. For example, the terminal device 100a shares a DTLS encryption key with the relay device 12, and encrypts content data such as video or audio using the shared encryption key and transmits and receives the encrypted content data.

[0103] In the above process, the relay device 12 creates a WebRTC offer and the web browser 515 creates a WebRTC answer, but the web browser 515 may create a WebRTC offer and the relay device 12 may create a WebRTC answer. For example, the communication system 1 may execute process 730 of steps S721 to S725 in FIG. 7B instead of the processes of steps S705 to S711 in FIG. 7A.

[0104] In step S721, the first communication unit 516 of the terminal device 100a makes a request to create a WebRTC offer by using the API provided by the web browser 515. This request includes, for example, information requesting connection to Room 1 of the relay device 12 as a "transmission main terminal."

[0105] In step S722, the web browser 515 of the terminal device 100a sends a WebRTC offer in a WebSocket message to the communication management device 11. In addition to the WebRTC offer created by the web browser 515, this WebSocket message includes, for example, information requesting connection to Room 1 of the relay device 12 as the "main transmission terminal."

[0106] In step S723, upon receiving the WebRTC offer from the terminal device 100a, the communication management unit 503 of the communication management device 11 requests the relay device 12 to create a WebRTC answer.

[0107] In step S724, the connection management unit 522 of the relay device 12 creates and returns a WebRTC answer in response to the request to create a WebRTC answer from the communication management device 11. As a result, in step S725, the terminal device 100a establishes a first communication with the relay device 12.

[0108] 7A, the terminal device 100b executes the same process 700 as in steps S701 to S711 to establish a first communication with the relay device 12. However, in the process of step S706, the web browser 515 of the terminal device 100b sends a connection request to the relay device 12 by a WebSocket message, requesting the communication management device 11 to connect to Room 1 of the relay device 12 as the "receiving main terminal."

[0109] In step S713, the terminal device 100c executes the same process 700 as in steps S701 to S711 to establish a first communication with the relay device 12. However, in the process of step S706, the web browser 515 of the terminal device 100c sends a connection request to the relay device 12 by a WebSocket message, requesting the communication management device 11 to connect to Room 1 of the relay device 12 as a "normal terminal."

[0110] Note that, in steps S712 and S713, the communication system 1 may also execute the same processes as steps S721 to S725 in FIG. 7B to establish the first communication.

[0111] Through the above processing, the terminal devices 100a, 100b, and 100c can perform a first communication of transmitting and receiving content data via the relay device 12. For example, the content data transmitted by the terminal device 100a in step S714 is transferred by the relay device 12 to the other terminal devices 100b and 100c in steps S715 and S716. Similarly, the content data transmitted by the terminal device 100b is transferred by the relay device 12 to the other terminal devices 100a and 100c, and the content data transmitted by the terminal device 100c is transferred by the relay device 12 to the other terminal devices 100a and 100b.

[0112] 7A and 7B are merely examples. For example, the terminal device 100 may communicate control information with the communication management device 11 by HTTP polling or the like, instead of using WebSocket.

[0113] (Bandwidth limiting processing) Fig. 8 is a sequence diagram showing an example of a bandwidth limitation process according to the first embodiment. At the start of the process in Fig. 8, the communication system 1 has already executed the process in Fig. 7, and the terminal devices 100a, 100b, and 100c are performing a first communication for transmitting and receiving content data via the relay device 12.

[0114] In step S801, the second communication unit 517 (hereinafter simply referred to as the second communication unit 517) implemented by the web application 700a of the terminal device 100a requests the web browser 515a to create a WebRTC offer. This WebRTC offer includes, for example, connection information for the terminal device 100b (hereinafter referred to as connection information B).

[0115] In step S802, the second communication unit 517 of the terminal device 100a requests the web browser 515a to transmit the created WebRTC offer. As a result, in step S803, the web browser 515a of the terminal device 100a transmits the WebRTC offer addressed to the terminal device 100b to the communication management device 11, for example, by a WebSocket message.

[0116] In step S804, the connection management unit 522 of the communication management device 11 transmits the WebRTC offer received from the terminal device 100a and addressed to the terminal device 100b to the terminal device 100b as, for example, a WebSocket message.

[0117] In step S805, the second communication unit 517 implemented by the web application 700b of the terminal device 100b accepts the WebRTC offer from the terminal device 100a. In response, in step S806, the second communication unit 517 requests the web browser 515b to create a WebRTC answer. This WebRTC answer includes, for example, connection information (hereinafter referred to as connection information A) of the terminal device 100a.

[0118] In step S807, the second communication unit 517 of the terminal device 100b requests the web browser 515b to transmit the created WebRTC answer. As a result, in step S808, the web browser 515b of the terminal device 100b transmits the WebRTC answer addressed to the terminal device 100a to the communication management device 11, for example, by a WebSocket message.

[0119] In step S809, the connection management unit 522 of the communication management device 11 transmits the WebRTC answer received from the terminal device 100b and addressed to the terminal device 100a to the terminal device 100a, for example, as a WebSocket message.

[0120] In step S810, the web browser 515a (or the second communication unit 517) of the terminal device 100a checks whether the second communication (P2P communication) is possible using the private IP addresses (connection information A, B, etc.) of the terminal device 100b. Here, since the terminal devices 100a and 100b are in the same private network (local network), the second communication unit 517 checks whether the second communication is possible.

[0121] In steps S811 to S813, the notification unit 518 of the terminal device 100a notifies the communication management device 11 of the determination result indicating that the second communication with the terminal device 100b is possible, for example, by a WebSocket message.

[0122] In step S814, the terminal device 100a executes connection processing 800 for the second communication with the terminal device 100c, similar to steps S801 to S809. Also, in step S815, the web browser 515a (or the second communication unit 517) of the terminal device 100a checks whether the second communication is possible using the private IP address of the terminal device 100c. Here, since the terminal device 100a and the terminal device 100c are in different private networks (local networks), it is confirmed that the second communication is not possible.

[0123] In steps S816 to S818, the notification unit 518 of the terminal device 100a notifies the communication management device 11 of the determination result indicating that the second communication with the terminal device 100c is not possible, for example, by a WebSocket message.

[0124] In step S819, the restriction unit 505 of the communication management device 11 determines the connection state (network topology information) of the network (NW) based on the determination results received by the receiving unit 504 from the terminal device 100a in steps S813 and S818. For example, the restriction unit 505 determines that the terminal device 100b is in the same private network (or local network) as the terminal device 100a because the terminal device 100a is capable of the first communication and the second communication with the terminal device 100b. On the other hand, the restriction unit 505 determines that the terminal device 100c is in a different private network (or local network) from the terminal device 100a because the terminal device 100a is not capable of the second communication with the terminal device 100c with which the first communication is possible.

[0125] In step S820, the limiting unit 505 of the communication management device 11 transmits to the relay device 12 a band limiting command to limit the communication band of the first communication of the terminal device 100b that is determined to be in the same private network as the terminal device 100a.

[0126] For example, the limiting unit 505 may transmit a bandwidth restriction command to the relay device 12 to instruct the terminal device 100b to reduce the communication bandwidth through which the terminal device 100b transmits and receives content data. Alternatively, the limiting unit 505 may transmit a bandwidth restriction command to the relay device 12 to instruct the terminal device 100b to reduce the transmission bandwidth through which the terminal device 100b transmits content data. This makes it possible to increase the priority of the transmission bandwidth through which the terminal device (imaging device) 100a transmits video data.

[0127] In step S821, the bandwidth management unit 523 of the relay device 12, in accordance with the bandwidth restriction command from the communication management device 11, restricts the communication bandwidth of the first communication in the terminal device 100b.

[0128] According to the first embodiment, by the processing of Figures 7A (or 7B) and 8, it becomes possible to optimize bandwidth control based on network topology information in a communication system 1 in which multiple terminal devices 100 send and receive content data using a web browser API.

[0129] 7A (or 7B) and 8 are merely examples. For example, in step S706 of FIG. 7A, the connection request to the relay device that the terminal device 100 sends to the communication management device 11 includes information about the terminal use (sending main terminal, receiving main terminal, or normal terminal), but this information is not essential. For example, in steps S813 and S818 of FIG. 8, the communication management device 11 may determine that the terminal device 100a that sent the determination result is the sending main terminal. Furthermore, based on the received determination result, the communication management device 11 may determine that the terminal device 100b that can perform second communication with the sending main terminal is the receiving main terminal, and may determine that the terminal device 100c that cannot perform second communication with the sending main terminal is the normal terminal.

[0130] [Second embodiment] In the first embodiment, the terminal device 100a realizes the first communication unit 516, the second communication unit 517, the notification unit 518, etc. by a program executed by the web browser 515. However, this is just one example, and the terminal device 100a may realize the first communication unit 516, the second communication unit 517, the notification unit 518, etc. by a mobile application or the like that loads part of the code of the web browser as a library.

[0131] <Functional configuration> FIG. 9 is a diagram illustrating an example of a functional configuration of a communication system according to the second embodiment.

[0132] (Functional configuration of terminal device 100a) In the terminal device 100a according to the second embodiment, instead of the web browser 515, the CPU 311 executes an application 900 having the functionality of a web browser, thereby realizing a first communication unit 516, a second communication unit 517, a notification unit 518, and the like.

[0133] The first communication unit 516 executes a first communication process for performing a first communication for transmitting and receiving content data with other terminal devices 100 via the relay device 12. The second communication unit 517 executes a second communication process for performing a one-to-one second communication with other terminal devices 100. For example, the second communication unit 517 performs the second communication (P2P communication) using the ICE protocol of WebRTC. The notification unit 518 executes a notification process for notifying the communication management device 11 of a determination result indicating whether or not the second communication is possible with each of the other terminal devices 100 that are performing the first communication with the terminal device 100.

[0134] Other functional configurations of the terminal device 100a according to the second embodiment may be similar to the functional configuration of the terminal device 100a according to the first embodiment described in Fig. 5. Furthermore, the functional configurations of the terminal devices 100b and 100c, the communication management device 11, the relay device 12, and the file server 13 according to the second embodiment may be similar to those of the first embodiment.

[0135] <Processing flow> (First communication process) Fig. 10 is a sequence diagram showing an example of a first communication process according to the second embodiment. Among the processes shown in Fig. 10, the processes of steps S712 to S716 are the same as the processes according to the first embodiment described in Fig. 7A, and therefore their explanation will be omitted here. Furthermore, since the basic process contents are the same as those of the first embodiment, detailed explanations of the processes that are the same as those of the first embodiment will be omitted here.

[0136] In step S1001, when the terminal device 100a starts the application 900 or receives a communication operation, the communication system 1 starts the processing from step S1002 onwards.

[0137] In step S1002, the first communication unit 516 of the terminal device 100a establishes a Websocket connection with the communication management device 11.

[0138] In step S1003, the first communication unit 516 of the terminal device 100a transmits a connection request to the relay device 12 by a WebSocket message, requesting the communication management device 11 to connect to Room 1 of the relay device 12 as the "sending main terminal."

[0139] In step S1004, upon receiving a valid connection request to the relay device 12 from the terminal device 100a, the communication management unit 503 of the communication management device 11 requests the relay device 12 to create a WebRTC offer.

[0140] In step S1005, the connection management unit 522 of the relay device 12 returns a WebRTC offer in response to the request to create a WebRTC offer from the communication management device 11.

[0141] In step S1006, upon receiving the WebRTC offer from the relay device 12 via the communication management device 11, the first communication unit 516 of the terminal device 100a creates a WebRTC answer.

[0142] In step S1007, the first communication unit 516 of the terminal device 100a returns the created WebRTC answer to the relay device 12. As a result, the first communication unit 516 establishes a first communication with the relay device 12. For example, the terminal device 100a shares a DTLS encryption key with the relay device 12, and encrypts content data such as video or audio using the shared encryption key and transmits and receives the encrypted content data.

[0143] In step S712, the terminal device 100b executes processing 700 similar to steps S701 to S711 in Fig. 7A to establish first communication with the relay device 12. Similarly, in step S713, the terminal device 100c executes processing 700 similar to steps S701 to S711 in Fig. 7A to establish first communication with the relay device 12.

[0144] In this way, the terminal device 100a may execute the first communication process by using the application 900 having the functionality of a web browser.

[0145] In the process of FIG. 10, similarly to the process of FIG. 7B, the application 900 having the functionality of a web browser may create a WebRTC offer, and the relay device 12 may create a WebRTC answer.

[0146] (Bandwidth limiting processing) Fig. 11 is a sequence diagram showing an example of a bandwidth limitation process according to the second embodiment. Among the processes shown in Fig. 11, the processes of steps S819 to S821 are the same as the processes according to the first embodiment described in Fig. 8, and therefore a description thereof will be omitted here. Furthermore, since the basic process contents are the same as those of the first embodiment, a detailed description of the processes that are the same as those of the first embodiment will be omitted here.

[0147] In step S1101, the second communication unit 517 of the terminal device 100a creates a WebRTC offer addressed to the terminal device 100b, and transmits the created WebRTC offer to the communication management device 11, for example, as a WebSocket message.

[0148] In step S1102, the connection management unit 522 of the communication management device 11 transmits the WebRTC offer received from the terminal device 100a and addressed to the terminal device 100b to the terminal device 100b as, for example, a WebSocket message.

[0149] In step S1103, the second communication unit 517 implemented by the web application 700b of the terminal device 100b accepts the WebRTC offer from the terminal device 100a. In response to this, in step S1104, the second communication unit 517 requests the web browser 515b to create a WebRTC answer. This WebRTC answer includes, for example, connection information (connection information A) of the terminal device 100a.

[0150] In step S1105, the second communication unit 517 of the terminal device 100b requests the web browser 515b to transmit the created WebRTC answer. As a result, in step S1106, the web browser 515b of the terminal device 100b transmits the WebRTC answer addressed to the terminal device 100a to the communication management device 11, for example, by using a WebSocket message.

[0151] In step S1107, the connection management unit 522 of the communication management device 11 transmits the WebRTC answer received from the terminal device 100b and addressed to the terminal device 100a to the terminal device 100a, for example, as a WebSocket message.

[0152] In step S1108, the second communication unit 517 of the terminal device 100a checks whether second communication (P2P communication) with the terminal device 100b is possible using the private IP address. Here, since the terminal device 100a and the terminal device 100b are in the same private network (local network), the second communication unit 517 checks whether second communication with the terminal device 100b is possible.

[0153] In step S1109, the notification unit 518 of the terminal device 100a notifies the communication management device 11 of the determination result indicating that the second communication with the terminal device 100b is possible, for example, by a WebSocket message.

[0154] In step S1110, the terminal device 100a executes connection processing 1100 for the second communication with the terminal device 100c, similar to steps S1101 to S1107. Also, in step S1111, the second communication unit 517 of the terminal device 100a checks whether the second communication is possible with the terminal device 100c using the private IP address. Here, the terminal device 100a and the terminal device 100c are in different private networks (local networks), so the second communication unit 517 checks that the second communication with the terminal device 100c is not possible.

[0155] In step S1112, the notification unit 518 of the terminal device 100a notifies the communication management device 11 of the determination result indicating that the second communication with the terminal device 100c is not possible, for example, by a WebSocket message.

[0156] In this way, the processing of the web browser 515 of the terminal device 100a according to the first embodiment can be realized by a mobile application or the like having the functionality of a web browser (WebRTC API, etc.).

[0157] The processing of the web browser 515 of the terminal device 100b or the terminal device 100c can also be realized by an application program or the like having the functionality of a web browser (WebRTC API, etc.).

[0158] As described above, according to each embodiment of the present invention, in a communication system in which a plurality of terminal devices 100 transmit and receive content data using the API of a web browser, it becomes possible to optimize bandwidth control based on network topology information.

[0159] <Supplementary information> Each function of each embodiment described above can be realized by one or more processing circuits. Here, the term "processing circuit" in this specification includes a processor programmed to perform each function by software, such as a processor implemented by an electronic circuit, as well as devices such as an ASIC (Application Specific Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), and conventional circuit modules designed to perform each of the functions described above.

[0160] Additionally, the devices described in the examples represent only one of multiple computing environments for implementing the embodiments disclosed herein. In one embodiment, the communication management device 11 includes multiple computing devices, such as a server cluster. The multiple computing devices are configured to communicate with each other via any type of communication link, including a network or shared memory, and perform the processes disclosed herein. Furthermore, the elements of the communication management device 11 may be integrated into a single computer 400 or may be separated into multiple computers 400.

[0161] 5 can be configured to share various combinations of the processes of the communication systems 1 shown in, for example, FIGS. 7A (or 7B), 8, 10, and 11. For example, at least a portion of the processes executed by the communication management device 11 may be executed by the relay device 12 or the file server 13. Furthermore, at least a portion of the processes executed by the communication management device 11 may be executed by, for example, an external server device or a cloud service. [Explanation of symbols]

[0162] 1. Communication Systems 10 Management System 11 Communication management device 100 Terminal Device 100a Terminal device (photography device) 100b, 100c Terminal device (information terminal, other terminal device) 400 computers 503 Communications Management Department 504 Receiving Unit 505 Restricted Section 515 web browser 516 First Communications Department 517 Second Communications Department 518 Notification Department 900 Applications [Prior art documents] [Patent documents]

[0163]

Patent Document 1

Claims

1. a communication management unit configured to manage a first communication in which a first terminal device transmits first content data to a second terminal device via a relay device, and a second communication in which the first terminal device transmits second content data to a third terminal device via the relay device; a receiving unit configured to receive, from the first terminal device, a determination result indicating whether communication with the second terminal device is possible and a determination result indicating whether communication with the third terminal device is possible, through a third communication not via the relay device; a limiting unit configured to determine that the first terminal device and the second terminal device are on the same network based on a determination result that the first terminal device is capable of communicating with the second terminal device through the third communication and a determination result that the first terminal device is not capable of communicating with the third terminal device through the third communication, and to limit a communication band of the first communication in the second terminal device that is capable of communicating with the first terminal device through the third communication; A communication management device comprising:

2. The communication management device according to claim 1 , wherein the limiting unit instructs the relay device to limit a communication band of the first communication in the second terminal device that is capable of the third communication with the first terminal device.

3. The communication management device according to claim 1 , wherein the limiting unit limits a transmission band of the first communication in the second terminal device that is capable of the third communication with the first terminal device.

4. A communication system including the communication management device according to any one of claims 1 to 3 and a first terminal device, The first terminal device a first communication unit configured to perform a first communication for transmitting first content data to a second terminal device via a relay device; a second communication unit configured to perform third communication with the second terminal device without passing through the relay device; a notification unit configured to notify the communication management device of a determination result indicating whether the second terminal device and the third communication are possible; A communication system comprising:

5. The communication system according to claim 4 , wherein the first terminal device and the second terminal device perform the first communication and the third communication using a web browser or an application having a web browser function.

6. The communication system according to claim 4 , wherein the second communication unit performs the third communication by using an API of WebRTC.

7. The communication system according to claim 4 , wherein the third communication is P2P communication for transmitting and receiving data one-to-one with the second terminal device.

8. The communication system according to claim 4 , wherein the first terminal device is a photographing device that transmits photographed video to the second terminal device.

9. a communication management process for managing a first communication in which a first terminal device transmits content data to a second terminal device via a relay device, and a second communication in which the first terminal device transmits second content data to a third terminal device via the relay device; a receiving process of receiving, from the first terminal device, a determination result indicating whether communication with the second terminal device is possible and a determination result indicating whether communication with the third terminal device is possible, via a third communication not via the relay device; a restriction process of determining that the first terminal device and the second terminal device are on the same network based on a determination result that the first terminal device is capable of communicating with the second terminal device through the third communication and a determination result that the first terminal device is not capable of communicating with the third terminal device through the third communication, and restricting a communication band of the first communication in the second terminal device that is capable of communicating with the first terminal device through the third communication; A computer-implemented communication management method.

10. a communication management process for managing a first communication in which a first terminal device transmits content data to a second terminal device via a relay device, and a second communication in which the first terminal device transmits second content data to a third terminal device via the relay device; a receiving process of receiving, from the first terminal device, a determination result indicating whether communication with the second terminal device is possible and a determination result indicating whether communication with the third terminal device is possible, via a third communication not via the relay device; a restriction process of determining that the first terminal device and the second terminal device are on the same network based on a determination result that the first terminal device is capable of communicating with the second terminal device through the third communication and a determination result that the first terminal device is not capable of communicating with the third terminal device through the third communication, and restricting a communication band of the first communication in the second terminal device that is capable of communicating with the first terminal device through the third communication; A program that causes a computer to execute the following.

Citation Information

Patent Citations

  • Method for avoiding invalid call connection processing and receiving local switch device

    JP2009296315A

  • Quality of service for web client-based sessions

    JP2016512667A

  • Parallel peer to peer connection establishment in webrtc conferencing

    US20200228579A1

  • Information processing device, information processing method, and program

    WO2013145522A1