Messaging server, messaging system, messaging method, and program

The messaging server enables subscribers to receive messages from publishers through a publish-subscribe method, addressing the limitation in existing technologies and enhancing system functionality.

JP2025143641APending Publication Date: 2025-10-02RICOH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024042971
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-19
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing messaging technologies do not allow subscribers to be set to receive messages sent by publishers.

Method used

A messaging server that utilizes a publish-subscribe communication method, including registration information holding, receiving, and transmitting mechanisms to enable subscribers to receive messages based on their identification information.

Benefits of technology

Subscribers can be effectively set to receive messages from publishers, enhancing the functionality and flexibility of messaging systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025143641000001_ABST
    Figure 2025143641000001_ABST
Patent Text Reader

Abstract

To provide a server, method, program, and system for setting a subscriber for receiving a message transmitted by a publisher.SOLUTION: A messaging server for performing messaging between a publisher and a subscriber using a publish / subscribe type communication system comprises: registration information holding means (subscription information management section) for holding registration information including identification information and message type desired to be received and set by the subscriber, received from the subscriber through a first terminal connected by a communications network; reception means (web service processing section) for receiving, from the publisher through a second terminal, selection of a message type to be associated with a message and selection of identification information corresponding to the selected message type and received from the subscriber; and transmission means (message transmission / reception section) for transmitting a message to the subscriber based on the registration information.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a messaging server, a messaging system, a messaging method, and a program. [Background technology]

[0002] The following Patent Document 1 discloses a technology for notifying the status of devices and users connected to a network, in order to reduce unnecessary notifications and lighten the processing load on the server, by specifying whether to notify the user based on the duration of the status (online or offline, etc.), the time when the status changed, and the history of status changes, and notifying only when those conditions are met. Summary of the Invention [Problem to be solved by the invention]

[0003] However, the technology of Patent Document 1 does not allow a subscriber to be set to receive a message sent by a publisher.

[0004] In view of the above-mentioned problems, an object of the present invention is to set a subscriber who receives a message sent by a publisher. [Means for solving the problem]

[0005] In view of the above problems, a messaging server according to one embodiment is a messaging server that performs messaging between publishers and subscribers using a publish-subscribe communication method, and includes: a registration information holding means for holding registration information received from the subscriber via a first terminal, the registration information including the subscriber's settings for receiving a message type and identification information; a receiving means for receiving from the publisher via a second terminal a selection of a message type to be associated with a message and a selection of identification information received from the subscriber that corresponds to the selected message type; and a transmitting means for transmitting a message to the subscriber based on the registration information. [Effects of the Invention]

[0006] According to one embodiment of the messaging server, subscribers can be set to receive messages sent by publishers based on their identification information. [Brief explanation of the drawings]

[0007] [Figure 1] FIG. 1 is a diagram showing an example of a system configuration of a messaging system according to an embodiment. [Figure 2] FIG. 2 is a hardware configuration diagram of a server and a terminal according to an embodiment. [Figure 3] FIG. 2 is a hardware configuration diagram of a device according to an embodiment. [Figure 4] FIG. 2 is a diagram showing an example of the functional configuration of a server according to an embodiment. [Figure 5] FIG. 4 is a diagram showing an example of a data configuration of tenant information stored in a tenant information storage unit. [Figure 6] FIG. 3 is a diagram showing an example of a data configuration of user information stored in a user information storage unit. [Figure 7] FIG. 2 is a diagram showing an example of the data configuration of log information managed by a log information storage unit. [Figure 8] FIG. 4 is a diagram showing an example of the data configuration of subscription information stored in a subscription information storage unit. [Figure 9] FIG. 2 is a diagram showing an example of the data configuration of publish information stored in a publish information storage unit. [Figure 10] FIG. 10 is a diagram showing an example of the data configuration of a message type list stored in a message type storage unit. [Figure 11] FIG. 4 is a diagram showing an example of a data configuration of management information stored in a message transmitting / receiving unit. [Figure 12] FIG. 1 is a diagram showing an example of a processing sequence performed by a messaging system according to an embodiment. [Figure 13] FIG. 1 is a diagram showing an example of a processing sequence performed by a messaging system according to an embodiment. [Figure 14]FIG. 1 is a diagram showing an example of a processing sequence performed by a messaging system according to an embodiment. [Figure 15] FIG. 10 is a diagram showing an example of a subscriber setting screen. [Figure 16] FIG. 10 is a diagram showing an example of a publisher setting screen. [Figure 17] FIG. 10 is a diagram showing an example of a log list screen. [Figure 18] FIG. 10 is a diagram showing an example (first example) of a log details screen. [Figure 19] FIG. 10 is a diagram showing an example (second example) of a log details screen. [Figure 20] FIG. 1 is a diagram showing an example of the configuration of a workflow according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0008] Hereinafter, an embodiment will be described with reference to the drawings.

[0009] (An example of the system configuration of the messaging system 10) FIG. 1 is a diagram showing an example of a system configuration of a messaging system 10 according to an embodiment.

[0010] The messaging system 10 shown in Fig. 1 is a so-called Pub / Sub (publish-subscribe) messaging system that performs messaging between publishers and subscribers using a publish-subscribe communication method, and includes a server 12, multiple terminals 14, and multiple devices 16. The server 12, multiple terminals 14, and multiple devices 16 are connected to each other so that they can communicate with each other via a communication network 18. The communication network 18 may be, for example, a LAN, the Internet, or the like.

[0011] The server 12 is an example of a "messaging server" and functions as a service providing system, providing various services. The terminals 14 are devices used by users, such as PCs, smartphones, and tablet terminals. The devices 16 are devices such as MFPs, inkjet printers, and electronic whiteboards.

[0012] Each of the terminal 14 and the device 16 functions as both a "second terminal" used by a "publisher (message sender)" in a Pub / Sub messaging system and a "first terminal" used by a "subscriber (message receiver)" in a Pub / Sub messaging system. A message is information sent from a publisher and includes, for example, text data, image data, video data, audio data, sensor data, and files of various formats. A publisher is an entity that sends a message and includes, for example, a user, a device, an account, etc. A subscriber is an entity that receives a message and includes, for example, a user, a device, an account, etc. A subscription is setting information related to sending or receiving a message. Receiving a message or making settings for receiving a message may be referred to as "subscribing," and sending a message or making settings for sending a message may be referred to as "publishing."

[0013] That is, each of the terminals 14 and devices 16 functions as a "second terminal" used by a "publisher," and can send messages to each of a plurality of "subscribers" (i.e., other terminals 14 and other devices 16) via the communication network 18. Hereinafter, the terminals 14 and devices 16 functioning as publishers may be referred to as second terminals.

[0014] Furthermore, each of the terminals 14 and devices 16 functions as a "first terminal" used by a "subscriber," and can receive messages sent from a "second terminal" used by a "publisher" (i.e., any of the other terminals 14 and devices 16) via the communication network 18. Note that the terminals 14 and devices 16 may receive messages, but they may also simply access the server 12 and display messages stored on the server 12. Hereinafter, the terminals 14 and devices 16 functioning as subscribers may be referred to as first terminals.

[0015] In this case, basically, a "publisher" can send messages in bulk without specifying a message destination, and each of multiple "subscribers" can receive a message if a pre-registered message type is set in the message sent from the "publisher." Note that, hereinafter, making a message generated by a publisher available for a subscriber to refer to may be referred to as "sending" or "receiving" a message. In other words, "sending a message" includes not only sending a message from a terminal 14 or device 16 to another terminal 14 or device 16, but also generating a message on the server 12. Furthermore, "receiving a message" includes not only receiving a message from another terminal 14 or device 16 or server 12 by the other terminal 14 or device 16, but also accessing the server 12 by the other terminal 14 or device 16 to refer to a message generated on the server 12.

[0016] (Hardware configuration of server 12 and terminal 14) 2 is a diagram showing the hardware configuration of the server 12 and the terminal 14 according to one embodiment. Here, a hardware configuration common to the server 12 and the terminal 14 will be described. Also, here, a hardware configuration of the device 16 when the terminal 14 is a PC will be described.

[0017] As shown in FIG. 2, the server 12 and the terminal 14 are constructed by a computer and include a CPU 501, a ROM 502, a RAM 503, a HD 504, an HDD (Hard Disk Drive) controller 505, a display 506, an external device connection I / F (Interface) 508, a network I / F 509, a data bus 510, a keyboard 511, a pointing device 512, a DVD-RW (Digital Versatile Disk Rewritable) drive 514, and a media I / F 516.

[0018] The CPU 501 controls the overall operation of the server 12 or the terminal 14. The ROM 502 stores programs, such as an IPL, used to drive the CPU 501. The RAM 503 is used as a work area for the CPU 501. The HD 504 stores various data, such as programs. The HDD controller 505 controls the reading and writing of various data from and to the HD 504 under the control of the CPU 501. The display 506 displays various information, such as a cursor, menus, windows, characters, or images. The external device connection I / F 508 is an interface for connecting various external devices. In this case, external devices include, for example, a USB (Universal Serial Bus) memory or a printer. The network I / F 509 is an interface for data communication using the communication network 18. The data bus 510 is an address bus, a data bus, or the like, for electrically connecting the components, such as the CPU 501, shown in FIG. 2.

[0019] The keyboard 511 is a type of input means having multiple keys for inputting characters, numbers, various instructions, etc. The pointing device 512 is a type of input means for selecting and executing various instructions, selecting a processing target, moving a cursor, etc. The DVD-RW drive 514 controls reading and writing of various data from a DVD-RW 513, which is an example of a removable recording medium. Note that this is not limited to a DVD-RW, and may be a DVD-R, etc. The media I / F 516 controls reading and writing (storing) of data from a recording medium 515, such as a flash memory.

[0020] 3 is a diagram showing the hardware configuration of the device 16 according to one embodiment. Here, the hardware configuration of the device 16 when the device 16 is an MFP will be described.

[0021] As shown in FIG. 3, the device 16 includes a controller 910, a short-range communication circuit 920, an engine control unit 930, an operation panel 940, and a network I / F 950.

[0022] The controller 910 has a CPU 901, which is the main part of the computer, a system memory (MEM-P) 902, a north bridge (NB) 903, a south bridge (SB) 904, an ASIC (Application Specific Integrated Circuit) 906, a local memory (MEM-C) 907, which is a storage unit, an HDD controller 908, and an HD 909, which is also a storage unit, and is configured such that the NB 903 and the ASIC 906 are connected by an AGP (Accelerated Graphics Port) bus 921.

[0023] The CPU 901 is a control unit that performs overall control of the device 16. The NB 903 is a bridge that connects the CPU 901 with the MEM-P 902, the SB 904, and the AGP bus 921, and includes a memory controller that controls reading and writing to the MEM-P 902, a PCI (Peripheral Component Interconnect) master, and an AGP target.

[0024] The MEM-P 902 comprises a ROM 902a, which is memory for storing programs and data that realize the functions of the controller 910, and a RAM 902b, which is used for expanding the programs and data and as a drawing memory during memory printing. The programs stored in the RAM 902b may be provided by being recorded in an installable or executable file format on a computer-readable recording medium such as a CD-ROM, CD-R, or DVD.

[0025] The SB 904 is a bridge for connecting the NB 903 with PCI devices and peripheral devices. The ASIC 906 is an integrated circuit (IC) for image processing applications that has hardware elements for image processing and functions as a bridge connecting the AGP bus 921, PCI bus 922, HDD 908, and MEM-C 907. The ASIC 906 includes a PCI target and AGP master, an arbiter (ARB) that forms the core of the ASIC 906, a memory controller that controls the MEM-C 907, multiple direct memory access controllers (DMACs) that perform image data rotation using hardware logic, and a PCI unit that transfers data between the scanner unit 931 and printer unit 932 via the PCI bus 922. A USB (Universal Serial Bus) interface or an IEEE 1394 (Institute of Electrical and Electronics Engineers) interface may also be connected to the ASIC 906.

[0026] The MEM-C907 is a local memory used as an image buffer for copying and a code buffer. The HD909 is a storage for storing image data, font data used during printing, and forms. The HD909 controls the reading and writing of data from and to the HD909 under the control of the CPU901. The AGP bus 921 is a bus interface for a graphics accelerator card proposed to speed up graphics processing, and direct high-throughput access to the MEM-P902 enables the graphics accelerator card to operate at high speed.

[0027] Further, the short-distance communication circuit 920 includes a short-distance communication circuit 920a. The short-distance communication circuit 920 is a communication circuit such as NFC or Bluetooth.

[0028] Furthermore, the engine control unit 930 is made up of a scanner unit 931 and a printer unit 932. The operation panel 940 is equipped with a panel display unit 940a, such as a touch panel, that displays current setting values ​​and selection screens and receives inputs from the operator, and an operation unit 940b that includes a numeric keypad that receives setting values ​​for image formation conditions such as density setting conditions and a start key that receives a copy start command. The controller 910 controls the entire device 16, and controls, for example, drawing, communication, and inputs from the operation panel 940. The scanner unit 931 or the printer unit 932 includes an image processing unit such as error diffusion and gamma conversion.

[0029] The device 16 can be switched between the document box function, copy function, printer function, and facsimile function in sequence using the application switching key on the operation panel 940. When the document box function is selected, the device 16 enters document box mode, when the copy function is selected, the device 16 enters copy mode, when the printer function is selected, the device 16 enters printer mode, and when the facsimile mode is selected, the device 16 enters facsimile mode.

[0030] The network I / F 950 is an interface for performing data communication using the communication network 18. The short-range communication circuit 920 and the network I / F 950 are electrically connected to the ASIC 906 via a PCI bus 922.

[0031] (An example of the functional configuration of the server 12) FIG. 4 is a diagram illustrating an example of a functional configuration of the server 12 according to an embodiment.

[0032] As shown in FIG. 4, the server 12 includes, as functions of the service providing system, a Web service processing unit 101, a Web service processing unit 102, an authentication management unit 103, a message model unit 104, an application management unit 105, a tenant information storage unit 106, a user information storage unit 107, a log management unit 108, a subscription information management unit 109, a publish information management unit 110, a message type information management unit 111, and a message transmission / reception unit 112.

[0033] The subscription information management unit 109 is an example of a "registration information holding unit." The Web service processing units 101 and 102 are an example of a "receiving unit." The message sending and receiving unit 112 is an example of a "sending unit."

[0034] The Web service processing unit 101 provides a Web application for the device 16. The Web service processing unit 101 includes an application execution unit 101A and an image composition unit 101B. The application execution unit 101A executes the application. The application execution unit 101A transmits application information acquired from the application management unit 105 to the device 16, thereby displaying the application information to the user via the device 16, and requests the device 16 and the application management unit 105 to execute the application according to the user's settings. In the case of printing, the application execution unit 101A requests the device 16 to print an image acquired from the application management unit 105. In the case of scanning, the application execution unit 101A requests the device 16 to scan the image and passes the result to the application management unit 105 for subsequent processing. The image composition unit 101B executes the application screen display for the device 16. For example, the image composition unit 101B transmits an application setting screen to the device 16, causing the device 16 to display the setting screen and accept application settings from the user of the device 16. That is, Web service processing unit 101 transmits screen information for displaying a setting screen or the like to device 16. Device 16 displays a setting screen or the like based on the screen information and accepts operations such as selections from the user, and transmits information indicating the operation results to Web service processing unit 101. In this way, Web service processing unit 101 can accept the results of the user's operations on the setting screen.

[0035] The Web service processing unit 102 provides a Web application for the terminal 14. The Web service processing unit 102 includes an application execution unit 102A and an image composition unit 102B. The application execution unit 102A configures and executes the application. The application execution unit 102A accepts user input via the terminal 14 and requests the application management unit 105 to change default values, etc. The application execution unit 102A also requests the authentication management unit 103 to perform authentication for displaying personal settings on the terminal 14, and if authentication of an external service, such as a file upload destination, is required for the application settings, the application execution unit 102A requests the authentication management unit 103 to obtain authentication information. The image composition unit 102B displays the application screen on the terminal 14. For example, the image composition unit 102B transmits a parameter configuration screen to the terminal 14, causing the terminal 14 to display the configuration screen and accept parameter input from the user of the terminal 14. In other words, the Web service processing unit 102 transmits screen information for displaying a configuration screen, etc., on the terminal 14. Terminal 14 displays a setting screen or the like based on the screen information and accepts operations such as selections from the user, and transmits information indicating the operation results to Web service processing unit 102. This allows Web service processing unit 102 to accept the results of the user's operations on the setting screen. Hereinafter, the act of Web service processing units 101, 102 accepting information indicating the operation results from terminal 14, device 16 may be expressed as accepting an operation.

[0036] The authentication management unit 103 acquires and updates user information stored in the user information storage unit 107 and tenant information stored in the tenant information storage unit 106. The authentication management unit 103 also manages user logins, device access restrictions, and the like.

[0037] The message model unit 104 provides the API and various information required to execute the Pub / Sub messaging model.

[0038] The application management unit 105 manages and provides various applications that allow users to utilize the Pub / Sub messaging model.

[0039] The tenant information storage unit 106 stores tenant information. A tenant refers to a customer, such as a user or device, who shares the same software or other service with multiple customers, i.e., information indicating a company or the like that is a collection of customers. FIG. 5 is a diagram showing an example of the data configuration of tenant information stored in the tenant information storage unit 106. As shown in FIG. 5, the tenant information includes a "tenant ID" and a "tenant name." The "tenant ID" is a unique value assigned to each tenant. The "tenant name" is a character string for identifying the tenant. For example, the tenant information storage unit 106 allows a system administrator to add, update, and delete tenant information.

[0040] The user information storage unit 107 stores user information. FIG. 6 is a diagram showing an example of the data configuration of user information stored in the user information storage unit 107. As shown in FIG. 6, the user information includes a "user ID" and a "tenant ID." The "user ID" is a value that is assigned to each user and is unique within the tenant. The "tenant ID" is the tenant ID of the tenant to which the user belongs.

[0041] The log management unit 108 manages log information about message information sent using the Pub / Sub messaging model. FIG. 7 is a diagram illustrating an example of the data configuration of log information managed by the log management unit 108. As illustrated in FIG. 7, the log information includes a "user ID," a "tenant ID," a "message type," an "application name," a "request ID," a "origin request ID," a "status," an "error code," and a "date and time." Of these, the "user ID," the "tenant ID," the "message type," and the "application name" are the same as those used for other information. The "request ID" is an ID that identifies a subscribe / publish request. The "origin request ID" is a request ID that identifies a publisher request. The "status" is a status that indicates the execution result. In the case of a subscribe log, "null" is set. The "error code" is an error code when the request fails. The "date and time" is the date and time when the request was executed.

[0042] When a subscriber receives a message, the subscriber can automatically or manually execute a predetermined operation or process based on the received message. The log management unit 108 may include log information related to the operation or process executed by the subscriber. In this case, the log information includes the content of the operation or process executed by the subscriber and information on the date and time of the execution.

[0043] The subscription information management unit 109 stores subscription information. The subscription information is setting information related to message reception and is an example of "registration information." FIG. 8 is a diagram showing an example of the data configuration of subscription information stored by the subscription information management unit 109. As shown in FIG. 8, the subscription information includes a "subscribe ID," a "user ID," an "application name," an "identification key," and a "message type." The "subscribe ID" is an ID that can uniquely identify a subscription. The "user ID" is a value that is unique within a tenant and is assigned to each user. The "application name" is the name of the application that performs the subscription. The "identification key" is an example of "identification information," and is an arbitrary character string that indicates the target person, purpose, etc. of the subscription. The "message type" is information that indicates the attributes of a message, such as a character string that identifies which business the message is associated with.

[0044] The publish information management unit 110 stores publish information. The publish information is setting information related to message transmission and is an example of “registration information.” The subscription information may be referred to as first registration information, and the publish information may be referred to as second registration information. FIG. 9 illustrates an example of the data configuration of publish information stored by the publish information management unit 110. As illustrated in FIG. 9, the publish information includes an “app name,” an “identification key,” a “message type,” and a “webhookUrl.” The “app name” is the name of the app performing the publishing. The “identification key” is an arbitrary character string representing the target user or purpose of the subscription. The “message type” is a character string identifying the business to which the message is associated. The “webhookUrl” is a URL that is fired when publishing is executed. In other words, the server 12 can send a message based on the URL indicated by the webhookUrl. Hereinafter, sending a request to a URL to execute a specific process may be referred to as “firing a URL,” and sending a message may be referred to as “firing a publish.”

[0045] The message type information management unit 111 stores a list of usable message types. Fig. 10 is a diagram showing an example of the data structure of the message type list stored in the message type information management unit 111. As shown in Fig. 10, the message type list includes "message type." The "message type" is a list of character strings that identify which business the message is associated with.

[0046] The message sending and receiving unit 112 sends and receives messages, and also stores management information required for this purpose. FIG. 11 is a diagram showing an example of the data configuration of management information stored by the message sending and receiving unit 112. As shown in FIG. 11, the management information includes "topics" and "subscriptions." A "topic" is an access point that manages a group of subscriptions linked to a message type. In this embodiment, it is created in the format of {tenant ID}-{message type}. A "subscription" is required to receive messages linked to a message type. A "subscription" can be created by specifying an "endpoint" that indicates where the message sent by the publisher should be sent. When a "subscription" is created, a subscribeId that can uniquely identify the "subscription" is issued.

[0047] 4, the terminal 14 (PC, smartphone, tablet terminal, etc.) includes a browser 14A, which is an application. The browser 14A downloads and executes programs in formats such as JavaScript and CSS, which are provided by the Web service processing unit 102.

[0048] 4, the device 16 (MFP, inkjet printer, electronic whiteboard, etc.) includes a browser 16A, which is an application. The browser 16A downloads and executes programs in formats such as JavaScript and CSS, which are provided by the Web service processing unit 101.

[0049] Each of the functions of the server 12 described above is realized, for example, by the CPU in the server 12 executing a program.

[0050] However, each of the above-described functions of the server 12 can be realized by one or more processing circuits. Here, the term "processing circuit" in this specification includes a processor programmed to execute 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), DSP (Digital Signal Processor), FPGA (Field Programmable Gate Array), and conventional circuit modules designed to execute each of the above-described functions.

[0051] The functional configuration of server 12 shown in Fig. 4 is divided according to main functions to facilitate understanding of the processing by server 12. The method of dividing the processing units and their names do not limit the present invention. The processing of server 12 can be divided into even more processing units depending on the processing content. Also, it can be divided so that one processing unit includes even more processes.

[0052] (Example of processing sequence by messaging system 10) 12 to 14 are diagrams showing an example of a processing sequence by the messaging system 10 according to an embodiment.

[0053] <Subscribe execution> FIG. 12 shows a processing sequence performed by the messaging system 10 when a subscriber S subscribes.

[0054] 12, first, when subscriber S logs in to messaging system 10 from browser 14A, 16A (sequences S1. to S2.), Web service processing units 101, 102 acquire information required for the subscriber setting screen from authentication management unit 103 (sequences S3. to S4.). Web service processing units 101, 102 also acquire a message type list from message type information management unit 111 via message model unit 104 (sequences S5. to S8.). Then, Web service processing units 101, 102 cause browser 14A, 16A to display the subscriber setting screen (see FIG. 15) (sequences S9. to S10.).

[0055] The subscriber S can select the message type to which he / she wants to subscribe from the subscriber setting screen, input any character string as an identification key, and press the save button to request the Web service processing units 101, 102 to execute the subscription (sequences S11 to S12). The identification key can be determined in advance between the publisher P and the subscriber S. Furthermore, since one subscriber S can create multiple subscriptions, for example, it is possible to create two subscriptions for one message type, each with a different identification key.

[0056] At this time, Web service processing units 101 and 102 acquire an endpoint required for subscribing from application management unit 105 (sequences S13 to S14). The endpoint used is one randomly generated by application management unit 105, but a predetermined destination may also be set. Web service processing units 101 and 102 request message transmitting / receiving unit 112 to execute the subscription via message model unit 104 (sequences S15 to S16).

[0057] When the message sending / receiving unit 112 receives the information required for the subscription (message type and endpoint) from the message model unit 104 (sequence S16.), if the topic does not exist, it creates a topic (sequence S17.), creates a subscription belonging to that topic (sequence S18.), and returns the subscription ID to the Web service processing units 101 and 102 via the message model unit 104 (sequences S19. to S20.).

[0058] When the subscription is successful via the message transmitting / receiving unit 112, the Web service processing units 101 and 102 store the subscription information in the subscription information management unit 109 via the message model unit 104 (sequences S21 to S25). This makes it possible to refer to the subscribed message type, identification key, etc. for each subscriber S.

[0059] The Web service processing units 101 and 102 notify the subscriber S of the success of the subscription via the browsers 14A and 16A (S sequences S26 to S27).

[0060] <After subscribing is complete> FIG. 13 shows a processing sequence performed by the messaging system 10 after the subscriber SS has completed subscribing.

[0061] 13, first, when publisher P logs in to messaging system 10 from browser 14A, 16A (sequences S28-S29), Web service processing units 101, 102 obtain information required for the publisher setting screen from authentication management unit 103 (sequences S30-S31). Web service processing units 101, 102 then request a message type list and a subscription information list from message model unit 104 (sequence S32). As a result, they obtain the message type list from message type information management unit 111 (sequences S33-S34) and the subscription information list from subscription information management unit 109 (sequences S35-S36). Message model unit 104 then transmits the message type list and the subscription information list to Web service processing units 101, 102. Furthermore, the Web service processing units 101 and 102 acquire a webhook URL required for activating a publish from the application management unit 105 (sequences S38 to S39). Then, the Web service processing units 101 and 102 cause the browsers 14A and 16A to display a publisher setting screen (see FIG. 16) (sequences S40 to S41).

[0062] When publisher P selects a message type on the publisher setting screen (sequences S42-S43), Web service processing units 101 and 102 acquire multiple pieces of subscription information corresponding to the message type from the acquired subscription information list (sequence S44). Web service processing units 101 and 102 then generate a list of identification keys set for the subscriptions from the acquired multiple pieces of subscription information (sequence S45), and display the list of identification keys on the publisher setting screen (sequences S46-S47).

[0063] When publisher P selects an identification key on the publisher setting screen (sequence S48.) and presses the save button (sequences S49. to S50.), the Web service processing units 101 and 102 save the publishing information including the message type and identification key selected by publisher P in the publishing information management unit 110 via the message model unit 104 (sequences S51. to S55.).

[0064] Web service processing units 101 and 102 notify publisher P via browsers 14A and 16A that the publishing information has been saved (sequences S56 to S57).

[0065] <After saving publishing information> FIG. 14 shows a processing sequence by the messaging system 10 after the publisher P saves the published information.

[0066] In the processing sequence shown in FIG. 14, first, the publisher P registers the webhookUrl displayed on the publisher setting screen in an arbitrary device or an arbitrary app (sequence S58.).

[0067] This allows any device or any app to fire the webhookUrl when performing a specific process (for example, scanning an image, adding data to a table, etc.). Note that the webhookUrl is an example of a setting for executing publishing, but the setting for executing publishing may be other settings.

[0068] When the webhookUrl is fired (sequence S64), the webhookUrl and a message (in this example, data associated with the operation of the device or app) are sent from any device, app, etc. to the app management unit 105 (sequence S65). The app management unit 105 acquires publish information linked to the webhookUrl from the publish information management unit 110 (sequences S66-S67) and requests the execution of publishing (sequence S68). In response to this request, the message model unit 104 requests the message sending / receiving unit 112 to execute publishing (sequence S69).

[0069] The message sending / receiving unit 112 acquires the subscription ID by identifying the subscription ID of the subscription for which the same message type and identification key as the message type and identification key set as the publish information are set from the subscription information management unit 109 (sequences S70. to S71.).

[0070] Then, the message transmitting / receiving unit 112 executes publishing for the subscription associated with the acquired subscribe ID (sequence S72.). That is, the message transmitting / receiving unit 112 sends the message only to subscribers S that have registered the same message type and identification key as the message type and identification key associated with the subscribe ID. That is, by setting the message type and identification key, it is possible to set the subscribers that will receive the message.

[0071] The message transmitting / receiving unit 112 returns the execution result of publishing to the message modeling unit 104 (sequence S73). The message modeling unit 104 causes the log management unit 108 to store the execution result of publishing in a log (sequences S74 to S75). In addition, the message modeling unit 104 notifies an arbitrary device or an arbitrary application of the execution result of publishing via the application management unit 105 (sequences S76 to S77).

[0072] In addition, the message sending / receiving unit 112 may acquire tenant information of the publisher P and the subscriber S, and from among the acquired subscribe IDs, identify a subscribe ID generated by the subscriber S that belongs to the same tenant as the publisher P (or belongs to a different tenant than the publisher P), and send a message.

[0073] Although this example proposes a mechanism for publishing data associated with device or app operations as a message, the present invention is not limited to this. For example, a message may be set on a publisher setting screen, and publishing may be initiated by pressing a save button. Furthermore, for example, information required for publishing may be set on any device or any app, and then saved and publishing may be initiated.

[0074] The subscriber S receives the message sent from the message transmitting / receiving unit 112 (sequence S79.). Then, the subscriber S notifies the message modeling unit 104 of the success or failure of the message reception. The message modeling unit 104 causes the log management unit 108 to store the success or failure of the message reception in a log (sequences S80. to S83).

[0075] The subscriber S can delete a created subscription at any time. For example, the subscriber S can select the subscription to be deleted from a subscription list, or can specify the subscription to be deleted by specifying a message type and an identification key, and can request the server 12 to delete the subscription to be deleted. In response to the request from the subscriber S, the server 12 deletes the specified subscription to be deleted. Thereafter, the server 12 can perform control so that the identification key corresponding to the deleted subscription is not displayed on the publisher setting screen.

[0076] (An example of a subscriber setting screen) Fig. 15 is a diagram showing an example of a subscriber setting screen. The subscriber setting screen 400 shown in Fig. 15 is displayed by the browsers 14A and 16A when the subscriber S subscribes.

[0077] 15, on the subscriber setting screen 400, the subscriber S can select any message type from among a plurality of message types displayed in a message type list 401. Also, on the subscriber setting screen 400, the subscriber S can input any character string as an identification key in an identification key input field 402.

[0078] 15, the subscriber setting screen 400 has a save button 403 marked "Start Subscription." By pressing the save button 403 on the subscriber setting screen 400, the subscriber S can request the Web service processing units 101 and 102 to execute a subscription that includes the selected message type and the entered identification key.

[0079] (An example of the publisher settings screen) Fig. 16 is a diagram showing an example of a publisher setting screen. The publisher setting screen 410 shown in Fig. 16 is an example of a "reception screen" and is displayed by the browsers 14A and 16A when the publisher P saves the publishing information.

[0080] 16, on publisher setting screen 410, publisher P can select any message type from among a plurality of message types displayed in message type list 411. Also, on subscriber setting screen 410, publisher P can select any identification key from among a plurality of identification keys displayed in device key list 412.

[0081] 16, the publisher setting screen 410 displays a webhookUrl 416, a copy button 413, and a change URL button 414. The publisher P can copy the webhookUrl 416 by pressing the copy button 413. The publisher P can also change the webhookUrl 416 by pressing the change URL button 414.

[0082] 16, publisher setting screen 410 has a save button 415 marked "Save." By pressing save button 415 on publisher setting screen 410, publisher P can request Web service processing units 101 and 102 to save the publishing information, including the selected message type and identification key.

[0083] Publisher settings screen 410 can display a list of identification keys entered by subscriber S. In particular, publisher settings screen 410 can display, as a list of user-selectable identification keys, only some of the identification keys that correspond to the message type selected by publisher P, among multiple identification keys. For example, if subscriber A enters message type A and identification key A, subscriber B enters message type B and identification key B, and subscriber C enters message type A and identification key C, and publisher P selects message type A on publisher settings screen 410, publisher settings screen 410 can display, as a list of user-selectable identification keys, identification key A and identification key C. In other words, publisher settings screen 410 can prevent identification key B, which does not correspond to the message type selected by publisher P, from being displayed. The publisher settings screen 410 may display multiple identification keys sorted in any order specified by the publisher P or the system administrator, or may display them sorted in the order of registration, expiration date, name, etc. of the identification keys.

[0084] (Example of the log list screen) Fig. 17 is a diagram showing an example of a log list screen. On the log list screen 420 shown in Fig. 17, a list of multiple logs stored in the log management unit 108 is displayed in a log display field 426. In response to a user request, the server 12 can display the log list screen 420 shown in Fig. 17 on the device used by the user. Furthermore, when the user selects an arbitrary log on the log list screen 420 shown in Fig. 17, the server 12 can display a details screen (see Figs. 18 and 19) showing details of the log on the device used by the user.

[0085] Furthermore, when the user specifies an arbitrary start date in a start date specification field 421 and an arbitrary end date in an end date specification field 422, and then presses an apply button 423 on the log list screen 420, the log list screen 420 can display multiple logs within the period specified by the user in a log display field 426. When the user presses a reset button 424 on the log list screen 420, the start date specification field 421 and the end date specification field 422 can be reset. The log list screen 420 also has a condition input field 425, and can display multiple logs that match the various conditions entered by the user in the condition input field 425 in the log display field 426.

[0086] (Example of log details screen (first example)) Fig. 18 is a diagram showing an example (first example) of a log details screen. The log details screen 430 shown in Fig. 18 displays logs relating to the results of message transmission by the publisher and the results of message reception by each of a plurality of subscribers S.

[0087] The log details screen 430 has an update button 431, a retry button 432, and an OK button 433. When the user presses the update button 431 on the log details screen 430, the latest log is displayed on the log details screen 430. When the user presses the retry button 432 on the log details screen 430, the server 12 can retry sending a message that failed to be sent. When the user presses the OK button 433 on the log details screen 430, the device used by the user can terminate the display of the log details screen 430.

[0088] (Example of log details screen (Example 2)) 19 is a diagram showing an example (second example) of a log details screen. The log details screen 440 shown in Fig. 19 displays logs relating to the results of message transmission by a publisher and the results of message reception by a single subscriber S.

[0089] The log details screen 440 has an OK button 441. When the user presses the OK button 441 on the log details screen 440, the device used by the user can terminate the display of the log details screen 440.

[0090] (Workflow configuration example) FIG. 20 is a diagram illustrating an example of a workflow configuration according to an embodiment.

[0091] The present invention may be realized by a workflow combining multiple components, as shown in FIG.

[0092] In this case, the INPUT component acquires data (e.g., scanned data) from a device (e.g., an image forming device, an information processing device, etc.) and acquires processing requests for the data (addition / modification / deletion, etc.). The PROCESS component executes processing for the data (e.g., OCR of scanned data, processing according to the processing requests, etc.).

[0093] The OUTPUT component also outputs the results of data processing to an external server, etc. As described above, the OUTPUT component can send messages to a specified endpoint. That is, the OUTPUT component may be triggered by the INPUT component receiving data, a processing request, etc., the PROCESS component executing a specified process, or the OUTPUT component outputting data, etc., to send a message regarding the processing results of each component.

[0094] You can create a workflow app that combines multiple components to execute a series of processes as a workflow. An app can be composed of multiple INPUT components, multiple PROCESS components, and multiple OUTPUT components, and a single app can also be composed of multiple apps.

[0095] The INPUT component includes a process for acquiring data from a device. For example, if the device is an MFP or camera, it includes a process for acquiring electronic data by scanning or photographing an original or subject, if the device is a projector or display, it includes a process for acquiring image data being displayed, if the device is a sensor, it includes a process for acquiring the sensor's detection value, and if the device is a storage server or storage medium, it includes a process for receiving or reading data.

[0096] Furthermore, the INPUT component can acquire data within the information processing system that realizes the workflow application, but it may also acquire data from a storage device such as another application or a server. For example, the INPUT component can request data managed by an application other than the workflow application or a system other than the information processing system that realizes the workflow application. In response to the request, the other application can acquire data managed by the other application or from a server corresponding to the other application and send it to the INPUT component that made the request. Note that the INPUT component also performs processing to generate data by converting data formats, such as generating text data from image data.

[0097] The OUTPUT component includes the process of outputting data from a device. For example, if the device is an MFP, it includes the process of printing electronic data on a medium. If the device is a projector or display, it includes the process of displaying image data or outputting audio. If the device is a storage server or storage medium, it includes the process of transmitting or storing data. It also includes the process of notifying a specified destination of data or the results of processing.

[0098] Furthermore, the OUTPUT component can output data within an information processing system that realizes a workflow app, but it may also output data to an app other than the workflow app or to a system other than the information processing system that realizes the workflow app. For example, the OUTPUT component can request the other app or system to manage the data or the processing results in the other app or system. In response to the request, the other app can manage the received data or the processing results, or send the data or the processing results to be stored in a server corresponding to the other app.

[0099] For example, by combining multiple components, an app can achieve the following functions:

[0100] The INPUT component generates image data by scanning a document using an MFP. The PROCESS component converts the image data into data such as numerical values ​​or text by performing character recognition processing on the image data. The OUTPUT component sends the converted data to a business management system, which is an example of another system. The business management system can generate management data by classifying the data received from the workflow application or organizing it based on a preset input format. The PROCESS component may also classify the data and generate the management data. In this case, the OUTPUT component sends the classification results and management data to the business management system, and the business management system simply stores the classification results and management data received from the workflow application in a specified area.

[0101] The INPUT component also acquires data managed by the business management system. For example, the INPUT component acquires setting information and data such as numerical values ​​or text. Here, the INPUT component may request specific data from the business management system according to the setting, or may receive specific data managed by the business management system in response to a request from the business management system. The PROCESS component generates management data by organizing or processing numerical values ​​or text based on the setting information. The OUTPUT component sends the management data to the business management system. The business management system stores the management data received from the workflow application in a specific area.

[0102] Here, the work management system and the workflow application may be provided by different businesses and may be configured by different servers. Therefore, when a workflow application transmits or receives data to or from the work management system, the workflow application can transmit or receive data by communicating with the server that constitutes the work management system.

[0103] As described above, the messaging system 10 according to one embodiment is a messaging system 10 that communicates between a publisher P and a subscriber S using a publish-subscribe communication method, and includes: a subscription information management unit 109 (registration information storage means) that stores subscription information (registration information) registered by the subscriber S via a first terminal, the subscription information including a message type to be received and an identification key (identification information); web service processing units 101, 102 (reception means) that receive, from the publisher P via a second terminal, a selection of a message type to be associated with a message and a selection of identification information corresponding to the selected message type and an identification key (identification information) received from the subscriber S; and a message transmission / reception unit 112 (transmission means) that transmits a message to the subscriber S based on the subscription information (registration information).

[0104] As a result, the messaging system 10 according to one embodiment can send a message to only those subscribers S who have registered the identification key of the message to be sent in their subscription information, among those subscribers S who have registered the message type of the message to be sent in their subscription information. Therefore, the messaging system 10 according to one embodiment can send a specific message only to subscribers S who wish to receive the specific message. As a result, the messaging system 10 according to one embodiment can reduce the amount of messages sent and received within the system, and can reduce the load on the server 12, the communication network 18, etc.

[0105] The best mode for carrying out the present invention has been described above using examples, but the present invention is not limited to these examples in any way, and various modifications and substitutions can be made within the scope that does not deviate from the gist of the present invention.

[0106] For example, in this embodiment, the terminal 14 and the device 16 may be any device that is equipped with at least a browser, such as a PJ (Projector), an output device such as digital signage, a HUD (Head Up Display) device, industrial machinery, an imaging device, a sound collection device, medical equipment, network home appliances, a notebook PC (Personal Computer), a mobile phone, a smartphone, a tablet terminal, a game console, a PDA (Personal Digital Assistant), a digital camera, a wearable PC or a desktop PC. [Explanation of symbols]

[0107] 10. Messaging System 12 Server (Messaging Server) 14 terminals 14A Browser 16 Equipment 16A Browser 18. Communication Networks 101 Web service processing unit 101A Application execution unit 101B Image composition unit 102 Web service processing unit 102A Application execution unit 102B Image composition section 103 Authentication Management Department 104 Message Model Section 105 App Management Department 106 Tenant information storage unit 107 User information storage unit 108 Log Management Department 109 Subscription Information Management Department 110 Publishing Information Management Department 111 Message type information management section 112 Message sending and receiving unit [Prior art documents] [Patent documents]

[0108] [Patent Document 1] Japanese Patent Application Laid-Open No. 2006-246065

Claims

1. A messaging server that performs messaging between publishers and subscribers using a publish-subscribe communication method, a registration information holding means for holding registration information received from the subscriber via a first terminal, the registration information including a message type and identification information that the subscriber desires to receive as a setting of the subscriber; a receiving means for receiving, from the publisher via a second terminal, a selection of the message type to be associated with a message and a selection of identification information corresponding to the selected message type and received from the subscriber; a sending means for sending a message to a subscriber based on the registration information; A messaging server comprising:

2. The receiving means A reception screen receives, from the publisher, a selection of the message type to be associated with the message and a selection of the identification information corresponding to the selected message type and received from the subscriber. The messaging server of claim 1 .

3. the reception screen includes a list of the message types and a list of the identification information, The receiving means A selection of the message type from the list of message types and a selection of the identification information from the list of identification information are received from the publisher. The messaging server of claim 2 .

4. The receiving means When one message type is selected from the list of message types by the publisher, a reception screen including the identification information associated with the one message type as a list of the identification information is transmitted to the second terminal. The messaging server of claim 3 .

5. The subscriber can register any character string as the identification information. The messaging server of claim 1 .

6. The transmitting means The message is sent only to the subscriber corresponding to the message type and the identification information assigned to the message. The messaging server of claim 1 .

7. The transmitting means Execute sending of the message based on the webhook URL The messaging server of claim 6 .

8. A messaging method executed by a messaging server capable of messaging between publishers and subscribers using a publish-subscribe communication method, comprising: a registration information holding step of holding registration information received from the subscriber via a first terminal, the registration information including a message type and identification information that the subscriber desires to receive as a setting of the subscriber; a receiving step of receiving, from the publisher via a second terminal, a selection of the message type to be associated with the message and a selection of identification information corresponding to the selected message type and received from the subscriber; a sending step of sending a message to a subscriber based on the registration information; 10. A messaging method comprising:

9. A program for a messaging system that enables messaging between publishers and subscribers using a publish-subscribe communication method, Computer, a registration information holding means for holding registration information received from the subscriber via a first terminal, the registration information including a message type and identification information that the subscriber desires to receive as a setting of the subscriber; a receiving means for receiving, from the publisher via a second terminal, a selection of the message type to be associated with the message and a selection of identification information corresponding to the selected message type and received from the subscriber; and a sending means for sending a message to a subscriber based on the registration information; A program that functions as a

10. A messaging system that enables messaging between publishers and subscribers using a publish-subscribe communication method, A server according to claim 1; the first terminal used by the subscriber; the second terminal used by the publisher; A messaging system comprising:

Citation Information

Patent Citations

  • Notification device, informed device, and status notification method

    JP2006246065A