MANAGEMENT SYSTEM, COMMUNICATION SYSTEM, AND TRANSMISSION CONTROL METHOD

A management system, a communication system, and a transmission control method. The management system includes a receiver to receive information of a predetermined attribute, circuitry to determine whether the predetermined attribute is associated with a client, and a transmitter to send the information received by the receiver to a communication terminal that is authenticated by a client when the predetermined attribute is associated with the client. The communication system includes an authentication system and a management system. The authentication system includes an acceptance unit to accept an authentication request from a client, and an authentication processing unit to authenticate the client. In the communication system, the authentication system and the management system communicate with each other through a communication network.

CROSS-REFERENCE TO RELATED APPLICATION

This patent application is based on and claims priority pursuant to 35 U.S.C. §119(a) to Japanese Patent Application No. 2015-193433, filed on Sep. 30, 2015, in the Japan Patent Office, the entire disclosure of which is hereby incorporated by reference herein.

BACKGROUND

Technical Field

Embodiments of the present invention relate to a management system, a communication system, and a transmission control method.

Background Art

In recent years, communication systems for performing phone conversation or video conference through the communication network such as the Internet or private lines are widely used due to increasing demands for reduction in cost and time. When communication among a plurality of communication terminals is started, such communication systems exchange contents of data such as image data and audio data with each other. Accordingly, the communication among the participants who use the communication terminals is realized. Moreover, as a method of sending contents of data from one communication terminal to some other communication terminals, the publish-subscribe model is known in the art (hereinafter, the publish-subscribe model may be referred to simply as “pub/sub model”).

For example, a remote monitoring system that operates with a first data processing system and a second data processing system is known in the art. Such a remote monitoring system stores the log data, which is generated by an application program, in the memory of the first data processing system that stores the application program. Subsequently, the remote monitoring system captures the newly stored log data, which is to be processed by a publisher program that is executed in the first data processing system, and repeatedly sends the captured log data to the second data processing system as a series of publication. Note also that the second data processing system is provided that a publish/subscribe and matching engine.

SUMMARY

Embodiments of the present invention described herein provide a management system, a communication system, and a transmission control method. The management system includes a receiver to receive information of a predetermined attribute, circuitry to determine whether the predetermined attribute is associated with a client, and a transmitter to send the information received by the receiver to a communication terminal that is authenticated by a client when the predetermined attribute is associated with the client. The communication system includes an authentication system and the management system. The authentication system includes an acceptance unit to accept an authentication request from a client, and an authentication processing unit to authenticate the client. In the communication system, the authentication system and the management system communicate with each other through a communication network. The transmission control method includes accepting an authentication request from a client, authenticating the client, receiving information of a predetermined attribute; and controlling the information received by the receiving to be sent to a communication terminal that is authenticated with a client by the authenticating when the predetermined attribute is associated with the client.

DETAILED DESCRIPTION

In describing example embodiments shown in the drawings, specific terminology is employed for the sake of clarity. However, the present disclosure is not intended to be limited to the specific terminology so selected and it is to be understood that each specific element includes all technical equivalents that have the same structure, operate in a similar manner, and achieve a similar result.

In the following description, an embodiment of the present invention is described with reference to the drawings.

<<Schematic Configuration of Communication System>>

FIG. 1is a schematic diagram illustrating a configuration of a communication system1according to the present embodiment. As illustrated inFIG. 1, the communication system1includes a communication terminal10, an authentication server40, and a management system50. Hereinafter, the communication terminal10may be referred to simply as the terminal10.

The management system50is a server that receives a message publication request and a message subscription request from clients in the publish-subscribe model. Such message publication requests and message subscription requests are used to exchange messages among clients. The publish-subscribe model may be referred to simply as a pub/sub model, and publication and subscription may be referred to simply as pub and sub, respectively. As a protocol compatible with the pub/sub model, for example, the management system50may be provided with a pub/sub extension (XEP-0060) of Message Queue Telemetry Transport (MQTT) or Extensible Messaging and Presence Protocol (XMPP).

The communication terminal10may be, for example, a general-purpose communication terminal, and may be installed with a desired client application. Alternatively, the communication terminal10may be, for example, a communication terminal that is designed for exclusive use, and may be installed with a specific client application that serves as a client. The communication terminal10is connected to the management system50through a communication network2. Accordingly, the clients of the communication terminal10can request message pub and message sub from the management system50. The communication terminal10may be, for example, a television conference terminal, an electronic whiteboard, a digital signage, a telephone, a tablet personal computer (PC), a smartphone, a camera, and a PC.

The authentication server40is a server that authenticates a client, which is a client application operating on the communication terminal10, and a user who uses that client, respectively, to authorize the use of the management system50. In order to implement such authentication and authorization as above, the management system50is provided with an authenticating or authorizing protocol such as OAuth 2.0 or OpenID Connect.

For the purpose of simplification, cases in which each of the management system50and the authentication server40is a single device are described as above with reference toFIG. 1. However, no limitation is intended by such an embodiment. At least one of the management system50and the authentication server40may include a plurality of devices. Alternatively, the management system50and the authentication server40may be implemented by a single system or device. Moreover, for the purpose of simplification, cases in which the communication system1includes the four communication terminals10are described as above with reference toFIG. 1. However, no limitation is intended by such an embodiment. The number of the communication terminals10that are provided for the communication system1may be two, three, or five or more. The types of the communication terminals10may be similar to each other, or may be different from each other as illustrated inFIG. 1.

Next, the hardware configuration of each element of the communication system1is described.

FIG. 2is a schematic block diagram illustrating the hardware configuration of the communication terminal10according to the present embodiment. The hardware configuration of the communication terminal10is not limited to the hardware configuration illustrated inFIG. 2as long as the communication terminal10is capable of performing communication. For example, the communication terminal10may include an additional element that is not illustrated inFIG. 2. Alternatively, some of the elements illustrated inFIG. 2may be omitted. Moreover, some of the elements illustrated inFIG. 2may be, for example, an external device that can be coupled to the communication terminal10. As illustrated inFIG. 2, the communication terminal10according to the present embodiment includes a central processing unit (CPU)101that controls the overall operation of the communication terminal10, a read-only memory (ROM)102that stores a control program used for operating the CPU101such as an initial program loader (IPL), a random access memory (RAM)103is mainly used as a work area in which the CPU101executes a program, a flash memory104that stores various kinds of data such as a communication control program for the communication terminal10, image data, and audio data, a solid state disk (SSD)105that controls reading or writing of various kinds of data to or from the flash memory104under the control of the CPU101, a medium interface (I/F)107that controls reading or writing of data with respect to a recording medium106such as a flash memory and an integrated circuit (IC) card, an operation key108that is operated by a user to input a user instruction such as a user selection of a destination of the communication from the communication terminal10, a power switch109that turns on or turns off the power of the communication terminal10, and a network interface (I/F)111that transmits data using the communication network2.

Moreover, the communication terminal10includes a built-in camera112that captures a subject under the control of the CPU101to obtain the image data of the subject, an imaging device interface (I/F)113that controls the operation of the camera112, a built-in microphone114that receives audio, a built-in loudspeaker115that outputs sound, an audio input and output (input/output) interface (I/F)116that controls the input and output of an audio signal between the microphone114and the loudspeaker115under the control of the CPU101, a display interface117that transmits the image data to an external display120under the control of the CPU101, an external device connection interface (I/F)118that connects the communication terminal10to various kinds of external devices, an alarm lamp119that provides notification of various kinds of functional abnormalities detected in the communication terminal10, and a bus line110such as an address bus or a data bus that electrically connects various elements as above to each other as illustrated inFIG. 2.

The display120may be a liquid crystal or organic electroluminescence (EL) display that displays an image of a subject, an operation icon, or the like. The display120is connected to the display interface117via a cable120c. The cable120cmay be an analog red green blue (RGB) (video graphic array (VGA)) signal cable, a component video cable, a high-definition multimedia interface (HDMI, registered trademark) signal cable, or a digital video interactive (DVI) signal cable.

The camera112includes a lens and a solid-state image sensing device that converts an image (video) of a subject into electronic data by converting light to electric charge. As the solid-state image sensing device, for example, a complementary metal-oxide-semiconductor (CMOS) or a charge-coupled device (CCD) is used.

To the external device connection interface118, an external device such as an external camera, an external microphone, and an external loudspeaker can be electrically connected, through a Universal Serial Bus (USB) cable or the like that is inserted into a connection port of the housing of the communication terminal10. In cases where an external camera is connected, the external camera is driven on a priority basis and the built-in camera112is not driven under the control of the CPU101. In a similar manner to the above, in the case where an external microphone is connected or an external loudspeaker is connected, the external microphone or the external loudspeaker is driven under the control of the CPU101on a top-priority basis over the built-in microphone114or the built-in loudspeaker115.

The recording medium106is removable from the communication terminal10. In addition, a nonvolatile memory that reads or writes data under the control of the CPU101is not limited to the flash memory104, and, for example, an electrically erasable and programmable read-only memory (EEPROM) may be used instead.

FIG. 3is a schematic block diagram illustrating a hardware configuration of the management system50according to the present embodiment. The management system50according to the present embodiment includes a CPU501that controls the entire operation of the communication management system50, a ROM502that stores a control program for controlling the CPU501such as the IPL, a RAM503that is used as a work area for the CPU501, a hard disk (HD)504that stores various kinds of data such as a control program for the management system50, a hard disk drive (HDD)505that controls reading or writing of various kinds of data to or from the HD504under control of the CPU501, a medium drive507that controls reading or writing of data from and to a recording medium506such as a flash memory, a display508that displays various kinds of information such as a cursor, a menu, a window, a character, and an image, a network interface (I/F)509that performs data communication using the communication network2, a keyboard511that is provided with a plurality of keys for allowing a user to input characters, numerical values, or various kinds of instructions, a mouse512for selecting or executing various kinds of instructions, selecting an object to be processed, or for moving a cursor, a compact disc read only memory (CD-ROM) drive514that reads or writes various kinds of data from and to a CD-ROM513, which is one example of removable recording medium, and a bus line510such as an address bus or a data bus that electrically connects various elements as above to each other as illustrated inFIG. 3.

Note that the hardware configuration of the authentication server40illustrated inFIG. 1is similar to that of the communication management system50, and thus the description of the hardware configuration of the authentication server40is omitted.

<Software Configuration of Communication Terminal>

FIG. 4is a schematic block diagram illustrating a software configuration of the communication terminal10according to the present embodiment. As illustrated inFIG. 4, the communication terminal10is installed with an operating system (OS)1020and client applications1031and1032, and these client applications1031and1032may be deployed on a work area1010of the RAM103.

The OS1020is basic software that controls entire operation of the communication terminal10through providing basic functions. The client applications1031and1032request the authentication server40to perform authentication, and sends at least one of a pub request and a sub request to the management system50.

InFIG. 4, the communication terminal10is installed with at least two client applications (for example, the client applications1031and1032). However, no limitation is indicated thereby, and the communication terminal10may be installed with one or any number of client applications. Alternatively, any desired application may be executed on the OS1020, and the client applications may operate in such an application.

Next, the functional configuration according to the present embodiment is described.FIG. 5is a functional block diagram of the communication terminal10, the authentication server40, and the management system50, according to an embodiment of the present invention. Note that the communication terminal10, the authentication server40, and the management system50together configure a part of the communication system1. InFIG. 5, the communication terminal10, the authentication server40, and the management system50are connected with each other so as to perform data communication through the communication network2.

<Functional Configuration of Communication Terminal>

The communication terminal10includes a data transmitter and receiver11, an operation acceptance unit12, a display controller13, an authentication request sender14, a publication (pub)-request sender15, a subscription (sub)-request sender16, and a data processor19. These elements are functions that are implemented by the operation of some of the hardware components illustrated inFIG. 2executed by the instructions from the CPU101in accordance with a control program expanded from the flash memory104onto the RAM103. The communication terminal10further includes a memory1000configured by the ROM102, the RAM103, and the flash memory104illustrated inFIG. 2.

<Detailed Functional Configuration of Communication Terminal>

Next, the functional configuration of the communication terminal10is described in detail with reference toFIG. 2andFIG. 5. In the following description of the functional configuration of the communication terminal10, the relation of the hardware elements inFIG. 2with the functional configuration of the communication terminal10will also be described.

The data transmitter and receiver11is implemented by the instructions from the CPU101and the network interface Ill, each of which is illustrated inFIG. 2, and transmits or receives various kinds of data (or information) to or from another communication terminal, apparatus, or system, through the communication network2.

The acceptance unit12is implemented by the instructions from the CPU101, the operation key108, and the power switch109, and receives various kinds of input or selection.

The display controller13is substantially implemented by the instructions from the CPU101illustrated inFIG. 2and the display interface117illustrated inFIG. 2, and sends the image data that is sent from the counterpart terminal to the display120during the conversation.

The authentication request sender14is implemented by the instructions according to the client applications from the CPU101illustrated inFIG. 2, and requests the authentication server40to perform authentication. In cases where the communication terminal10is installed with a plurality of client applications, the authentication request sender14is generated for each one of the executed client applications in the communication terminal10.

The pub-request sender15is implemented by the instructions according to the client applications from the CPU101illustrated inFIG. 2, and sends a pub request for a message to the management system50. When the client application can deal with a sub but cannot deal with a pub, the pub-request sender15is not generated in the communication terminal10. In cases where the communication terminal10is installed with a plurality of client applications that can deal with a pub, the pub-request sender15is generated for each one of the executed client applications in the communication terminal10.

The sub-request sender16is implemented by the instructions according to the client applications from the CPU101illustrated inFIG. 2, and sends a sub request for a message to the management system50. When the client application can deal with a pub but cannot deal with a sub, the sub-request sender16is not generated in the communication terminal10. In cases where the communication terminal10is installed with a plurality of client applications that can deal with a sub, the sub-request sender16is generated for each one of the executed client applications in the communication terminal10.

The data processor19is substantially implemented by the instructions from the CPU101and the SSD105, each of which is illustrated inFIG. 2. The data processor19stores various types of data in the memory1000or read various types of data from the memory1000. Note that the data processor19may be implemented by the instructions from the CPU101only.

<Functional Configuration of Authentication Server>

As illustrated inFIG. 5, the authentication server40includes a data transmitter and receiver41, a user authenticator42, a client authenticator43, an authorization unit44, a token issuing unit45, and a data processor49. These units are functions implemented by or caused to function by operating some of the elements illustrated inFIG. 3under the control of the instructions from the CPU501. Note also that such instructions from the CPU501are made in accordance with a program for the authentication server40expanded from the HD504to the RAM503. The authentication server40also includes a memory4000that is configured by the HD504illustrated inFIG. 3.

FIG. 6Ais a diagram illustrating an example data structure of a user management table, according to the present embodiment. In the memory4000, as illustrated inFIG. 5, a user management database (DB)4001that is made of a user management table is stored. The authentication management table stores, for each user ID (identifier, identification), the user name and the password in association with each other.

FIG. 6Bis a diagram illustrating an example data structure of a client management table, according to the present embodiment. In the memory4000, as illustrated inFIG. 5, a client management database (DB)4002that is made of a client management table is stored. The authentication management table stores, for each client ID, the client name and the password in association with each other.

A chat application illustrated inFIG. 6Bis a client application that exchanges a message among a plurality of users. A log application illustrated inFIG. 6Bis a client application that is used by the communication terminal10to request the management system50to publish the log of the communication terminal10as a message. A log management application illustrated inFIG. 6Bis a client application that is used to request the management system50to subscribe to the log of the communication terminal10as a message. Note also that the log management application is not only a client application that is used to request the management system50to subscribe to the log but also is a server application that accepts a request for log management from the log application. A monitoring camera application illustrated inFIG. 6Bis a client application that is used by the communication terminal10to request the management system50to publish the image data of captured images as a message. A monitoring center application illustrated inFIG. 6Bis a client application that is used to request the management system50to subscribe to the image data of captured images as a message. Note also that the monitoring center application is not only a client application that is used to request the management system50to subscribe to the image data but also is a server application that accepts a request for the management of captured images from the monitoring camera application.

FIG. 6Cis a diagram illustrating an example data structure of a service management table, according to the present embodiment. In the memory4000, as illustrated inFIG. 5, a service management database (DB)4003that is made of a service management table is stored. The service management table stores the service name in association with each service ID. According to the present embodiment, the service “transmission management system” that is identified by service ID “S01” is the management system50. The right of the management system50to use the functions of pub/sub is the resource. Note also that the pub/sub service with the use of the management system50serves as a scope of authorization in the protocol of OAuth 2.0. Note also that the management system50serves as a resource server.

FIG. 6Dis a diagram illustrating an example data structure of a service authorization management table, according to the present embodiment. In the memory4000, as illustrated inFIG. 5, a service authorization management database (DB)4004that is made of a service authorization management table is stored. The service authorization management table stores the service ID in association with each client ID. Accordingly, in the service authorization management table, what client can access what service can be managed. The service authorization management table illustrated inFIG. 6Dindicates that the chat application identified by the client ID “C01” can access the transmission management system identified by the service ID “S01”, i.e., the management system50.

<Detailed Functional Configuration of Authentication Server>

The data transmitter and receiver41is implemented by the instructions from the CPU501and the network interface509, each of which is illustrated inFIG. 3, and transmits or receives various kinds of data (or information) to or from another communication terminal, apparatus, or system, through the communication network2.

The user authenticator42is implemented by the instructions from the CPU501illustrated inFIG. 3, and performs user authentication in response to a request from a client.

The client authenticator43is implemented by the instructions from the CPU501illustrated inFIG. 3, and performs client authentication in response to a request from a client.

The authorization unit44is implemented by the instructions from the CPU501illustrated inFIG. 3, and performs authorization by specifying the access right of a client to service.

The token issuing unit45is implemented by the instructions from the CPU501illustrated inFIG. 3, and issues an authorizing token to be used in the service that a client wishes to access.

The data processor49is substantially implemented by the instructions from the CPU501and the HDD505, each of which is illustrated inFIG. 3. The data processor49stores various types of data in the memory4000or read various types of data from the memory4000. Note that the data processor49may be implemented by the instructions from the CPU501only.

<Functional Configuration of Management System>

The management system50includes a data transmitter and receiver51, a token checker52, a pub acceptance unit53, a sub acceptance unit54, and a data processor59. These units are functions implemented by or caused to function by operating some of the elements illustrated inFIG. 3under the control of the instructions from the CPU501. Note also that such instructions from the CPU501are made in accordance with a program for the management system50expanded from the HD504to the RAM503. The management system50also includes a memory5000that is configured by the HD504illustrated inFIG. 3.

FIG. 7Ais a diagram depicting a topic management table according to the present embodiment. In the memory5000, as illustrated inFIG. 5, a topic management database (DB)5001that is made of a topic management table is stored. The topic management table stores the topic name in association with each topic ID. A topic is an attribute associated with a message. Once a client application specifies a topic and sends a sub request, the management system50sends a message that is published in association with the specified topic to the client application of the request sender.

FIG. 7Bis a diagram illustrating an example data structure of a client authorization management table, according to the present embodiment. In the memory5000, as illustrated inFIG. 5, a client authorization management database (DB)5002that is made of client authorization management table is stored. The client authorization management table stores, for each topic ID, the client name and the authorization information in association with each other. The authorization information indicates whether or not to have the right to publish or subscribe to.

The client authorization management table inFIG. 7Bindicates that the log application has the authority to publish but does not have the authority to subscribe to a message that is associated with the topic “device_log” identified by the topic ID “T01”. In a similar manner, the client authorization management table inFIG. 7Bindicates that the log management application has the authority to subscribe to but does not have the authority to publish a message that is associated with the topic “device_log” identified by the topic ID “T01”. The client authorization management table inFIG. 7Bindicates that the chat application has the authority to publish and subscribe to a message that is associated with the topic “bulletin_board” identified by the topic ID “T02”. Moreover, the client authorization management table inFIG. 7Bindicates that the chat application has the authority to publish but does not have the authority to subscribe to a message that is associated with the topic “message_to/a” and “message_to/b” identified by the topic ID “T03and T04”.

A server such as the management system50that brokers a message from a client in the pub/sub model is referred to as a broker. For example, when the log management application and the chat application access a broker in the related art, the broker sends a message on a topic for the log management application to the chat application, or the broker sends a message on a topic for the chat application to the log management application. For this reason, a broker has to be provided for each client in the related art, and thus the extensibility was low. By contrast, the management system50according to the present embodiment is provided with the client authorization management table. Thus, even when a plurality of clients are connected to the management system50, the management system50can send an appropriate message to each of the clients.

FIG. 7Cis a diagram illustrating an example data structure of a user authorization management table, according to the present embodiment. In the memory5000, as illustrated inFIG. 5, a user authorization management database (DB)5003that is made of a user authorization management table is stored. The user authorization management table stores, for each topic ID, the user name, the client name, and the authorization information in association with each other. The authorization information indicates whether or not to have the right to publish or subscribe to. The user authorization management table inFIG. 7Cindicates that the communication terminal10authenticated by the chat application to be the user “a” has the authority to subscribe to a message that is associated with the topic “message_to/a” identified by the topic ID “T03”. Due to the use of the user authorization management table, only the chat application that the user “a” uses can subscribe to a message associated with the topic “message_to/a”.

FIG. 7Dis a diagram depicting a session management table according to the present embodiment. In the memory5000, as illustrated inFIG. 5, a session management database (DB)5004that is made of a session management table is stored. The session management table stores the user name, the client name, and the topic ID in association with each other. The session management table indicates the user of each of the client applications that is being connected to the management system50as well as the topic ID of a message that is being subscribed to by the client application. Accordingly, the management system50can determine what message is to be sent to what client application when a message is received. For example, a request to publish a message associated with the topic “bulletin_board” identified by the topic ID “T02” is received, the management system50can determine that the message is to be sent to the chat application that the users a and b use and the message are not to be sent to the log management application or the monitoring camera application that the user “a” uses.

<Detailed Functional Configuration of Management System>

Next, the functional configuration of the management system50is described in detail. In the following description of the functional configuration of the management system50, the relation between the hardware configuration ofFIG. 3and the functional configuration of the management system50illustrated inFIG. 5will also be described.

The data transmitter and receiver51is implemented by the instructions from the CPU501and the network interface509, each of which is illustrated inFIG. 3, and transmits or receives various kinds of data (or information) to or from another communication terminal, apparatus, or system, through the communication network2.

The token checker52is implemented by the instructions from the CPU501illustrated inFIG. 3, and checks an authorizing token included in the login request sent from the communication terminal10.

The pub acceptance unit53is implemented by the instructions from the CPU501illustrated inFIG. 3, and receives a pub request from the client.

The sub acceptance unit54is implemented by the instructions from the CPU501illustrated inFIG. 3, and receives a sub request from the client.

The data processor59is substantially implemented by the instructions from the CPU501and the HDD505, each of which is illustrated inFIG. 3. The data processor59stores various types of data in the memory5000or read various types of data from the memory5000. Note that the data processor59may be implemented by the instructions from the CPU501only.

Next, the operation of the communication terminal10, the authentication server40, and the management system50that together configure the communication system1is described. Firstly, the authentication processes according to the present embodiment are described with reference toFIG. 8.FIG. 8is a sequence diagram illustrating the authentication processes according to the present embodiment.

Once a desired client application that is installed in the communication terminal10is activated (step S21), the functional units that correspond to the activated client application start the following processes. The client application of the communication terminal10obtains user ID and a user password (step S22). No limitation is intended, but the obtaining method may be, for example, a method in which the operation acceptance unit12accepts an input of user ID and a password, and a method in which the data processor19reads user ID and a password that are stored in advance in the memory1000.

The authentication request sender14of the communication terminal10sends an authentication/authorization request to the authentication server40through the data transmitter and receiver11(step S23). The authentication/authorization request includes a request to authenticate a user, a request to authenticate a client, and a request to authorize the use of service. The authentication request that is sent to the management system50includes the user ID and the user password obtained by the communication terminal10, client ID and a client password of the activated client application, and service ID that serves as a scope indicating the service to be used. The client ID and the client password may be stored in advance in the memory1000and be read by the data processor19. In the following description, cases in which the service ID included in the authentication request is “S01” that indicates the management system50are described.

The data transmitter and receiver41of the authentication server40receives an authentication request sent from the communication terminal10. The user authenticator42of the authentication server40authenticates a user depending on whether or not a pair of the user ID and the user password included in the authentication request is stored in the user management table (seeFIG. 6A) (step S24). When a pair of the user ID and the user password included in the authentication request is stored in the user management table, the user authenticator42successfully authenticates the user. When a pair of the user ID and the user password included in the authentication request is not stored in the user management table, the user authenticator42fails to authenticate the user.

The client authenticator43of the authentication server40authenticates a client depending on whether or not a pair of the client ID and the client password included in the authentication request is stored in the client management table (seeFIG. 6B) (step S25). When a pair of the client ID and the client password included in the authentication request is stored in the client management table, the client authenticator43successfully authenticates the client. When a pair of the client ID and the client password included in the authentication request is not stored in the client management table, the client authenticator43fails to authenticate the client.

The authorization unit44of the authentication server40authorizes a requesting client to access the service depending on whether or not a pair of the client ID and the service ID included in the authentication request is stored in the service authorization management table (seeFIG. 6D) (step S26). When a pair of the client ID and the service ID included in the authentication request is stored in the service authorization management table, the authorization unit44successfully authorizes the access. When a pair of the client ID and the service ID included in the authentication request is not stored in the service authorization management table, the authorization unit44fails to authorize the access. For example, when the chat application that the user “a” uses requests the use of the management system50, the communication terminal10sends to the authentication server40the authentication request that includes the user ID “U01”, the client ID “C01”, and the service ID “S01”. In this case, the pair of the client ID “C01” and the service ID “S01” included in the authentication request is stored in the service authorization management table, and thus the authorization unit44successfully authorizes the access.

When there is a failure in at least one of the user authentication, the client authentication, and the service authorization, the data transmitter and receiver41sends an error message indicating a failure in authentication or authorization to the request sender communication terminal10.

When all the user authentication, the client authentication, and the service authorization are successful, the token issuing unit45of the authentication server40issues an authorizing token that indicates that the request sender communication terminal10can access the management system50(step S27). The authorizing token includes the user name, the client name, the service name that uses this authorizing token, the expiration date, or the like.

In the communication system1, authentication and authorization can be performed with a protocol such as the OAuth 2.0 and the OpenID Connect. In such cases, a method of exchanging the authentication information such as user ID and a user password and the contents of the authorizing token are determined by the specification of a protocol such as the OAuth 2.0 and the OpenID Connect. In this configuration, the token may be a JSON Web Token (JWT). In order to ensure that the authorizing token is not tampered in the path, the token issuing unit45may digitally sign the authorizing token using a secret key. The secret key may be implemented using the RSA (Rivest, Shamir, and Adleman) cryptosystem. Note also that the digital signature may be implemented using a public key cryptography such as the hash-based message authentication code (HMAC). The management system50that uses the authorizing token checks the digital signature using a public key or a secret key depending on whether the authorizing token is digitally signed using a secret key or a public key. The digital signature may be implemented using a known standard, for example, the JSON Web Signature (JWS). The authorizing token may be encoded by using, for example, the JSON Web Encryption (JWE), where appropriate.

The data transmitter and receiver41incorporates the issued authorizing token into the authentication result, and sends the authentication result to the communication terminal10. The data transmitter and receiver11of the communication terminal10receives from the authentication server the authentication result that includes the authorizing token. Subsequently, the data transmitter and receiver11of the communication terminal10sends the received authorizing token to the management system50to request login (step S28).

The data transmitter and receiver51of the communication management system50receives the login request sent from the communication terminal10. The token checker52of the management system50checks an authorizing token included in the login request (step S29). In this case, the token checker52analyzes the authorizing token that is included in the login request according to the standard adopted in the communication system1. The token checker52may determine whether the digital signature that is made by the authentication server is appropriate based on the result of the analysis. When the digital signature that is made by the authentication server is determined to be inappropriate, the token checker523determines that the authorizing token included in the login request has been tampered, and fails to authorize the login request.

Subsequently, the token checker52checks the expiration date included in the authorizing token to determine whether or not the expiration date of the authorizing token has expired. When the expiration date of the authorizing token is determined to have expired, the token checker52fails to authorize the login request due to the expiration of the authorizing token.

Subsequently, the token checker52checks whether or not the authorizing token includes the service name that corresponds to the management system50. When the authorizing token is determined not to include the service name that corresponds to the management system50, the token checker52fails to authorize the login request.

When the token checker52fails to authorize the login request due to the check processes of any one of the digital signature, expiration date, and the service name of the authorizing token, the data transmitter and receiver51sends to the communication terminal10authorization result information indicating that the authorization ended in failure. When the token checker52determines that the digital signature, expiration date, and the service name of the authorizing token are all valid, the use of the service by the user and the client specified in the authorizing token is authorized. Once the user and the client are authorized, the management system50establishes a session with the communication terminal10(step S30). In such cases, the management system50sends to the communication terminal10authorization result information indicating that the authorization was successful.

Once the session is established, the management system50stores in the memory1000the user name of the client, the client name, the IP address of the client, or the like included in the authorizing token in association with each other. Due to this configuration, the management system50can figure out the user name of the client (of the request sender) and the client name, without the client's sending the user name and the client name to the management system50every time the client sends data to the management system50.

The processes in the steps S21to S30as above are performed for each of the client applications activated in the communication terminal10. For example, the client applications such as the chat application and the log management application may use a shared user password or user ID to send an authentication request to the authentication server40. When the management system50has successfully authenticated the client applications, a plurality of sessions are simultaneously established between the management system50and the client applications, respectively.

Next, the processes in which a message is published and subscribed to among the multiple communication terminals10are described with reference toFIG. 9.FIG. 9is a sequence diagram illustrating the processes of publishing and subscribing to a message, according to the present embodiment. Hereinafter, the processes in which a message is published and subscribed to between the communication terminal10aand the communication terminal10b, which are examples of the multiple communication terminals10, are described.

The following processes are to be performed after the management system50has successfully authenticated the user “a” and the client application “chat application” and the authentication result information is sent from the management system50to the communication terminal10a. The sub-request sender16of the communication terminal10asends a sub request to the management system50in order for the user “a” to receive a message written in a bulletin board and a message addressed to the communication terminal10a(step S41). The sub request includes the topic name “bulletin_board” related to a bulletin board and the topic name “message_to/a” related to a message addressed to the user “a”.

The data transmitter and receiver51of the communication management system50receives the sub request sent by the chat application of the communication terminal10a. The sub acceptance unit54of the management system50determines whether or not the chat application of the communication terminal10ahas the authority to be subscribed to a message related to the sub request (step S42). With reference toFIG. 10, the processes in the step S42are described in detail.FIG. 10is a flowchart of the processes of determining whether or not each communication terminal has the authority to subscribe to a message, according to the present embodiment.

Firstly, the sub acceptance unit54determines whether or not each topic name included in the sub request is stored in the topic management table (seeFIG. 7A) (step S42-1). When it is determined that the topic name included in the sub request is not stored in the topic management table (“NO” in the step S42-1), the sub acceptance unit54determines that the sub-request sender does not have the authority to subscribe to the topic specified in sub request (step S42-5).

When it is determined that the topic name included in the sub request is stored in the topic management table (“YES” in the step S42-1), the sub acceptance unit54determines, for each topic name included in sub request, whether or not a group of the topic ID, the client name of the sub-request sender, and the authorization information “sub” is stored in the client authorization management table (step S42-2). Note that the authorization information “sub” indicates the presence of sub authorization. In regard to the topic name “bulletin_board” included in sub request, sub acceptance unit54determines that the group of the topic ID “T02” of “bulletin_board”, the client name “chat application” of the pub-request sender, and the authorization information “sub” indicating the presence of sub authorization is stored in the client authorization management table (“YES” in the step S42-2). In regard to the topic name “message_to/a” included in sub request, sub acceptance unit54determines that the group of the topic ID “T03” of “message_to/a”, the client name “chat application” of the pub-request sender, and the authorization information “sub” indicating the presence of sub authorization is not stored in the client authorization management table (“NO” in the step S42-2). When it is determined to be “NO” in the step S42-2, the sub acceptance unit54determines whether or not a group of the topic ID of a topic included in the sub request, the user name of the sub-request sender, the client name of the sub-request sender, and the authorization information “sub” is stored in the user authorization management table (step S42-3). Note that the authorization information “sub” indicates the presence of sub authorization. In regard to the topic name “message_to/a” included in sub request, sub acceptance unit54determines that the group of the topic ID “T03” of “message_to/a”, the user name “a” of sub-request sender, the client name “chat application” of the pub-request sender, and the authorization information “sub” indicating the presence of sub authorization is stored in the user authorization management table (“YES” in the step S42-3).

When it is determined to be “NO” in the step S42-3, the sub acceptance unit54determines that the sub-request sender does not have the authority to subscribe to the topic specified in sub request (step S42-5).

On the other hand, when it is determined to be “YES” in the steps S42-2or S42-3, the sub acceptance unit54determines that the chat application of the sub-request sender has the authority to subscribe to the topics “bulletin_board” and “message_to/a” specified in sub request (step S42-4). In this case, sub acceptance unit54registers the user name “a” of sub-request sender, the client name “chat application”, the topic ID “T2” and “T3” of the topics “bulletin_board” and “message_to/a” in association with the session management table (seeFIG. 7D) (step S43).

The data transmitter and receiver51of the management system50may transmit information about the permission or rejection of the sub request to the communication terminal10abased on the result of the determination made in the steps S42-4and S42-5.

The processes in the steps S41to S43as above are performed for each of the client applications activated in the communication terminal10. For example, when the user “a” starts the chat application and the log management application on the communication terminal10a, each of the chat application and the log management application can send a sub request to the management system50. Once the sub requests from the chat application and the log management application are permitted, the client ID indicating the chat application or the log management application, and the topic ID that corresponds to the request from each of the client applications are associated with the user name in common and stored in the session management table (seeFIG. 7D).

The following processes are to be performed after the management system50has successfully authenticated the user “b” and the client application “chat application” and the authentication result information is sent from the management system50to the communication terminal10b. Once the operation acceptance unit12of the communication terminal10breceives a message for bulletin board “hello” input by the user “b”, the pub-request sender16sends a pub request to the management system50(step S44). The pub request includes the topic name “bulletin_board” related to a bulletin board and the received message “helllo”.

The data transmitter and receiver51of the communication management system50receives the pub request sent by the chat application of the communication terminal10b. The pub acceptance unit53of the management system50determines whether or not the chat application of the communication terminal10bhas the authority to publish a message on the topic related to the pub request (step S45). With reference toFIG. 11, the processes in the step S45are described in detail.FIG. 11is a flowchart of the processes of determining whether or not each communication terminal has the authority to publish a message, according to the present embodiment.

Firstly, the pub acceptance unit53determines whether or not each topic name included in the pub request is stored in the topic management table (seeFIG. 7A) (step S45-1). When it is determined that the topic name included in the pub request is not stored in the topic management table (“NO” in the step S45-1), the pub acceptance unit53determines that the pub-request sender does not have the authority to subscribe to the topic specified in pub request (step S45-5).

When it is determined that the topic name included in the pub request is stored in the topic management table (“YES” in the step S45-1), the pub acceptance unit53determines, for each topic name included in pub request, whether or not a group of the topic ID, the client name of the pub-request sender, and the authorization information “pub” is stored in the client authorization management table (step S45-2). Note that the authorization information “pub” indicates the presence of pub authorization. In regard to the topic name “bulletin_board” included in the pub request, the pub acceptance unit53determines that the group of the topic ID “T02” of “bulletin_board”, the client name “chat application” of the pub-request sender, and the authorization information “pub” indicating the presence of pub authorization is stored in the client authorization management table (“YES” in the step S45-2). When it is determined to be “NO” in the step S45-2, the pub acceptance unit53determines whether or not a group of the topic ID of a topic included in the pub request, the user name of the pub-request sender, the client name of the sub-request sender, and the authorization information “pub” indicating the presence of pub authorization is stored in the user authorization management table (step S45-3).

When it is determined to be “NO” in the step S45-3, the pub acceptance unit53determines that the pub-request sender does not have the authority to subscribe to the topic specified in pub request (step S45-5).

On the other hand, when it is determined to be “YES” in the steps S45-2or S45-3, the pub acceptance unit53determines that the pub-request sender has the authority to subscribe to the topic “bulletin_board” specified in pub request (step S45-4).

The data transmitter and receiver51of the management system50may transmit information about the permission or rejection of the pub request to the communication terminal10bbased on the result of the determination made in the steps S45-4and S45-5.

On the other hand, when it is determined to be “YES” in the steps S45-2or S45-3, the pub acceptance unit53searches the session management table using the topic ID “T02” of “bulletin_board” included in the message that is permitted to be published as a search key, and obtains a pair of the corresponding user name and client name, i.e., (“a”, chat application) and (“b”, chat application) (step S46). Accordingly, the pub acceptance unit53can specify the chat application in use by the user “a” and the chat application in use by the user “b” as the destination to which a message is to be sent.

The data transmitter and receiver51sends the message requested to publish to which the request sender has been added, i.e., a message “hello (fromb)” to the specified destinations, i.e., the chat application in use by the user “a” of the communication terminal10aand the chat application in use by the user “b” of the communication terminal10b. When each of the chat application and the log management application of the communication terminal10ais connected to the management system50, the management system50uses the session with the chat application of the communication terminal10ato send a message. Accordingly, the log management application can be prevented from receiving a message for a chat application.

The management system50may store a message related to the pub request in the memory5000. By so doing, when a client that is not connected to the management system50at the time of pub request is later connected to the management system50, the management system50can send a message stored in the memory5000to that client.

The processes in the steps S44to S47-1and S47-2as above are performed for each of the client applications activated in the communication terminal10b. In other words, when a client application and a user are authenticated in the management system50, a pub request for a message can be made for every client application that the user uses.

Modification of Example Embodiment

Next, a modification of the embodiments of the present invention is described. In particular, differences in configuration from the embodiments as described above are described.FIG. 12is a schematic diagram illustrating a configuration of a communication system according to a modification of the example embodiment of the present invention. In the present modification, the communication terminals10c,10d, and10eare connected to each other such that these communication terminals can communicate with each other and with other devices through the communication network2. Note that each of the communication terminals10cand10daccording to the present modification is a monitoring camera with a communication capability. The communication terminals10cand10dmay be installed in the same store300. Note also that the communication terminal10eis a general-purpose personal computer (PC).

Each of the communication terminals10cand10dis installed with a monitoring camera application as a client application. In a similar manner to the processes in the steps S21to S30, the monitoring camera application of each of the communication terminals10cand10duses the authority of a common user “a” to send an authentication/authorization request to the authentication server40. As a result, each of the communication terminals10cand10destablishes a session with the management system50.

The communication terminal10eis installed with a monitoring center application as a client application. In a similar manner to the processes in the steps S21to S30, the monitoring center application of the communication terminal10euses the authority of the common user “a” to send an authentication/authorization request to the authentication server40. As a result, the communication terminal10eestablishes a session with the management system50.

In a similar manner to the processes in the steps S41to S43, the monitoring center application of the communication terminal10esends a sub request for the topic “surveillance/mart” to the management system50, and the sub request is authorized by the management system50. In a similar manner to the processes in the step S44, the monitoring camera application of each of the communication terminals10cand10dsends a pub request for the topic “surveillance/mart” to the management system50. However, the processes herein are different from those in the embodiments described above as follows. Each of the monitoring camera applications sends the image data of an image captured by the local communication terminal to the management system50as a message related to the topic “surveillance/mart”. The management system50authorizes the pub requests of the monitoring camera applications of the communication terminals10cand10din a similar manner to the processes in the step S45. Further, the management system50specifies the destination of a message to be the monitoring center application of the communication terminal10ethat the user “a” uses, in a similar manner to the processes in the step S46. Accordingly, the management system50sends the message (image data) received from the monitoring camera applications of the communication terminals10cand10dto the monitoring center application of the communication terminal10e, in a similar manner to the processes in the step S47-1. Note also that the monitoring camera application of each of the communication terminals10cand10dmay send a pub request for the topic “surveillance/mart” to the management system50on a regular basis (for example, every 5 seconds). Accordingly, the monitoring center application of the communication terminal10ecan receive the image data of the captured images as a message at regular time intervals. Thus, the monitoring center application can achieve remote monitoring of the store300.

Next, some effects of the above example embodiments of the present invention are described. With the transmission control method according to the embodiments described above, the data transmitter and receiver51of the management system50serves as a receiver, and receives information of a predetermined attribute. Note that the attribute indicates, for example, a topic that specifies the information to be subscribed to in a publish-subscribe model. Note also that the information specified by a topic indicates, for example, a message or image data that can be published or subscribed to in a pub/sub model. When a predetermined attribute is associated with a certain client in the client authorization management DB5002, the pub acceptance unit53and the sub acceptance unit54of the management system50control the data transmitter and receiver51to send the information received by the data transmitter and receiver51to the communication terminal10that is authenticated by the certain client. Note that the pub acceptance unit53and the sub acceptance unit54serve as a controller, and the control performed by the pub acceptance unit53and the sub acceptance unit54is an example of a step of controlling. When a predetermined attribute is associated with both a certain account and a certain client in the user authorization management DB5003, the pub acceptance unit53and the sub acceptance unit54(i.e., an example of a controller) of the management system50control the data transmitter and receiver51to send the information received by the data transmitter and receiver51to the communication terminal10that is authenticated by both the certain account and the certain client. Note the control performed herein by the pub acceptance unit53and the sub acceptance unit54is an example of a step of controlling. When a predetermined attribute is not associated with both a certain account and a certain client in the user authorization management DB5003, the pub acceptance unit53and the sub acceptance unit54of the management system50control the data transmitter and receiver51not to send the information received by the data transmitter and receiver51to the communication terminal10that is authenticated by both the certain account and the certain client. Note the control performed herein by the pub acceptance unit53and the sub acceptance unit54is an example of a step of controlling. Note that an account indicates an authority to use a service, and for example, user ID may be used as an account. According to the embodiments described above, even when a plurality of clients are connected to the management system50, appropriate information can be subscribed to on a client-by-client basis or on a client and account by client and account basis.

The client authorization management DB5002of the management system50stores identification information of the client and attribute information indicating the attribute in association with each other. Note that the client authorization management DB5002serves as a manager. When a certain account is associated with the attribute information indicating a predetermined attribute in the client authorization management DB5002, the pub acceptance unit53and the sub acceptance unit54control the data transmitter and receiver51to send the information received by the data transmitter and receiver51to the communication terminal10that is authenticated by the certain client. The user authorization management DB5003of the management system50stores an account, client identification information, and the attribute information indicating an attribute in association with each other. When a certain account, the information identifying a certain client, and the attribute information indicating a predetermined attribute are associated with each other in the user authorization management DB5003, the pub acceptance unit53and the sub acceptance unit54control the data transmitter and receiver51to send the information received by the data transmitter and receiver51to the communication terminal10that is authenticated by the certain client. As described above, in the management system50, client identification information and an attribute are associated with each other in advance, or an account, client identification information, and the attribute information indicating an attribute are associated with each other in advance. Accordingly, the pub acceptance unit53and the sub acceptance unit54can determine whether or not to send information.

The data transmitter and receiver41of the authentication server40accepts an authentication request from a certain client and a certain account. Note that the reception performed herein is an example of a step of receiving, and the authentication server40and the data transmitter and receiver41serve as an authentication system and a receiver, respectively. The user authenticator42of the authentication server40authenticates the certain account. The client authenticator43of the authentication server40authenticates the certain account. Note that the authentication performed herein is an example of a step of authenticating, and the client authenticator43serves as an authentication processing unit. By so doing, when a certain account and a certain client are authenticated, the management system50can control specified information to be subscribed to.

The token issuing unit45of the authentication server40issues an authorizing token when the user authenticator42authenticates a certain account and the client authenticator43authenticates a certain client. Note that the token issuing unit45serves as an issuing unit. The management system50authorizes the use of service based on an authorizing token issued by the token issuing unit45. Accordingly, the security can be ensured even when the management system50and the authentication server40are separate devices.

Further, the control programs for the communication terminal10, the authentication server40, and the management system50may be recorded in a file in a format installable or executable on a computer-readable recording medium such as the recording medium106for distribution. Examples of the recording medium include, but not limited to, a compact disc-recordable (CD-R), a digital versatile disk (DVD), and a Blu-ray disc.

Note also that a recording medium such as a CD-ROM storing the programs according to the example embodiment as described above or the HD504storing these programs may be distributed as a program product at home and abroad.

The communication terminal10, the authentication server40, and the management system50according to the embodiment as described above may be configured by a single computer or a plurality of computers to which functions or units are allocated as desired in a divided manner. Alternatively, the authentication server40and the management system50may be implemented by a single computer (one or more processors).