Sharing data structure values ​​between software applications

By defining data structures at the operating system level and utilizing the messaging system, the problem of cumbersome data sharing operations between different applications is solved, and data input is realized, which improves efficiency and user experience.

CN114528115BActive Publication Date: 2025-08-26INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202111310493.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-11-04
Filing Date
2021-11-03
Publication Date
2025-08-26
Estimated Expiration
2041-11-03

AI Technical Summary

Technical Problem

In the prior art, users need to manually copy and paste when sharing data structure values ​​between different applications, which is cumbersome and inefficient.

Method used

By defining data structures at the operating system level, using the messaging system to achieve sharing of data structures, including defining data structures, registering application interests, identifying data element formats, storing and accessing data element values, supporting publish/subscribe mode or topic queue mode.

Benefits of technology

It realizes automatic data input between different applications, improves the efficiency and user experience of data sharing, and reduces manual operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114528115B_ABST
    Figure CN114528115B_ABST
Patent Text Reader

Abstract

Sharing data structure values ​​between applications via message passing in a computer operating system is provided. A plurality of data structures are defined, each having a given subject name, and each data structure includes a collection of a plurality of data elements in a defined format. An application registers interest in the subject. Within the application, a collection of a plurality of data elements having the format of the defined data structure is identified, and an item is stored in association with the given subject name of the defined data structure, wherein the item is a collection of data values ​​for the identified data elements. The item is made available to the application registered with the subject for use in entering values ​​into corresponding data structures within the application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to sharing data structure values ​​between software applications, and more particularly, to sharing data structure values ​​between applications via message passing in an operating system. Background Art

[0002] A user of a computing device may wish to use details they received in one application in another application on their device. An example of this is when a user receives banking information via a message and wants to enter the banking information into a banking application to make a payment. The banking information consists of multiple fields, including at least the account name, bank sort number, and account number.

[0003] One option is for the user to record their banking information separately for reference when switching between apps. Another option is to perform a copy and paste action for each value of the banking information. To transfer the information, a simple copy and paste operation would be performed in three parts between the messaging app and the banking app. Summary of the Invention

[0004] According to one aspect of the present invention, there is provided a computer-implemented method for sharing data structure values ​​between applications via message passing in an operating system, the method comprising: defining a plurality of data structures, each of which has a given subject name, the data structure comprising a collection of a defined format of a plurality of data elements; registering an application's interest in the subject; identifying within the application a collection of a plurality of data elements having the format of the defined data structure and storing an item in association with the given subject name of the defined data structure, wherein the item is a collection of data values ​​of the identified data elements; and making the item available to the application registered to the subject for entering a value in a corresponding data structure in the application.

[0005] According to another aspect of the present invention, a system for sharing data structure values ​​between applications via message passing in an operating system is provided, comprising: a processor and a memory configured to provide computer program instructions to the processor to perform the functions of components of the data value transfer system: a data structure definition component for defining multiple data structures, each of which has a given subject name, the data structure comprising a collection of multiple data elements in a defined format; a subject component for registering an application's interest in a subject; an identification component for identifying a collection of multiple data elements having the format of the defined data structure within the application; an item storage component for storing an item in association with the given subject name of the defined data structure, wherein the item is a collection of data values ​​of the identified data elements; and an item access component for making the item available to the application registered to the subject for entering values ​​in the corresponding data structure in the application.

[0006] According to another aspect of the present invention, a computer program product for sharing data structure values ​​between applications via message passing in an operating system is provided, the computer program product comprising a computer-readable storage medium having program instructions, the program instructions being executable by a processor to cause the processor to: define a plurality of data structures, each of which has a given subject name, the data structure comprising a collection of a defined format of a plurality of data elements; register an application's interest in the subject; identify within the application a collection of a plurality of data elements having the format of the defined data structure, and store an item in association with the given subject name of the defined data structure, wherein the item is a collection of data values ​​of the identified data elements; and make the item available to the application registered to the subject for entering values ​​in a corresponding data structure in the application.

[0007] The computer-readable storage medium may be a non-transitory computer-readable storage medium, and the computer-readable program code may be executed by a processing circuit. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The subject matter of the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification.The invention, both as to its organization and method of operation, together with objects, features, and advantages thereof, may be best understood by reference to the following detailed description when read in connection with the accompanying figures.

[0009] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings, in which:

[0010] Figure 1 is a flow chart of an example embodiment of a method according to the present invention;

[0011] Figure 2 is a schematic diagram illustrating an example embodiment of a method according to the present invention;

[0012] Figure 3 is a block diagram of an example embodiment of a system according to the present invention; and

[0013] Figure 4 is a block diagram of an example embodiment of a computer system in which the present invention may be implemented.

[0014] It should be understood that for simplicity and clarity of illustration, the elements shown in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. In addition, where deemed appropriate, reference numerals may be repeated in the drawings to indicate corresponding or similar features. DETAILED DESCRIPTION

[0015] The described method and system utilize a messaging system at the computer operating system level to share the values ​​of a defined data structure between applications running on the operating system. The defined data structure has a collection of multiple data elements in a defined format and a given topic name that serves as a messaging topic for sharing the values ​​of the data elements of the defined data structure. A messaging topic is defined for the data structure of the data collection that may be required to be shared between applications.

[0016] The messaging system may involve an application expressing interest in a topic, and an item in the form of a collection of data values ​​for identified data elements is obtained from the application, stored in association with the topic name, and made available to other applications interested in the topic.

[0017] The messaging system may be a publish / subscribe messaging system, in which messages in the form of items are published by applications to a message topic name. Other applications subscribe to the topic name and receive the published items in the form of values.

[0018] In other embodiments, the messaging system can use another messaging pattern to share items of data structure values ​​for topics. For example, instead of pushing items to a topic to which any registered application can subscribe and access items, a simpler messaging system can provide a topic queue for a given application, and the operating system can place items in the form of collections of data values ​​onto the topic queue for that application.

[0019] In a publish / subscribe messaging system, data structures are defined, and the values ​​for these data structures can be temporarily stored in a publish / subscribe message topic at the operating system level. When relevant data structures are identified in an application, these values ​​are published and stored on the operating system-level message topic. Other applications running on the operating system can subscribe to this message topic to retrieve the relevant data structures.

[0020] Applications running on the operating system can receive or open data that conforms to the defined data structure. For example, a messaging application can receive a message with data in the form of bank details, including an account name as an alphabetic string, a bank sort code as a 6-digit string, and an account number as an 8-digit string. The described method can identify the data received in the message as conforming to the defined data structure with a unique name (e.g., "Bank Account"), and the value of the received data can be published to a message topic of the defined data structure and stored in a message topic queue.

[0021] For example, another application could be a banking application and could subscribe to a messaging topic for bank account information. The other application could retrieve the values ​​for the bank account information published by the messaging application and suggest those values ​​as input for the appropriate fields in the banking application, saving the user from having to manually type the data or manually copy and paste each component separately. The defined data structure being published or subscribed to could be a block of data, including structure, field names, etc., that the subscribing application can expect and parse.

[0022] A data structure may define a data type with a recognized format. A data structure may include multiple field formats for multiple values ​​within the data structure. A data structure may include text or numeric strings, images, metadata, Hypertext Markup Language (HTML) attributes, and the like. Data structure types may include, for example: a banking information data structure including an account name field, a bank code field, and an account number field; a credit card information data structure including an account name field, an account number field, a credit card security code field, and an expiration date field; a package delivery information data structure including a tracking code field and a postal code field; an identity information data structure including fields for a name and an ID or passport number; a data format including an image with associated metadata, and the like.

[0023] When defining a data structure, each component within it can be labeled. For example, in a "Bank Account" data structure, there would be a label for the account name, a label for the bank code, and a label for the account number. When an application subscribes to the "Bank Account" topic and retrieves the published values, it uses the internal labels to match the data components to the corresponding user interface labels in the application, allowing it to insert the values ​​into the correct fields in the user interface.

[0024] refer to Figure 1 , flow chart 100 shows an example embodiment of the described method for sharing data structure values ​​among applications via an operating system.The method is performed at a messaging system at the operating system level.

[0025] A plurality of data structures can be defined 101 as message topics with topic names in a messaging infrastructure. A message topic is defined for a data structure having a plurality of fields in the form of data elements, each of which has a defined format. Thus, a group of related fields is defined as a single data structure. Each data structure can be used for a collection of data input fields in the form of a defined format, such as a character type string, a media type string, or other permutation string.

[0026] Data structures can be predefined at the operating system level as message subjects for recognized data structure formats (e.g., standard banking formats), and can also be added by application developers and / or end users for more personalized data structures that users may wish to use. This allows customized data formats to be specified by application developers or end users. For example, application developers can define their own data structures, which can then be added to the list of recognized data structures at the operating system level (e.g., via an operating system application programming interface (OS API)). End users can also define data structures on their local devices, for example, for their own specific club membership identification format (which includes name and number fields).

[0027] The method can configure 102 an application at an operating system that is allowed to send and / or receive values ​​of a defined data structure via a messaging infrastructure. The values ​​of the data elements of the data structure can be grouped into items for transfer via the messaging system. Certain applications can be allowed to send or receive values ​​to or from all or some message topics, while other applications can be allowed to both send and receive values ​​depending on the type and requirements of the application.

[0028] The method may register 103 an application's interest in a message topic. Each application may be configured to determine whether the application can provide and receive values ​​for a topic. In a publish / subscribe messaging system, applications may be configured to publish to and / or subscribe to topics in the messaging system. Applications executing on an operating system may subscribe to message topics for defined data structures. Each defined data structure is given a unique topic name, and a subscribing application may declare a list of topic names it wishes to receive. An application may subscribe to one or more message topics related to its functionality, such as a banking application, a browser application for online purchases, a delivery application, and the like.

[0029] In another embodiment, an application may define a topic queue for a defined data structure when the application is installed, and the operating system may then know to place items in the form of collections of data values ​​for the defined data structure directly onto the topic queue for the application.

[0030] The operating system can manage a table of applications and what topics the applications have declared interest in and support, so that when the operating system sees a matching data structure, it can find its topic name and push the structure contents to all applications that have declared support for that topic.

[0031] The method may identify 104 values ​​that conform to the format of the data elements of the defined data structure. This may be performed by pattern recognition of the values ​​or by using other known data detection methods. This may use functionality of the operating system similar to known data detectors for detecting dates, addresses, etc. When these values ​​are entered or received in the application, they may be identified.

[0032] The method can extract the value and store it 105 as an item to a storage device associated with the message topic for the defined data structure. For example, the item of value can be stored on a message queue. There can be various ways to control or limit the data retention of the item, such as to a configured time period and / or to a queue depth. This can be configured at the operating system level or by the user. In one example, a set of values ​​for banking information may only be stored for a short time period. In another example, when a retrieving application has retrieved a particular data structure, the method can be configured so that the application sends a reply to the message queue to confirm that it has consumed the message (data structure instance) and therefore it can now be deleted.

[0033] Items may include extracted values ​​of data elements with associated tags related to fields of data elements of the data structure. Items may be made available 106 to applications that have registered an interest in the subject of the defined data structure. When new items are available for a subject, the items may be pushed to all applications that have registered an interest in the subject, or applications may periodically pull items from the subject.

[0034] The method can allow an application that has registered interest in the message topic to retrieve 107 items, and the value of the data element can be used as a suggested input to automatically complete a field of a matching data structure in the search application. The method can prompt 108 for user input to confirm or reject the suggested input.

[0035] Each data element within the defined data structure may be tagged, and when the application retrieves 107 the published value, it uses the internal tags to match the data element to a corresponding user interface label in the application.

[0036] refer to Figure 2 , a schematic diagram illustrates an example embodiment of the described method in the context of a computing device 200 having an operating system 210 and two applications that play the roles of a publishing application 230 and a subscribing application 240 in a publish / subscribe messaging system.

[0037] Operating system 210 uses a publish / subscribe messaging system 220 that provides messaging middleware functionality. Publish / subscribe messaging system 220 provides messaging in which information providers are separated from information consumers. Information providers (called publishers) categorize published messages into topics, and subscribers express interest in one or more topics and receive only messages of interest.

[0038] The publish / subscribe messaging system 220 has defined message topic queues 221 for different defined data structures. In this example, the message topic may be for a data structure for banking information.

[0039] The publishing application 230 may have text, data fields, or images that conform to a defined data structure format. In this example, the data structure 231 may be banking information in a recognized format having a plurality of value A 232, value B 233, and value C 234 in data of a recognized format.

[0040] In the case of account information, the text follows a set format:

[0041] Account Name: xxxxx (4-18 characters) (value A 232)

[0042] Account number: xxxxxx (8 digits) (value B 233)

[0043] Bank code: xx-xx-xx (6 digits) (value C 234)

[0044] Publishing application 230 may be, for example, a messaging application or an email application that has received a person's banking information via a text message or text-based document that has been opened in a text editing application. Values ​​232, 233, 234 are published as items 222 to a message topic queue 221 for a data structure. In some embodiments, optical character recognition (e.g., where bank details have been captured as a screenshot) may be used to detect and retrieve data values ​​from the image.

[0045] Subscribing application 240 can subscribe to message topic queue 221 because the banking application has fields that require input values ​​in an equivalent data structure 241. Subscribing application 240 can be opened and the user can interact with the form matching the data structure. Items 222 with values ​​232, 233, 234 from message topic queue 221 can be published to subscribing application 240 so that they can be used for auto-completion in the appropriate fields in subscribing application 240. If the user accepts / selects the data structure, the data structure can be used to automatically populate the relevant values ​​into the relevant form fields in the banking application.

[0046] In a simpler embodiment of an application-provided topic queue, an example might be a banking application that defines a topic queue "Account Details" to be used when the banking application is installed. The operating system knows to place packets that match the defined "Account Details" data structure onto the topic queue for the banking application.

[0047] The data format of a data element is not limited to a text string or a numeric string. For example, a user may want to copy and paste a digital image from one application to another, and an image data structure may be identified that includes not only the digital image but also any associated HTML attributes (such as text defined in an image "alt" attribute). As with other examples, this can be advantageous in that it facilitates copying and pasting (or auto-suggesting) related data sets, rather than copying and pasting one piece of data at a time.

[0048] Data sharing using the described method can be used in a similar manner to data sharing for location services provided at the operating system level for applications.There may be an operating system configuration option for applications to select whether they want to take advantage of this data sharing functionality.

[0049] The user may also be given the option to select which applications (of those that support the feature) are allowed to do so on the user's device. For example, the user may decide to allow the feature on some applications but not on others. The queue depth and message retention time may be configured as desired.

[0050] Due to the nature of storing data structures and subscribing to their use, the described method collects suitable data structures for rapid, automatic reuse. The described method generates dynamic form objects to facilitate data entry.

[0051] The method can be applied in any scenario where known standard data structures are used (e.g. bank details, personal identity sources, credit cards, club memberships, delivery tracking codes etc.).

[0052] refer to Figure 3 , further details of components of a data value transfer system 320 that provides a messaging system for data values ​​provided on an operating system 310 of a computing device 300 are described.

[0053] The computing device 300 may include at least one processor 301, a hardware module, or circuitry for performing the functions of the described components, which may be software units executed on at least one processor. Multiple processors may be provided that run parallel processing threads, enabling some or all functions of the components to be processed in parallel. The memory 302 may be configured to provide computer instructions 303 to the at least one processor 301 to perform the functions of the components.

[0054] The data value transfer system 320 may use a messaging infrastructure such as a publish / subscribe messaging system. The data value transfer system 320 may include a data value transfer application program interface 331 for providing data value transfer related functions in the application 330.

[0055] Application 330 that can run on operating system 310 can have the function of providing the value of defined data structure or retrieving the value, for example, as publishing application and / or subscribing application.Application 330 can be downloaded to computing device 300, or can be a network application accessed from a remote server.

[0056] The data value transfer system 320 may include a data structure definition component 321 for defining a plurality of data structures as message topics, and a configuration component 324 for configuring an application for providing and retrieving values ​​and for defining data structures for topics.

[0057] The data value transfer system 320 can include a topic component 322 for registering an application's interest in a topic.

[0058] The item receiving component 323 is used to extract and receive items of values ​​of data elements of the data structure from the application 330, and the item storage component 326 is used to store the items in association with a given topic name of the defined data structure. Multiple item storage components 326 can be provided to store items of values ​​for each topic for a configured time period and / or to a queue depth.

[0059] An item access component 325 may be provided for making items available to applications 330 registered with the theme for use in entering values ​​in corresponding data structures in the applications 330 .

[0060] In a publish / subscribe messaging system, the item receiving component 323 may be a publishing component, the item access component 325 may be a subscribing component, and the item storage component 326 may be a topic message queue.

[0061] The data value transfer application interface 331 can provide an identification component 332 for identifying data elements of the defined data structure at the application 330, such as using a pattern recognition component 338 for identifying a set of multiple data elements having the format of the defined data elements within the application, and provide an item providing component 333 for providing items to the item receiving component 323 of the data value transfer system 320.

[0062] The data value transfer application interface 331 at the application 330 may provide an item retrieval component 334 for retrieving the value of the data element from the item storage component 326, and an auto-complete component 335 for adding the retrieved item value to a field in the application 330. A confirmation component 336 may be provided for accepting or rejecting the auto-complete value suggestion.

[0063] The data value transfer application program interface 331 at the application 330 may also include an application configuration component 337 for configuring whether the application can provide items and retrieve items from the data value transfer system 320 .

[0064] Figure 4 A block diagram of components of a computing system for computing device 300 is depicted in accordance with an embodiment of the present invention. It should be understood that Figure 4 This merely provides an illustration of one implementation and does not imply any limitation with respect to the environments in which different embodiments may be implemented.Many modifications to the described environments are possible.

[0065] The computing system may include one or more processors 402, one or more computer-readable RAMs 404, one or more computer-readable ROMs 406, one or more computer-readable storage media 408, device drivers 412, read / write drivers or interfaces 414, and a network adapter or interface 416, all interconnected by a communications fabric 418. Communications fabric 418 may be implemented using any architecture designed to pass data and / or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within the system.

[0066] One or more operating systems 410 and application programs 411 are stored, for example, on one or more computer-readable storage media 408 for execution by one or more processors 402 via one or more corresponding RAMs 404 (typically including cache memory). In the embodiment shown, each computer-readable storage medium 408 may be a disk storage device of an internal hard drive, a CD-ROM, a DVD, a memory stick, a tape, a magnetic disk, an optical disk, a semiconductor storage device such as RAM, ROM, EPROM, flash memory, or any other computer-readable storage medium that can store computer programs and digital information, in accordance with embodiments of the present invention.

[0067] The computing system may also include a R / W driver or interface 414 to read from and write to one or more portable computer-readable storage media 426. Application programs 411 on the computing system may be stored on one or more portable computer-readable storage media 426, read via a corresponding R / W driver or interface 414, and loaded into a corresponding computer-readable storage medium 408.

[0068] The computing system may also include a network adapter or interface 416, such as a TCP / IP adapter card or a wireless communication adapter. Application programs 411 on the computing system can be downloaded from an external computer or external storage device to the computing device via a network (e.g., the Internet, a local area network or other wide area network or wireless network) and the network adapter or interface 416. The program can be loaded from the network adapter or interface 416 into the computer-readable storage medium 408. The network may include copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.

[0069] The computing system may also include a display screen 420, a keyboard or keypad 422, and a computer mouse or touchpad 424. The device driver 412 interfaces with the display screen 420 for imaging, interfaces with the keyboard or keypad 422, interfaces with the computer mouse or touchpad 424, and / or interfaces with the display screen 420 for pressure sensing alphanumeric character input and user selection. The device driver 412, the R / W driver or interface 414, and the network adapter or interface 416 may include hardware and software stored in the computer-readable storage medium 408 and / or the ROM 406.

[0070] The computing system can be a communication device, a smart phone, or a computing device with telephone capabilities and including communication elements for connecting to a communication channel (e.g., a cellular telephone network, a data transmission network, a Wi-Fi network, a satellite telephone network, an Internet network, a satellite Internet network, etc.).

[0071] The present invention may be a system, method and / or computer program product at any possible level of technical detail integration. The computer program product may include (one or more) computer-readable storage media having computer-readable program instructions thereon, the computer-readable program instructions being used to cause a processor to perform various aspects of the present invention.

[0072] Computer readable storage medium can be a tangible device that can hold and store the instructions used by the instruction execution device.Computer readable storage medium can be, for example, but not limited to, electronic storage device, magnetic storage device, optical storage device, electromagnetic storage device, semiconductor storage device, or any suitable combination of the aforementioned storage devices.A non-exhaustive list of more specific examples of computer readable storage medium includes the following: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device such as a punch card or a raised structure in a groove having instructions recorded thereon, and any suitable combination of the above-mentioned devices.Computer readable storage medium as used herein should not be interpreted as being a temporary signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (for example, light pulses by optical fiber cables), or electrical signals transmitted by wires.

[0073] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network). The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium within the corresponding computing / processing device.

[0074] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data of integrated circuits, or source code or object code written in any combination of one or more programming languages ​​(including object-oriented programming languages, such as Smalltalk, C++, etc.) and procedural programming languages ​​(such as " C " programming language or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or executed completely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network (including local area network (LAN) or wide area network (WAN)), or can be connected to an external computer (such as, using an internet service provider through the internet). In certain embodiments, the electronic circuit comprising, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can perform the computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions, so as to perform various aspects of the present invention.

[0075] Aspects of the present invention are described herein with reference to the flowcharts and / or block diagrams of the methods, apparatus (systems) and computer program products according to embodiments of the present invention. It will be understood that each block of the flowcharts and / or block diagrams and the combination of blocks in the flowcharts and / or block diagrams can be implemented by computer-readable program instructions.

[0076] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can direct the computer, programmable data processing device, and / or other equipment to operate in a specific manner, so that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0077] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps will be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0078] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention. In this regard, each frame in the flow chart or block diagram can represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing the specified logical function. In some alternative embodiments, the function noted in the frame may not occur in the order noted in the figure. For example, the two frames shown in succession can actually be performed substantially simultaneously, or these frames can sometimes be performed in reverse order, depending on the function involved. It will also be noted that the combination of each frame of the block diagram and / or flow chart illustration and the frame in the block diagram and / or flow chart illustration can be realized by a dedicated hardware-based system that performs a specified function or action or performs a combination of special-purpose hardware and computer instructions.

[0079] The computer program product of the present invention includes one or more computer-readable hardware storage devices having computer-readable program codes stored therein. The program codes can be executed by one or more processors to implement the method of the present invention.

[0080] The computer system of the present invention includes one or more processors, one or more memories, and one or more computer-readable hardware storage devices, wherein the one or more hardware storage devices contain program codes that can be executed by the one or more processors via the one or more memories to implement the method of the present invention.

[0081] The descriptions of various embodiments have been presented herein for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, practical applications, or improvements over existing technologies in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

[0082] Improvements and modifications may be made to the foregoing without departing from the scope of the present invention.

Claims

1. A computer-implemented method for sharing data structure values ​​between application programs via message passing in a computer operating system, comprising: defining a plurality of data structures, each of which has a given subject name, the data structure comprising a set of a plurality of data elements in a defined format; Register your application's interest in the subject matter; identifying within an application a collection of a plurality of data elements having the format of a defined data structure and storing an item in association with a given topic name of the defined data structure, wherein the item is a collection of data values ​​of the identified data elements in a set of related fields, thereby defining the set of related fields as a single data structure, wherein the given topic name is a publish / subscribe message topic such that the data values ​​are published and stored at an operating system level; and In response to identifying the relevant single data structure in the application, making the item available to the application registered with the publish / subscribe message topic for entering the value in the corresponding data structure in the application; Among them, messaging includes a publish / subscribe messaging infrastructure provided by the operating system, the publish / subscribe messaging infrastructure includes: applications registering interest, registering subscribing applications for topics, and publishing items to topic queues for delivery to subscribing applications; defining a topic queue for the defined data structure at application installation time, and the operating system placing an item in the form of a collection of data values ​​for the defined data structure directly onto the topic queue for the application; and An operating system is used to manage an application that declares a table of topics it is interested in and supports, wherein when the operating system sees a matching data structure, the operating system looks up the topic name of the matching data structure and pushes the structure content of the matching data structure to the application that declared support for the topic.

2. The method according to claim 1, wherein Each of the data elements in the defined data structure has a label that is matchable to a user interface label in a receiving application to automatically complete the field with the data value of the data element provided in the item.

3. The method according to claim 1, wherein The defined format of the data element includes one or more of the following group: character type string; character type arrangement; image data type; and metadata attributes.

4. The method according to claim 1, wherein Items are stored in association with the given subject name for a configured duration of the subject name and / or a number of stored items.

5. The method according to claim 1, wherein Identifying a set of multiple data elements within an application includes providing an application interface to the application and using pattern recognition for the data elements within the application.

6. The method according to claim 1, comprising: A user-defined data structure with a user-configured topic name.

7. The method according to claim 1, comprising: Applications that are allowed to register interests in topics and / or provide items for topics are configured at the operating system, and a list of topic names and the registered interests of the applications are displayed to a user for access control of the user.

8. The method according to claim 1, comprising: Whether the application can register interest in a topic and / or provide items for a topic is configured at the application.

9. The method according to claim 1, wherein: Sending the items to the application includes the application periodically pulling items for the topic.

10. A system for sharing data structure values ​​between applications via message passing in an operating system, comprising: a processor and a memory configured to provide computer program instructions to the processor to perform the functions of components of a data value transfer system, the components comprising: A data structure definition component, configured to define a plurality of data structures, each of which has a given subject name and includes a set of defined formats of a plurality of data elements; The topic component is used to register the application's interest in the topic; an identification component for identifying, within an application, a collection of a plurality of data elements in a format having a defined data structure; an item storage component for storing an item in association with the given topic name of the defined data structure, wherein the item is a collection of data values ​​for data elements identified in a set of related fields, thereby defining the set of related fields as a single data structure, wherein the given topic name is a publish / subscribe messaging topic such that data values ​​are published and stored at an operating system level; and an item access component for, in response to identifying a relevant single data structure in the application, making the item available to the application registered with the publish / subscribe message topic for entering the value in the corresponding data structure in the application; Among them, messaging includes a publish / subscribe messaging infrastructure provided by the operating system, the publish / subscribe messaging infrastructure includes: applications registering interest, registering subscribing applications for topics, and publishing items to topic queues for delivery to subscribing applications; defining a topic queue for the defined data structure at application installation time, and the operating system placing an item in the form of a collection of data values ​​for the defined data structure directly onto the topic queue for the application; and An operating system is used to manage an application that declares a table of topics it is interested in and supports, wherein when the operating system sees a matching data structure, the operating system looks up the topic name of the matching data structure and pushes the structure content of the matching data structure to the application that declared support for the topic.

11. The system according to claim 10, wherein: The data structure definition component includes providing data elements in the defined data structure associated with labels that are matchable to user interface labels in a receiving application to automatically complete fields with data values ​​of the data elements provided in the item.

12. The system according to claim 10, wherein: The item storage component stores items in association with the given subject name and stores the items for a configured duration of the subject name and / or a number of stored items.

13. The system according to claim 10, comprising: A configuration component is used to configure, at the operating system, applications that are allowed to register interest in topics and / or provide items for topics, and to display a list of topic names and the registered application interests to a user for access control of the user.

14. The system according to claim 10, comprising: An application program interface component is used to interface with the data value transfer system, and the application program interface component includes an item providing component for providing items for a topic and a retrieval component for retrieving items for a topic.

15. The system according to claim 14, wherein: The application program interface component includes a pattern recognition component for identifying a set of multiple data elements having a defined data element format within an application program.

16. The system of claim 14, wherein: The application interface component includes an auto-complete component for matching a label of a data element value of an item to a user interface label to automatically complete a field in the application with the data element value.

17. The system according to claim 10, comprising: A confirmation component that prompts the user for input to confirm or reject an autocomplete field in your application.

18. A computer program product for sharing data structure values ​​between application programs via message passing in an operating system, the computer program product comprising program instructions executable by a processor to cause the processor to perform the method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Subscribing For Application Messages In A Multicast Messaging Environment

    US20080141274A1

  • Editing and Compiling Business Rules

    US20080256014A1

  • Computer implemented methods and apparatus for identifying a topic for a text

    US20140067814A1

  • System and method for aggregating online images and managing image streams

    US20140223318A1