File sharing technology

The method addresses the inefficiencies of existing file sharing services by securely and selectively sharing files among predefined user groups through a data structure that maps document identifiers to metadata tags, enhancing workflow-based file distribution efficiency.

JP2026041856AInactive Publication Date: 2026-03-10SAPHYRE INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-12-01
Publication Date
2026-03-10
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

Existing network-based file sharing services struggle to securely and selectively share files among predefined user groups based on predefined workflows, leading to inefficiencies and time-consuming document searches in situations like document onboarding.

Method used

A method involving a server that receives subject and action identifiers, generates task and document identifiers, and maps these to a data structure, allowing secure and selective file sharing through a user interface, enabling associations and retrievals based on predefined workflows.

Benefits of technology

Enables secure and efficient file sharing among predefined user groups, reducing the time and effort required for document distribution by leveraging a data structure that maps document identifiers to metadata tags.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026041856000001_ABST
    Figure 2026041856000001_ABST
Patent Text Reader

Abstract

A method is provided for securely and selectively sharing various files among various predefined user groups based on various predefined workflows. [Solution] The method includes a server providing a user interface to a first application running on a first client, receiving first and second subject identifiers and action identifiers from the first application, receiving a copy of the file based on a selection, generating a task identifier, a data structure and a document identifier, populating the data structure with the document identifier, first and second subject identifiers and action identifier, associating a second application with the task identifier for the session based on the second subject identifier and action identifier associated with the session matching the second subject identifier in the data structure and the action identifier in the data structure, and sharing the copy with the second application for the session based on the task identifier.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Non-Provisional Application No. 16 / 211,100, filed December 5, 2018, which claims the benefit of U.S. Provisional Application No. 62 / 682,669, filed June 8, 2018, which is incorporated by reference herein in its entirety.

[0002] FIELD OF THE DISCLOSURE The present disclosure relates to file sharing. [Background technology]

[0003] Various network-based file sharing services, whether peer-to-peer (P2P) or cloud-based, allow users to share files with each other. For example, some such services include Napster, BitTorrent, Dropbox, Box, Egnyte, Google Drive, Microsoft OneDrive, Microsoft SharePoint, Microsoft Teams, Slack, Apple iCloud, etc. While these services are popular for use in many situations, there are some situations in which these services fall short. In particular, these services cannot securely and selectively share various files among various predefined user groups based on various predefined workflows. For example, in a document onboarding situation where document permissions are critical for various workflow situations, most users end up searching through numerous email and file directories for relevant documents, whether local or cloud-based. This is cumbersome, costly, unstable, and time-consuming.

[0004] In an embodiment, a method includes providing, by a server, a user interface to a first application running on a first client, the user interface being configured to receive a first subject identifier, a second subject identifier, an action identifier, and a selection of a file; receiving, by the server, the first subject identifier, the second subject identifier, and the action identifier from the first application; receiving, by the server, a copy of the file based on the selection; generating, by the server, a task identifier, a data structure, and a document identifier; grouping, by the server, the data structure by the task identifier; and adding, by the server, the document identifier, the first subject identifier, the second subject identifier, and the action identifier to the data structure such that the document identifier is mapped to the first subject identifier, the second subject identifier, and the action identifier. a server hosting a session with a second application running on a second client, the session being associated with the second subject identifier and the action identifier; the server associating the second application with a task identifier for the session based on the second subject identifier and the action identifier associated with the session matching the second subject identifier in the data structure and the action identifier in the data structure; and the server sharing the copy with the second application for the session based on the task identifier such that the copy is retrievable by the second application based on the document identifier in the data structure. [Brief explanation of the drawings]

[0005] [Figure 1] FIG. 1 is a schematic diagram of an embodiment of a network topology according to the present disclosure. [Figure 2] 1 is a schematic diagram of an embodiment of a data organization according to the present disclosure. [Figure 3] 1 is a flowchart of an embodiment of a process for authorizing access to a copied file according to the present disclosure. [Figure 4] 1 is a schematic diagram of an embodiment of a data structure for storing a document identifier and multiple tags according to the present disclosure; [Figure 5] 1 is a flowchart of an embodiment of a process for receiving access to a file according to the present disclosure. [Figure 6A] FIG. 1 illustrates a flowchart and a pair of screenshots of an embodiment of a technique for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers in accordance with the present disclosure. [Figure 6B] FIG. 1 illustrates a flowchart and a pair of screenshots of an embodiment of a technique for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers in accordance with the present disclosure. [Figure 6C] FIG. 1 illustrates a flowchart and a pair of screenshots of an embodiment of a technique for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers in accordance with the present disclosure. [Figure 7A] 1A and 1B illustrate a flowchart and a pair of screenshots of an embodiment of a technique for updating progress details according to the present disclosure. [Figure 7B] 1A and 1B illustrate a flowchart and a pair of screenshots of an embodiment of a technique for updating progress details according to the present disclosure. [Figure 7C] 1A and 1B illustrate a flowchart and a pair of screenshots of an embodiment of a technique for updating progress details according to the present disclosure. [Figure 8] 1 is a flowchart of an embodiment of a process for adding to a blockchain according to the present disclosure. [Figure 9] 1 is a flowchart of an embodiment of a process for executing a smart contract based on a data structure according to the present disclosure. [Figure 10]1 is a flowchart of an embodiment of a process for retrieving a data structure by an artificial intelligence (AI) process according to the present disclosure. [Figure 11] 1 is a flowchart of an embodiment of a process for user actions on a data structure based on user group membership according to the present disclosure. [Figure 12] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 13] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 14] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 15] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 16] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 17] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 18] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 19]10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 20] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 21] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 22] 10A-10C illustrate several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags, in accordance with the present disclosure. [Figure 23A] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23B] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23C] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23D] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23E] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23F] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23G] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23H] 1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. [Figure 23I]1A-1C illustrate several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0006] Generally, the present disclosure enables various computing techniques for securely and selectively sharing various files among various predefined user groups based on various predefined workflows. For each predefined workflow, files are shared based on a data structure that stores various document identifiers and various metadata tags, and the document identifiers are mapped to the metadata tags. Accordingly, these computing techniques may be used in a variety of contexts, such as onboarding in many fields, including finance, accounting, law, law enforcement, military, intelligence, education, manufacturing, medicine, pre-deal client onboarding, and more. The present disclosure will now be more fully described with reference to FIGS. 1-23I, which illustrate several embodiments of the present disclosure. However, the present disclosure may be embodied in many different forms and should not be construed as necessarily limited to only the embodiments disclosed herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the various concepts of the present disclosure to those skilled in the art.

[0007] It should be noted that various terms used herein may imply direct or indirect, complete or partial, temporary or permanent, operative or inoperative. For example, when an element is said to be "on," "connected," or "coupled" to another element, the element may be directly on, connected to, or coupled to the other element, or there may be intervening elements, including indirect or direct variations. In contrast, when an element is said to be "directly connected" or "directly coupled" to another element, there are no intervening elements present.

[0008] Similarly, as used herein, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless otherwise specified or clear from the context, "X uses A or B" is intended to mean either of the natural inclusive permutations. That is, if X uses A, if X uses B, or if X uses both A and B, then "X uses A or B" is satisfied under any of the foregoing cases.

[0009] Similarly, as used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. For example, the term "a" or "an" shall mean "one or more," even though the phrase "one or more" is also used herein.

[0010] Furthermore, the terms "comprises," "includes," or "comprising," "including," as used herein, specify the presence of stated features, integers, steps, operations, elements, or components, but do not exclude the presence and / or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof. Furthermore, when the present disclosure states that something is "based on" something else, such statement refers to a basis that may be based on one or more other things as well. In other words, unless expressly stated otherwise, "based on," as used herein, is meant to include "based at least in part on" or "based at least in part on."

[0011] Furthermore, while terms such as "first," "second," and the like may be used herein to describe various elements, components, regions, layers, or sections, these elements, components, regions, layers, or sections should not necessarily be limited by such terms. Rather, these terms are used to distinguish one element, component, region, layer, or section from another element, component, region, layer, or section. Thus, a first element, component, region, layer, or section discussed below could be referred to as a second element, component, region, layer, or section without departing from this disclosure.

[0012] Furthermore, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Therefore, terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art, and should not be interpreted in an idealized or overly formal sense unless explicitly defined as such in this specification.

[0013] FIG. 1 illustrates a schematic diagram of an embodiment of a network topology according to the present disclosure. In particular, network topology 100 is component-based and implemented in logic, whether hardware-based or software-based. For example, when logic is hardware-based, such logic may include circuitry, such as a processor, memory, input devices, output devices, or other hardware, configured, such as by programming or design, to implement the functionality of each component. Similarly, when logic is software-based, such logic may include instructions, such as assembly code, machine code, object code, source code, or any other type of instruction, that, when executed or compiled, implement the functionality of each component. It should also be noted that at least one component of network topology 100 may be implemented as a service. It should also be noted that at least two components of network topology 100 may be hosted on a single computing system / hardware / device, or each may be hosted separately.

[0014] Network topology 100 is based on a distributed network operating model that allocates tasks / workloads between servers that provide resources / services and clients that request resources / services. While servers and clients refer to different computers / applications, in some embodiments, servers and clients reside in or are one system / device / framework / platform / application. Furthermore, in some embodiments, topology 100 involves allocating a large number of resources to a small number of computers, where the complexity of the client depends on how much computation is offloaded to the small number of computers. That is, more computation offloaded from the client onto the server results in a lighter client that is more dependent on network resources and less dependent on local computing resources. Note that other computing models are possible as well. For example, such models may include decentralized computing such as a P2P system, BitTorrent, or distributed computing such as a computer cluster, where a set of networked computers work together so that the computers can be viewed as a single system.

[0015] Network topology 100 includes network 102, client 104, client 106, server 110, and database 146. Client 104 hosts operating system (OS) 112 and browser 118 running on OS 112. Client 106 hosts OS 114 and browser 120 running on OS 114. Server 110 hosts OS 116 and application 122 running on OS 116. Application 122 hosts blockchain logic 124, interface logic 126, messaging logic 128, export logic 130, storage logic 132, reporting logic 134, metadata logic 136, progress logic 138, authority logic 138, discovery logic 140, authorization logic 142, and notification logic 144, any one of which may be a module, object, routine, script, library, etc.

[0016] The network 102 includes multiple nodes, such as collections of computers or other hardware, interconnected via multiple communication channels that enable the sharing of resources or information. Such interconnections may be direct or indirect. The network 102 may be wired or wireless. The network 102 may enable communication over short or long distances, either encrypted or unencrypted. The network 102 may operate via at least one network protocol, such as Ethernet, Transmission Control Protocol (TCP) / Internet Protocol (IP), etc. The network 102 may be of any size, such as a personal area network (PAN), local area network (LAN), home area network, storage area network (SAN), campus area network, backbone network, metropolitan area network, wide area network (WAN), enterprise private network, virtual private network (VPN), virtual network, satellite network, computer cloud network, internetwork, cellular network, etc. The network 102 may be or include an intranet or an extranet. The network 102 may be or include the Internet. Network 102 may include or enable communication with other networks, whether sub-networks or separate networks, whether identical or different in structure or operation to network 102. Network 102 may include hardware, whether hardware-based or software-based, such as computers, network interface cards, repeaters, hubs, bridges, switches, extenders, antennas, or firewalls. Network 102 may be operated directly or indirectly by or on behalf of any entity or actor, regardless of any relationship to any subject matter of this disclosure.

[0017] The clients 104, 106 may be embodied as terminals, kiosks, workstations, vehicles, whether land-based, sea-based, or airborne, desktops, laptops, tablets, mobile phones, mainframes, supercomputers, server farms, etc. The clients 104, 106 may include or be coupled to input devices such as a mouse, keyboard, camera, whether front-facing or rear-facing, accelerometer, touchscreen, biometric reader, clicker, microphone, or any other suitable input device. The clients 104, 106 may include or be coupled to output devices such as a display, speakers, headphones, joystick, printer, or any other suitable output device. In some embodiments, the input and output devices may be embodied within a single unit, such as a touch-enabled display that may be tactile. The operating systems 112, 114 may be any type of operating system, such as MacOS, Windows, Android, Unix, Linux, etc. The browsers 118, 120 may be any type of browser, such as Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari, Microsoft Edge, Amazon Silk, etc. It should be noted that the OS 112, 114 may run other applications that may be used in accordance with the present disclosure. Some examples of such applications include productivity applications such as Microsoft Word, Microsoft Excel, Adobe Acrobat, and directory navigation applications such as Windows Explorer, MacOS Finder, and Command Prompt, whether the directories are local to or remote from the OS 112, 114. The clients 104, 106 communicate with the network 102, such as via browsers 118, 120, or communicate with the server 110 through the network 110, such as via browsers 118, 120. In some embodiments, the clients 104, 106 communicate directly with the server 110, thereby bypassing the network 102.It should be noted that more than two clients 104, 106, whether identical or different in hardware or software configuration, may similarly be used, such as 10, 100, or 1000 clients or more.

[0018] Server 110 may be embodied as a terminal, kiosk, workstation, land-based, sea-based, or airborne vehicle, desktop, laptop, tablet, mobile phone, mainframe, supercomputer, server farm, etc. Server 110 may include or be coupled to input devices such as a mouse, keyboard, camera (whether front-facing or rear-facing), accelerometer, touchscreen, biometric reader, clicker, microphone, or any other suitable input device. Server 110 may include or be coupled to output devices such as a display, speakers, headphones, joystick, printer, or any other suitable output device. In some embodiments, input and output devices may be embodied within a single unit, such as a touch-enabled display that may be tactile. OS 116 may be any type of OS, such as MacOS, Windows, Android, Unix, Linux, etc. Server 110 may be a single server or multiple servers, such as servers 110 distributed among web servers, application servers, database servers, virtual servers, etc.

[0019] The application 112 operates as directed by blockchain logic 124, interface logic 126, messaging logic 128, export logic 130, storage logic 132, reporting logic 134, metadata logic 136, progress logic 138, authority logic 138, discovery logic 140, permission logic 142, and notification logic 144. In some embodiments, at least one of the blockchain logic 124, interface logic 126, messaging logic 128, export logic 130, storage logic 132, reporting logic 134, metadata logic 136, progress logic 138, authority logic 138, discovery logic 140, permission logic 142, or notification logic 144 is external to at least one of the application 112, the OS 116, or the server 110. Additionally, at least two of the blockchain logic 124, interface logic 126, messaging logic 128, export logic 130, storage logic 132, reporting logic 134, metadata logic 136, progress logic 138, authority logic 138, discovery logic 140, authorization logic 142, and notification logic 144 may be a single piece of logic. Additionally, while the application 112 is modular with respect to the blockchain logic 124, interface logic 126, messaging logic 128, export logic 130, storage logic 132, reporting logic 134, metadata logic 136, progress logic 138, authority logic 138, discovery logic 140, authorization logic 142, and notification logic 144, it should be noted that the application 112 may be non-modular, object-oriented, monolithic, etc.

[0020] Database 146 is hosted from server 110. In some embodiments, server 110 hosts database 146, such as via OS 116, whether within application 122 or external to application 122. Database 146 is configured, in whole or in part, for various database operations such as creating records, modifying records, retrieving records, searching records, identifying records, deleting records, and sorting records. For example, some of the various database input (I) / output (O) operations include read, write, edit, delete, update, search, select, merge, sort, erase, format, etc. Database 146 stores data, whether raw, formatted, organized, or any other accessible state, and enables access to such data, either directly and / or indirectly. Database 146 can be a single database or multiple databases, whether hosted on a single machine or multiple machines, whether in a single data center or distributed across multiple data centers. The database 146 may include at least one of a relational database, a non-relational database, a post-relational database, an in-memory database, a hybrid database, an Extensible Markup Language (XML) database, a parallel database, a distributed database, a graph database, a mobile database, a behavioral database, a probabilistic database, a real-time database, a spatial database, a temporal database, an object-oriented database, an unstructured data database, a terminology-oriented database, and the like.

[0021] In one mode of operation, as described further below, the topology of network 100 is configured to implement techniques for securely and selectively sharing various files among various predefined user groups based on various predefined workflows. For each predefined workflow, files are shared based on a data structure that stores various document identifiers and various metadata tags, and the document identifiers are mapped to the metadata tags.

[0022] 2 illustrates a schematic diagram of an embodiment of a data organization according to the present disclosure. To securely and selectively share various files among various predefined user groups based on various predefined workflows, application 122 maintains or operates on the data organization according to schema 200, as described further below. In particular, schema 200 includes a subject identifier 202, an action identifier 204, an item identifier 206, a category identifier 208, a type identifier 210, a task identifier 212, and a document identifier 214. Each of subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, task identifier 212, and document identifier 214 includes a set, sequence, term, collection, group, string, or other information unit of alphabets, numbers, combinations of alphabets and numbers, glyphs, barcodes, pictograms, or marks, or any other form of information in any other organizational configuration. Note that punctuation symbols or marks may be included. Each of subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, task identifier 212, and document identifier 214 may be generated according to a predefined format, such as an International Organization for Standardization (ISO) format, a combination of formats, such as multiple ISO formats, or may be generated randomly. Each of subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, task identifier 212, and document identifier 214 may be unique with respect to the application, with respect to each other, or with respect to its particular identifier set or identifier type or identifier format.

[0023] Schema 200 includes a logical format indicated by multiple lines between subject identifiers 202, action identifiers 204, item identifiers 206, category identifiers 208, type identifiers 210, task identifiers 212, and document identifiers 214. In particular, according to the logical format, subject identifiers 202 are hierarchically associated with action identifiers 204 such that subject identifiers 202 correspond to action identifiers 204 in a one-to-many manner. For example, a subject identifier 202 may have many action identifiers 204 in a hierarchical manner. Furthermore, according to the logical format, action identifiers 204 are hierarchically associated with item identifiers 206 such that action identifiers 204 correspond to item identifiers 206 in a one-to-many manner. For example, an action identifier 204 may have many item identifiers 206 in a hierarchical manner. Furthermore, according to the logical format, item identifiers 206 are hierarchically associated with category identifiers 208 such that item identifiers 206 correspond to category identifiers 208 in a one-to-many manner. For example, an item identifier 206 may have many category identifiers 208 in a hierarchical manner. Additionally, according to a logical format, the category identifiers 208 are hierarchically associated with the type identifiers 210 such that the category identifiers 208 have a one-to-many correspondence with the type identifiers 210. For example, a category identifier 208 may have many type identifiers 210 in a hierarchical manner.

[0024] In summary, according to a logical format, the subject identifiers 202, action identifiers 204, and item identifiers 206 are grouped with the task identifiers 212 such that the task identifiers 212 have a one-to-many correspondence with each of the subject identifiers 202, action identifiers 204, and item identifiers 206. For example, a task identifier 212 may be grouped with many subject identifiers 202, many action identifiers 204, and many item identifiers 206. In some embodiments, the task identifiers 212 may be grouped with at least one of the category identifiers 208 or type identifiers 210 in a one-to-many correspondence. For example, a task identifier 212 may be grouped with many category identifiers 208 or many type identifiers 210. Further summarized, subject identifiers 202, action identifiers 204, item identifiers 206, category identifiers 208, and type identifiers 210 are grouped with document identifiers 214 in a one-to-many correspondence with each of subject identifiers 202, action identifiers 204, item identifiers 206, category identifiers 208, and type identifiers 210 according to a logical format. For example, document identifiers 214 may be grouped with many subject identifiers 202, many action identifiers 204, many item identifiers 206, many category identifiers 208, and many type identifiers 210. Also summarized, task identifiers 212 are grouped with document identifiers 214 in a one-to-many correspondence according to a logical format. For example, task identifiers 212 may be grouped with many document identifiers 214.

[0025] The entity identifier 202 corresponds to a group of users operating the clients 104, 106. For example, the entity identifier 202 may correspond to a group including User A and User B, where User A corresponds to the client 104 and User B corresponds to the client 106. Thus, the authorization logic 138 enables the application 122 to distinguish between various groups of users based on the entity identifier 202. For example, if the entity identifier 202 corresponds to an organization, then the various employees of that organization who operate the clients 104, 106 are a group of users. For example, the entity identifier may include a legal entity identifier (LEI) as defined by ISO standard 17442, which includes a 20-character alphanumeric string, where the first four-character sequence identifies the local operating unit (LOU) that issued the LEI, the fifth and sixth characters are reserved as "00", characters seven through eighteen are a unique alphanumeric string assigned to the entity by the LOU, and the last two characters are checksum digits.

[0026] The action identifier 204 corresponds to an action associated with the entity identifier 202. The action identifier 204 may depend on the entity identifier 202 as input or may be hard-coded to depend on the entity identifier 202. For example, in a financial context, the action identifier 204 may be a new fund start, i.e., NFL. Thus, if the entity identifier 202 includes an LEI, the action identifier 204 may include the string NFL, and entity identifiers 202 correspond to action identifiers 204 in a one-to-many correspondence.

[0027] The item identifier 206 corresponds to the item associated with the action identifier 204. The item identifier 206 may depend on the action identifier 204 as input or may be hard-coded to depend on the action identifier 204. For example, in a financial context, the item identifier 206 may be a fund identifier, i.e., a fund ID or FID, etc. Thus, if the entity identifier 202 includes an LEI and the action identifier 204 includes the string NFL, and the entity identifier 202 corresponds to the action identifier 204 in a one-to-many correspondence, the item identifier 206 may include the string FID, and the action identifier 204 corresponds to the item identifier 206 in a one-to-many correspondence.

[0028] The category identifier 208 corresponds to a product associated with the item identifier 206. The item identifier 208 may depend on the item identifier 206 as an input or may be hard-coded to depend on the item identifier 206. For example, in a financial context, the category identifier 208 may be a product identifier, i.e., a product ID or PID, etc. Thus, if the subject identifier 202 includes an LEI and the action identifier 204 includes the string NFL, the subject identifier 202 corresponds in a one-to-many correspondence to the action identifier 204, the item identifier 206 may include the string FID, and the action identifier 204 corresponds in a one-to-many correspondence to the item identifier 206, then the category identifier 208 may include the string PID, and the item identifier 206 corresponds in a one-to-many correspondence to the category identifier 208.

[0029] The type identifier 210 corresponds to the category identifier 208 and the document type associated with the shared file, as described further below. The type identifier 210 may depend on the category identifier 208 or may be hard-coded to depend on the category identifier 208. For example, in a financial context, the type identifier 210 may be a string such as International Swaps and Derivatives Association (ISDA) Agreement, or ISDAA. Thus, if the entity identifier 202 includes an LEI and the action identifier 204 includes the string NFL, the entity identifier 202 corresponds to the action identifier 204 in a one-to-many correspondence, the item identifier 206 may include the string FID, the action identifier 204 corresponds to the item identifier 206 in a one-to-many correspondence, the category identifier 208 may include the string PID, and the item identifier 206 corresponds to the category identifier 208 in a one-to-many correspondence, then the type identifier 210 may include the string ISDAA, and the category identifier 208 corresponds to the type identifier 210 in a one-to-many correspondence.

[0030] The task identifier 212 corresponds to the task based on which the file is shared, as described further below. The task identifier 212 may be generated based on at least one of the subject identifier, the action identifier 204, or the item identifier 206. For example, in a financial context, the task identifier 212 may be a string such as New Fund Start 41, or NFL000041. Thus, if subject identifier 202 comprises an LEI, and action identifier 204 comprises the string NFL, subject identifier 202 corresponds to action identifier 204 in a one-to-many correspondence, item identifier 206 may comprise the string FID, action identifier 204 corresponds to item identifier 206 in a one-to-many correspondence, category identifier 208 may comprise the string PID, item identifier 206 corresponds to category identifier 208 in a one-to-many correspondence, type identifier 210 may comprise the string ISDAA, category identifier 208 corresponds to type identifier 210 in a one-to-many correspondence, then task identifier 212 may be NFL000041 to which subject identifier 202, action identifier 204, and item identifier 206 each correspond in a one-to-many correspondence. For example, many subject identifiers 202 may correspond to task identifier 212, NFL000041, many action identifiers 204 may correspond to task identifier 212, NFL000041, and many item identifiers may correspond to task identifier 212, NFL000041.

[0031] The document identifier 214 corresponds to the file being shared. The document identifier 214 may be generated based on the contents of the file, such as document text or patterns within the file, or based on file characteristics, such as filename, read or last access or modification or creation date or timestamp, file size, or none of the above, randomly, etc. For example, the document identifier 214 may include a string such as AK24!%asfLm@$1fa.

[0032] Thus, the subject identifier 202 may comprise an LEI, and the action identifier 204 may comprise the string NFL, the subject identifier 202 corresponds in a one-to-many correspondence to the action identifier 204, the item identifier 206 may comprise the string FID, the action identifier 204 corresponds in a one-to-many correspondence to the item identifier 206, the category identifier 208 may comprise the string PID, the item identifier 206 corresponds in a one-to-many correspondence to the category identifier 208, the type identifier 210 may comprise the string ISDAA, and the category identifier 208 may correspond in a one-to-many correspondence to type identifier 210, and task identifier 212 may correspond in a one-to-many correspondence to NFL000041, to which each of subject identifier 202, action identifier 204, and item identifier 206 correspond in a one-to-many correspondence, and category identifier 208, then document identifier 214, AK24!%asfLm@$1fa, may correspond in a one-to-many correspondence to each of subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, and task identifier 212. For example, for a subject identifier 202, many document identifiers 214 may correspond to action identifiers 204, many document identifiers 214 may correspond to item identifiers 206, many document identifiers 214 may correspond to category identifiers 208, many document identifiers 214 may correspond to type identifier 210, and many document identifiers 214 may correspond to task identifier 212.

[0033] 3 shows a flow chart of an embodiment of a process for authorizing access to a copied file according to the present disclosure. Process 300 is performed by network topology 100.

[0034] In block 302, the interface logic 126 presents a graphical user interface (GUI) to the browser 118 over the network 102. The GUI represents a set of input elements, such as text fields, drop-down boxes, radio buttons, sliders, etc. For example, the GUI may include a menu, a form, or a questionnaire presented on at least one page, such as a web page. The set of input elements is provided for user data entry, such as via an input device, such as a mouse, a keyboard (whether physical or virtual), a touchpad, a trackball, a camera, a microphone, etc. The interface logic 126 presents the GUI based on the client 104 transmitting a name and password to the server 110 for authentication by the authorization logic 138. For example, the name and password may each include a combination of alphanumeric characters, a photograph, biometrics, etc. Thus, the server 110 may host a session with the client 104 based on the application 122 communicating with the browser 118. Note that the session may be a secure session, such as via the Hypertext Transfer Protocol Secure (HTTPS) protocol, etc.

[0035] At block 304, interface logic 126 receives a first subject identifier, an action identifier, an item identifier, a category identifier, a type identifier, and the copied file from browser 118. With reference to FIG. 2 , the first subject identifier corresponds to subject identifier 202, the action identifier corresponds to action identifier 204, the item identifier corresponds to item identifier 206, the category identifier corresponds to category identifier 208, and the type identifier corresponds to type identifier 210. Thus, the first subject identifier may correspond to action identifiers in a one-to-many correspondence. Note that a session between browser 118 and application 122 may be associated with the first subject identifier and others, such as action identifiers, item identifiers, category identifiers, etc. For example, browser 118 may log in to server 110 based on a set of user credentials belonging to or corresponding to a user group associated with the first subject identifier, such as a first user who may grant permissions for a file to a second user. In this case, a first user is operating browser 118, and a second user is associated with the first entity identifier or another entity identifier, and permissions may include read permissions, write permissions, etc. Note, however, that a session between browser 118 and application 122 need not be associated with a first user identifier. For example, browser 118 may log in to server 110 based on a set of user credentials that belong to or correspond to a user group not associated with the first entity identifier, in which case the user of browser 118 acts as a third party or matchmaker between multiple entity identifiers, including the first entity identifier. For example, in a financial context, this situation may arise between a broker (first entity identifier) ​​who establishes an account with the broker's client and the broker's clearing bank.

[0036] The copied file may be received from the client 104, whether the file is stored on the client 104 or accessible to the client 104 or the browser 118 before copying, or may be received from a data source remote from the client 104, such as through a network-based file sharing service, whether P2P or cloud-based, such as Napster, BitTorrent, Dropbox, Box, Egnyte, Google Drive, Microsoft OneDrive, Microsoft Sharepoint, Microsoft Teams, Slack, Apple iCloud, etc. For example, the file may be stored locally on the client 104 before copying, or may be stored remotely from the client 104 before copying. For example, the copied file may be received from the browser 118 based on a user selection of the file before copying. For example, the copied file may be received from a data source, such as a network-based file sharing service, remote from the client 104 based on a user selection of the file, whether local or remote. It should be noted that the copied files may be data files, such as productivity document files such as Microsoft Word files, Microsoft Excel files, Portable Document Format (PDF) files, image files, audio files, plain text files, and settings files, whether password protected or not. Similarly, it should be noted that the copied files may be executable files, such as .BAT files, .COM files, .EXE files, .BIN files, smart contract files, and the like, whether executable in a Windows environment or in other OS environments, including distributed environments. Once received, the copied files may be stored locally on server 110 or remotely from server 110.For example, the copied file may be stored by database 146 as managed by storage logic 132. Note that server 110 may check the copied file for viruses or other malware upon receiving the copied file. If server 110 detects that the copied file contains a virus, server 110 may notify client 104 and delete the copied file from server 110.

[0037] At block 306, metadata logic 136 generates a task identifier to be associated with the first subject identifier, the action identifier, the item identifier, and the category identifier. With reference to FIG. 2, the task identifier corresponds to task identifier 212. For example, the task identifier may be generated based on the action identifier. Thus, the task identifier is associated with the first subject identifier, the action identifier, the item identifier, and the category identifier based on grouping the task identifiers in a one-to-many correspondence with the first subject identifier, grouping them in a one-to-many correspondence with the action identifier, grouping them in a one-to-many correspondence with the item identifier, and grouping them in a one-to-many correspondence with the category identifier.

[0038] At block 308, metadata logic 136 generates a document identifier for the copied file. With reference to Figure 2, the document identifier corresponds to document identifier 214. As described above, metadata logic 136 may generate the document identifier based on the content of the copied file, characteristics of the copied file, or neither, such as randomly.

[0039] In block 310, the metadata logic 136 populates the data structure such that the document identifier is mapped to the first subject identifier, action identifier, item identifier, category identifier, and type identifier. Note that the data structure may pre-exist or may be created at that time for use by the metadata logic 136. The metadata logic 136 may populate the data structure by writing into it, whether in a first-in-first-out (FIFO) or last-in-first-out (LIFO) manner. For example, the document identifier, first subject identifier, action identifier, item identifier, category identifier, and type identifier may be written into the data structure such that the document identifier is mapped to the first subject identifier, action identifier, item identifier, category identifier, and type identifier. For example, the first subject identifier, second subject identifier, and action identifier stored in the data structure may be or include metadata tags. The data structure may include at least one of a table, a flat file, a vector, a tree, a linked list, a queue, a stack, a dequeue, a matrix, an array, a hash, a heap, a multimap, a quadtree, a graph, etc. When the data structure includes a database, the database may include a relational database, an in-memory database, a non-SQL database, etc. Thus, the data structure stores document identifiers that are mapped in a one-to-many correspondence to each first subject identifier, each action identifier, each item identifier, each category identifier, and each type identifier. For example, the data structure may be populated with task identifiers such that document identifiers are mapped to task identifiers, or such that task identifiers are mapped to document identifiers.

[0040] It should be noted that a data structure may be static or dynamic with respect to at least one of its shape or its size. For example, when a data structure includes a table, the table includes several columns and several rows. Thus, some columns or some rows may be static or dynamic. Similarly, the data structure may store the first subject identifier, the action identifier, the item identifier, the category identifier, and the type identifier in at least one of a predefined order or a predefined cell configuration. For example, when a data structure includes a table, the predefined order may require that the subject identifier sequentially precedes the action identifier, which sequentially precedes the item identifier, etc. For example, when a data structure includes a table, the predefined cell configuration may require that the subject identifier be populated in a designated addressable cell (or column or row), and the action identifier be populated in a designated addressable cell (or column or row). However, in some embodiments, the data structure does not store the first subject identifier, the action identifier, the item identifier, the category identifier, and the type identifier in at least one of a predefined order or a predefined cell configuration.

[0041] At block 312, the metadata logic 136 associates the task identifiers with the data structures. For example, such association may occur by grouping the data structures by task identifier. For example, such association may occur by forming a hash table that maps task identifiers to data structures, such as when the data structures have structure identifiers associated with them, and the mapping may occur by mapping the task identifiers to the structure identifiers. For example, such association may occur by writing the task identifiers into the data structures such that the task identifiers are mapped onto the document identifiers in a one-to-many correspondence, etc.

[0042] At block 314, the interface logic 126 enables the GUI presented via the browser 118 to input a second subject identifier. Referring to FIG. 2, the second subject identifier corresponds to the subject identifier 202. Note that the second subject identifier may match or differ from the first identifier. For example, the second subject identifier may match the first subject identifier, such as when shared within a common user group, or may differ from the first subject identifier, such as when shared between different user groups. For example, the second subject identifier may be associated with the client 106. As a result, the menu presents a set of input elements prepared for user data entry, as described above, so that the second subject identifier may be entered via an input device of the client 104, such as a mouse, a keyboard (whether physical or virtual), a touchpad, a trackball, a camera, a microphone, etc. Note that, as described above, the browser 118 may be associated with the first subject identifier (first sender) or a third subject identifier (matchmaker between two subject identifiers). Also, note that at least one of the first entity identifier or the second entity identifier may include a transaction entity identifier, whether those identifiers match or differ from one another in content, format, etc. Note that a task identifier may be generated based on at least one of the first entity identifier or the second entity identifier.

[0043] In block 316, the metadata logic 136 associates the task identifier with the second subject identifier. For example, such association may occur by grouping the second subject identifier with the task identifier. Similarly, for example, such association may occur by forming a hash table that maps task identifiers to second subject identifiers. Similarly, for example, such association may occur by writing the second subject identifier into a data structure such that document identifiers are mapped to second subject identifiers and task identifiers are mapped to document identifiers. Note that the second subject identifiers may correspond to action identifiers in a one-to-many correspondence.

[0044] At block 318, the authorization logic 142 shares the copied file with the user based on the second subject identifier via the task identifier. The user may be associated with the second subject identifier (and other identifiers disclosed herein) based on the user's operation of the browser 120 of the client 106 and thereby hosting a session with the server 110. Note that the session may be a secure session, such as via the HTTPS protocol. During the session, the user inputs the second subject identifier (and other identifiers) into a GUI presented by the browser 120. The user may input the second subject identifier (and other identifiers) via an input device of the client 106, such as a mouse, a keyboard (whether physical or virtual), a touchpad, a trackball, a camera, a microphone, etc. For example, the GUI may include a menu, a form, a questionnaire, etc. Note that the GUI interfaced by the user associated with the second subject identifier may match, differ from, or be identical to the GUI interfaced by the user associated with the first subject identifier.

[0045] When a user is associated with the second subject identifier (and other identifiers disclosed herein) and the task identifier corresponds to the first and second subject identifiers (and other identifiers disclosed herein) based on the task identifier corresponding to the first and second identifiers, the authorization logic 142 may share the copied file based on the document identifier. For example, the authorization logic 142 may share the copied file by sending a message with a hyperlink from the user associated with the first subject identifier to the user associated with the second subject identifier so that the user associated with the second subject identifier may access the copied file by activating the hyperlink. The message may be sent and received by the messaging logic 128 and may be notified by the notification logic 144. When the link is activated, the server 110 may access the task identifier corresponding to the first and second subject identifiers (and other identifiers disclosed herein), such as via the storage logic 132, identify the document identifier corresponding to the task identifier, retrieve the copied file from the repository based on the document identifier, and make the copied file available to the user associated with the second subject identifier. Thus, the copied file may be shared with the browser 120 for the session by presentation of a hyperlink on the browser 120. The copied file is then at least one of opened and downloaded for the session based on activation of the hyperlink via the browser 120.

[0046] It is noted that the message may include an electronic message, a text message, an over-the-top (OTT) message, a social networking message, etc. It is further noted that the access may be read permission, write permission, etc. It is further noted that the browser 118 may be associated with a task identifier for a session, such as via a cookie stored on the client 106, based on a user associated with a second subject identifier providing input to the browser 118, where the input may include a subject identifier, an action identifier, an item identifier, a category identifier, etc., as described above. Similarly, for example, if a user is associated with a second entity identifier (and other identifiers), as described above, and if a task identifier corresponds to the first entity identifier and the second entity identifier based on the task identifier corresponding to the first entity identifier and the second entity identifier, the authorization logic 142 may share the copied file by causing an icon corresponding to the copied file to appear in a GUI presented on the browser 120 of the client 106, the browser 120 being associated with the user corresponding to the second entity identifier, and the copied file may be accessed by activating the icon by clicking, touching, etc. Once the icon is activated, the server 110 may access the task identifier corresponding to the first entity identifier and the second entity identifier (as well as other identifiers disclosed herein), identify a document identifier corresponding to the task identifier, retrieve the copied file from the repository based on the document identifier, and make the copied file available to the user associated with the second entity identifier. Thus, as described above, server 110 may associate browser 120 with a task identifier for the session based on a second subject identifier associated with the session as user input and an action identifier associated with the session as user input matching the second subject identifier in the data structure and the action identifier in the data structure.Note that browser 120 may be associated with a task identifier for a session based on matching of an item identifier associated with the session and a category identifier associated with the session with an item identifier in the data structure and a category identifier in the data structure. As a result, server 110 shares the copied file for the session with browser 120 based on the task identifier so that the copied file is searchable by browser 120 based on the document identifier stored in the data structure. Note that the copied file may be shared with more than two entity identifiers, such as at least three or more. For example, in a financial context, this may include an asset manager, a fund administrator, and a securities depository, as described above. Furthermore, note that server 110 may deduplicate the copied file for a session before sharing it with browser 120, as described above. For example, the copied file may be deduplicated based on at least one of a first entity identifier, a second entity identifier, an action identifier, or a task identifier. For example, the copied files may be deduplicated based on at least one of a first subject identifier, an action identifier, and a task identifier or a second subject identifier. For example, the copied files may be deduplicated based on at least one of a first subject identifier, an action identifier, a task identifier, a second subject identifier, and an item identifier or a category identifier.

[0047] In some embodiments, the server 110 includes a web server, an application server, and a database server. As described above, the web server serves a GUI on the browser 118 and receives the first subject identifier, the second subject identifier, the action identifier, and the copy. The application server generates a task identifier, a data structure, and a document identifier. The application server groups the data structure by the task identifier. The application server populates the data structure with the document identifier, the first subject identifier, the second subject identifier, and the action identifier such that the document identifier is mapped to the first subject identifier, the second subject identifier, and the action identifier. The web server hosts a session with the browser 120, and the application server associates the browser 120 with the task identifier for the session based on a match between the second subject identifier and the action identifier associated with the session and the second subject identifier in the data structure and the action identifier in the data structure. The application server shares the copy with the browser 120 via a database server. The database server stores the copy.

[0048] FIG. 4 shows a schematic diagram of an embodiment of a data structure for storing a document identifier and multiple tags according to the present disclosure. Data structure 400 is presented as a table having multiple rows 402, 404, 406 and multiple columns 408, 410, 412, 414, 416, thereby defining a grid having multiple addressable cells (15 as shown, but more or fewer are possible). Each addressable cell stores a metadata tag corresponding to an identifier disclosed herein. Thus, row 402 stores document identifier 398lak@!$sdjlaks, tag 1 (first subject identifier), tag 2 (second subject identifier), and tag 3 (action identifier). Note that row 402 includes an empty cell, which may be populated with tag 4. Similarly, row 404 includes document identifier 43!5%#alksn, tag1 (first subject identifier), tag2 (second subject identifier), tag3 (action identifier), and tag4 (item identifier). Note that while rows 402 and 404 differ in the amount of cells populated, rows 402 and 404 do not necessarily differ in the amount of cells populated. As described above, data structure 400 may be static or dynamic with respect to at least one of its shape or its size. For example, rows 402, 404, 406 or columns 408, 410, 412, 414, 416 may be static or dynamic in number. Similarly, data structure 400 may store a set of tags in at least one of a predefined order or a predefined cell configuration. For example, the predefined order may require that the subject identifiers (tag 1 and tag 2) sequentially precede the action identifier (tag 3), and that the action identifier (tag 3) sequentially precede the item identifier (tag 4), etc. For example, the predefined cell configuration may require that the subject identifiers (tag 1 and tag 2) be populated in designated addressable cells (columns 410 and 412), and that the action identifier be populated in designated addressable cells (column 414). However, in some embodiments, data structure 400 does not store the set of tags in at least one of a predefined order or a predefined cell configuration.

[0049] 5 shows a flow chart of an embodiment of a process for receiving access to a file according to the present disclosure. Process 500 is performed by network topology 100.

[0050] In block 502, the interface logic 126 presents a GUI to the browser, as described above.

[0051] At block 504, the interface logic 126 receives a plurality of identifiers via the GUI, as described above. As described above, the identifiers may include a first subject identifier, a second subject identifier, an action identifier, an item identifier, a category identifier, a type identifier, etc.

[0052] At block 506, the authorization logic 142 accesses the data structure, as described above. As described above, the data structure stores document identifiers, metadata tags, and mappings between the document identifiers and the metadata tags. As described above, the document identifiers may be mapped to the metadata tags in a one-to-many correspondence. The metadata tags include information corresponding to at least one of the identifiers. For example, such information may be stored in an alphanumeric format, a pictorial format, an audio format, a barcode format, or any other symbolic or non-symbolic representation. As described above, the data structure is already associated with the task identifiers. For example, such association may occur by the task identifiers being stored within the data structure and being mapped onto the document identifiers in a one-to-many correspondence. For example, such association may occur by the task identifiers being stored outside the data structure and being objects linked or associated with the data structure. Thus, the data structure is accessed based on the task identifiers, i.e., based on the identifiers received via the GUI corresponding to multiple identifiers pre-grouped under the task identifiers.

[0053] At block 508, the search logic 140 searches the data structure for matches between at least one of the tags and the identifiers as input. For example, when the data structure stores multiple metadata tags, and when the browser receives a first subject identifier, a second subject identifier, an action identifier, an item identifier, a category identifier, and a type identifier, the search logic 140 searches the data structure for matches between the identifiers and the tags. The search logic 140 may employ at least one of a brute force search algorithm, a linear search algorithm, a binary search algorithm, a tree search algorithm, a probabilistic search algorithm, a depth search algorithm, a breadth search algorithm, etc. The search logic 140 may search for matches in parallel (searching for matches between the identifiers and tags simultaneously) or serially (searching for matches between the identifiers and tags sequentially).

[0054] At block 510, the search logic 140 identifies a match between the tag and at least one of the identifiers. For example, a match may be identified between the tag and at least one of a first subject identifier, a second subject identifier, an action identifier, a task identifier, an item identifier, or a category identifier.

[0055] In block 512, the authorization logic 142 accesses a set of rules associated with a tag that is matched to at least one of the identifiers. The set of rules corresponds to a predefined workflow associated with the tag and the task identifier that corresponds to the tag. The set of rules may control how a GUI is presented to a user operating a browser. For example, the set of rules may control which output elements are presented and the content / logic therein or therebetween, or which input elements are presented and the content / logic therein or therebetween. For example, the authorization logic 142 may identify a set of rules that corresponds to the task identifier.

[0056] At block 514, authorization logic 142 interfaces with storage logic 132 such that storage logic 132 retrieves a file corresponding to the document identifier based on the mapping in the data structure. For example, a document identifier may be identified and the file retrieved. Storage logic 132 retrieves the file from database 146. The file is retrieved via the document identifier based on a match between the tag and at least one of the identifiers for the task identifier. That is, once a match is identified, a document identifier corresponding to the tag is identified and the file is retrieved via the document identifier.

[0057] In block 516, interface logic 126 presents a GUI via the browser based on the set of rules. Thus, the GUI may be regenerated or modified based on the set of rules. For example, various input and output elements may be presented based on the set of rules, and various corresponding content / logic may be presented or coupled to the various input and output elements.

[0058] At block 518, interface logic 126 communicates with authorization logic 142 so that the file is made available through the GUI based on a set of rules, as described above. For example, if the file is accessed by activating a hyperlink or by an icon corresponding to the file appearing in the GUI, then authorization logic 142 may share the file by presenting a message with a hyperlink so that the file can be accessed by activating the icon by clicking, touching, etc.

[0059] 6A-6C illustrate a flowchart and a pair of screenshots of an embodiment of a technique for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers in accordance with the present disclosure. Process 600A is performed by network topology 100.

[0060] In block 602, as described above, interface logic 126 presents GUIs 600B, 600C based on a task identifier, as pre-formed based on a plurality of identifiers previously input by a user of the browser, including a subject identifier, an action identifier, a plurality of item identifiers, a plurality of category identifiers, etc. GUIs 600B, 600C present a first page hyperlink 612 and a second page hyperlink 614 that can be selectively toggled between.

[0061] In block 604, the interface logic 126 populates the GUIs 600B, 600C with strings based on the subject identifier, action identifier, item identifier, and category identifier. The strings correspond to the subject identifier, action identifier, item identifier, and category identifier. For example, the strings may be labels, either passive or active (hyperlinked), to facilitate user interaction.

[0062] In block 606, interface logic 126 communicates with metadata logic 136 and progress logic 138 so that when first page hyperlink 612 is selected, GUI 600B presents tabular menu 610 based on the item identifier and category identifier. Tabular menu 610 includes multiple columns and multiple rows, thereby defining a grid containing multiple values ​​corresponding to item identifiers and category identifiers for multiple files stored in database 146. In tabular menu 610, the rows correspond to item identifiers and the columns correspond to category identifiers, multiple type identifiers, and other identifiers, as previously entered, as described above.

[0063] The tabular menu 610 also presents a checkbox-based grid 616 corresponding to item identifiers for files that meet a threshold of presence or absence (binary) based on the set of rules, as described above. Note that the set of rules corresponds to a task identifier, as described above. Also, note that the checkbox-based grid 616 includes a pause button and a play button for each of the item identifiers, where the pause button pauses the progress analysis for that respective item identifier and the play button keeps the progress analysis for that respective item identifier active. Thus, as files are uploaded and tagged for each of the item identifiers, the checkbox-based grid 616 is completed as determined against the set of rules, as described above. In some embodiments, the checkbox-based grid 616 may be manually updated in real time by the browser 118 or the browser 120, whereby the checkbox-based grid 616 is visually updated for at least one of the browsers 118 or the browser 120.

[0064] Note that GUIs 600B, 600C present a pie bar 620 that dynamically updates in real time based on the completion of checkbox-based grid 616. Note that pie bar 620 is associated with a task identifier.

[0065] Further, note that GUIs 600B, 600C include messaging interface 622 such that they are managed via messaging logic 128 based on the task identifier. For example, messaging interface 622 enables internal messaging communication between browser 118 and browser 120 based on the task identifier between a user associated with a first subject identifier and a user associated with a second subject identifier, which are grouped by the task identifier. Thus, as described above, messaging logic 128 enables internal messaging services between browser 118 and browser 120 for a session based on the task identifier after a copied file is shared with browser 120 for the session. In some embodiments, messaging interface 622 enables external messages between browser 118 and browser 120.

[0066] As explained above, second page hyperlink 614 presents tabular menu 618 showing various category and type identifiers corresponding to files that have been uploaded and categorized by type identifier, and files that have not yet been uploaded. Note that tabular menu 610 and checkbox-based grid 6161 are based on the values ​​in tabular menu 618.

[0067] In block 608, interface logic 126 communicates with metadata logic 136 and progress logic 138 so that GUI 600B updates tabular menu 610 with respect to item identifiers based on category identifiers and type identifiers. For example, when a file is uploaded via GUI 600C, checkbox-based grid 616 is updated based on a set of rules corresponding to the task identifier. Accordingly, pie bar 620 is updated accordingly. Thus, server 110 may monitor the completeness status of the document set based on the set of rules and present tabular menu 610 to browser 118 or browser 120 after sharing the copied files with browser 120 during the session. In this case, tabular menu 610 is configured to represent the completeness status of the document set with respect to item identifiers and category identifiers based on the set of rules.

[0068] 7A-7C show a flowchart and a pair of screenshots of an embodiment of a technique for updating progress details according to the present disclosure. Process 700A is performed by network topology 100.

[0069] In block 702, as described above, interface logic 126 presents GUIs 700B, 700C based on a task identifier, as pre-formed based on identifiers previously input by a browser user. The identifiers may include a subject identifier, an action identifier, item identifiers, category identifiers, etc. GUIs 700B, 700C are similar to GUIs 600B, 600C, except for a lower portion 710 thereof. Lower portion 710 includes a first page hyperlink 712 and a second page hyperlink 714 that can be selectively switched between.

[0070] In block 704, the interface logic 126 populates the GUIs 700B, 700C with strings based on the subject identifier, action identifier, item identifier, and category identifier. The strings correspond to the subject identifier, action identifier, item identifier, and category identifier. For example, the strings may be labels, either passive or active (hyperlinked), to facilitate user interaction.

[0071] At block 706, interface logic 126 communicates with metadata logic 136 so that GUIs 700B, 700C, based on the multiple type identifiers associated with the item identifier and category identifier, (1) present a tabular menu on GUI 700B when first page hyperlink 712 is selected, and (2) present a tabular menu on GUI 700C when second page hyperlink 714 is selected. Note that the tabular menu of GUI 700B and the tabular menu of GUI 700C are dynamically linked between each other, such that updates in one may update the other.

[0072] As described above, the tabular menu associated with the first page hyperlink 712 operates as a progress task list, allowing a user to select check boxes corresponding to type identifiers associated with that particular item identifier and that particular category identifier so that their input is compared against a set of rules. The tabular menu associated with the second page hyperlink 714 operates as a document list, allowing a user to view document types corresponding to particular files for a particular item identifier and a particular category identifier, and also to view various document-related information such as file upload time / date, subject identifier associated with the file upload, file comments, file download links, etc.

[0073] At block 708, the interface logic 126 communicates with the metadata logic 136 so that the GUI 700B, 700C updates the tabular menu associated with the first page hyperlink 712 or the tabular menu associated with the second page hyperlink 714 with respect to the task identifier based on the user input to at least one of the first page hyperlink 712 or the tabular menu associated with the second page hyperlink 714, where the input is associated with a type identifier.

[0074] 8 shows a flowchart of an embodiment of a process for adding to a blockchain according to the present disclosure. Process 800 is performed by network topology 100.

[0075] At block 802, the metadata logic 136 communicates with the interface logic 126 such that the metadata logic 136 receives a plurality of identifiers and a copied file from the client's browser, as described above. For example, the identifiers may include a subject identifier, an action identifier, a plurality of item identifiers, a plurality of category identifiers, etc.

[0076] At block 804, the metadata logic 136 generates a document identifier for the copied file, as described above.

[0077] At block 806, the metadata logic 136 writes the document identifier into a data structure, as described above.

[0078] At block 808, the metadata logic 136 writes the identifier into a data structure, as described above.

[0079] At block 810, the metadata logic 136 forms the document identifiers and mappings between the identifiers in a data structure, as described above.

[0080] At block 812, the metadata logic 136 communicates with the blockchain logic 124 so that the blockchain logic 124 inserts a block into the blockchain that may correspond to the mapping. The blockchain may be local to the server 110 or remote from the server 110. Once the blockchain logic 124 retrieves the data structure, the blockchain logic 124 may form a block based on the mapping. For example, as described above, the block may indicate document identifiers that map to identifiers, where the document identifiers have a one-to-many correspondence with each of the identifiers. In some embodiments, the block may provide information about task identifiers that correspond to the data structure, or task identifiers that correspond to document identifiers in the data structure, or any other logical relationship involving the identifiers or data structure. For example, a block may be generated based on a mapping between a document identifier and a group. The group includes at least one of a first entity identifier, an action identifier, a task identifier, or a second entity identifier.

[0081] At block 814, the blockchain logic 124 reads the block in the blockchain.

[0082] In block 816, the blockchain logic 124 may communicate with any logic local to or remote from the server 110 to take actions, whether the logic is hardware-based or software-based. For example, actions may include reading data, writing data, selecting data, deleting data, formatting data, sending or receiving messages to a client or data source, whether local or remote to the server 110, communicating with an input or output device, whether local or remote to the server 110, etc.

[0083] 9 illustrates a flowchart of an embodiment of a process for executing a smart contract based on a data structure according to the present disclosure. The process 900 is performed by the network topology 100.

[0084] At block 902, the blockchain logic 124 accesses smart contract logic, whether local to or remote from the server 110. For example, the smart contract logic may include Ethereum platform logic. For example, the smart contract logic may include various executable code, such as functions, objects, and the like, stored in data structures, such as files, either including any identifiers as described above, or excluding any identifiers as described above.

[0085] At block 904, the blockchain logic 124 couples the smart contract logic to a data structure storing document identifiers, tags, and mappings between the document identifiers and tags, which may include a one-to-many correspondence. Such coupling may include the blockchain logic 124 interfacing with the authorization logic 124 to grant read access to the data structure storing the document identifiers, tags, and mappings, or the blockchain logic 124 interfacing with the authorization logic 124 to upload the data structure storing the document identifiers, tags, and mappings from the server 110 onto another server, or another method of operation that allows the smart contract logic to function based on the content of the data structure or a grouping associated with the data structure, such as when task identifiers are grouped in the data structure. Note that the data structure storing the document identifiers, tags, and mappings may be stored locally or remotely from the server 110.

[0086] At block 904, the blockchain logic 124 causes smart contract logic to execute based on the data structure, such as the contents of the data structure. For example, the blockchain logic 124 may approve or require execution or may not deny read access for the data structure to the smart contract logic.

[0087] 10 illustrates a flowchart of an embodiment of a process for retrieving a data structure by an artificial intelligence (AI) process according to the present disclosure. Process 1000 is performed by network topology 100.

[0088] In block 1002, the application 122 accesses a data structure that stores document identifiers, tags, and mappings between identifiers and tags, as described above.

[0089] In block 1004, the application 122 employs an artificial intelligence process to read the data structure such that the application 122 determines a population pattern, a storage pattern, an organizational pattern, a date / timing pattern, a sequence pattern, a tag pattern, a task pattern, an action pattern, an item pattern, a category pattern, a product pattern, a type pattern, an identifier pattern, or any other pattern or classification, or the lack of any of these, in the data structure based on the contents of the data structure. For example, the artificial intelligence process may use machine learning, image processing, text analysis, querying of remote data sources, etc., whether local to the server 110 or remote, including in any cloud-based or distributed environment.

[0090] In block 1006, application 122 takes an action or causes another logic entity to take an action, whether the entity is hardware-based or software-based. For example, actions may include reading data, writing data, selecting data, deleting data, formatting data, sending or receiving messages to a client or data source, whether local or remote to server 110, communicating with an input or output device, whether local or remote to server 110, etc.

[0091] 11 shows a flowchart of an embodiment of a process for user actions on a data structure based on user group membership according to the present disclosure. Process 1100 is performed by network topology 100.

[0092] In block 1102, as described above, the authorization logic 138 authenticates the user based on the user operating a browser that hosts a session with the server 110. Note that during the session, the user is associated with a user identifier that is hierarchically below or related to the subject identifier, as described above. For example, a subject identifier may have multiple user identifiers hierarchically associated with it.

[0093] In block 1104, the authorization logic 138 interfaces with the metadata logic 136 to identify a user group to which the user belongs based on the user identifier. As described above, a user group corresponds to a task identifier. For example, this identification may occur by identifying a task identifier associated with a subject identifier to which the user identifier is associated, or vice versa. For example, this may occur by associating a task with a subject identifier, and because a subject identifier may have multiple user identifiers associated with it, the user identifier may be looked up against the user identifiers associated with the subject identifier for that task identifier. Note that a user identifier may be associated with multiple task identifiers simultaneously. Thus, the user group to which the user belongs may be identified.

[0094] In block 1106, as described above, authorization logic 142 interfaces with metadata logic 136 to allow users to take actions with respect to the data structure that stores the document identifiers, tags, and mappings between document identifiers and tags based on the group. Thus, once a user group is identified, a user may access a file based on a document identifier associated with a task identifier for the user group to which the user belongs, and then access the file based on the document identifier, as described above.

[0095] 12-22 show several screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags in accordance with the present disclosure.

[0096] FIG. 12 shows a GUI 1200 that displays a grid in tabular format including a task identifier column that lists multiple task identifiers (which may be hyperlinked), a first subject identifier column that lists multiple first subject identifiers for the task identifier, a second subject identifier column that lists multiple second subject identifiers for the task identifier, an action request identifier column that lists multiple action identifiers (binary presented stars) based on a set of rules for the type identifier and task identifier, and an age identifier column that lists multiple age identifiers based on a set of rules for the task identifier (tracked by a data structure), as described above.

[0097] 13 shows a GUI 1300 that presents the checkbox-based grid 616, as described above. Note that for item identifier 2172, the category identifiers (USD Repos and Non-USD Repos) are complete, as indicated by the visually distinct checked checkboxes, whereas other category identifiers are not checked as complete. Also, note that some category identifiers (equity swap) are suspended, as indicated by the visually distinct icons.

[0098] 14 shows a GUI 1400 that allows a user to export a data structure having document identifiers, tags, and mappings between document identifiers and mappings to other servers, as described above, by export logic 130. For example, a data structure that stores document identifiers, first subject identifiers, second subject identifiers, and action identifiers can be exported as a data file, such as a comma-separated value file, a flat file, etc.

[0099] 15 illustrates a GUI 1500 that enables tracking of multiple workflows associated with multiple subject identifiers based on multiple task identifiers by progress logic 138, as described above. The workflows correspond to multiple histograms corresponding to the subject identifiers and track which documents are past due, past due, or OK, as measured against a set of rules, as described above, for either a particular task identifier or subject identifier. For example, as described above, the set of rules may include a target document upload date, which may be entered via browser 118 or browser 120.

[0100] 16 illustrates a GUI 1600 that allows for more granular document tracking relative to GUI 1500, as described above, via progress logic 138. As shown, this type of tracking may be based on a subject identifier for a particular period of time, as measured against a set of rules, either for a particular task identifier or for a subject identifier, as described above.

[0101] 17 shows a GUI 1700 that allows for more granular document tracking relative to GUI 1600 via progress logic 138, as described above. Here, GUI 1700 shows the average task completion time for a particular identifier for various workflows, measured against a set of rules, either for a particular task identifier or for a subject identifier, as described above.

[0102] FIG. 18 illustrates a GUI 1800 that enables the progress logic 138, as described above, to track received or missing documents for a subject identifier and an action identifier based on multiple hyperlinked task identifiers and multiple subject identifiers (grouped by task identifier).

[0103] 19 shows GUI 1900, which, as described above, allows for a more granular view of GUI 1800, detailing what happens when one of the hyperlinked task identifiers is activated: a table showing multiple document type identifiers, multiple file names, and multiple file upload icons, with some items completed and some not.

[0104] FIG. 20 shows a GUI 2000, which shows a tabular view of multiple hyperlinked item identifiers and multiple category identifiers (grouped by item identifier) ​​for subject and action identifiers, as described above.

[0105] FIG. 21 shows a GUI 2100, which shows a list of entity identifiers (Legal & General) associated with a task identifier (LGIM EMEA New Fund Launch), as described above.

[0106] FIG. 22 shows a GUI 2200 that displays a list of document types for the file names and task identifiers of GUI 2100, as described above.

[0107] 23A-23I show several screenshots of an embodiment of a multi-user sharing technique according to the present disclosure. In particular, GUI 2300 shows a multi-page questionnaire with a workflow having multiple users associated with different subject identifiers, as described above. After completion of the multi-page questionnaire, a set of rules is formed against which the workflow is evaluated based on the uploaded files and compared via a data structure, as described above. The GUI then presents various tabular menus that enable document tracking, progress monitoring, and user-to-user messaging based on various identifiers, as described above. In some embodiments, GUI 2300 is configured to offer template files for download, where a user downloads the template files, populates the template files as required, and uploads the populated template files. The template files are validated, and once validated, they may be grouped by task identifier, as described above. For example, such grouping may be performed based on identifiers present in the template files.

[0108] Furthermore, features described with respect to one example embodiment may be combined in any permutation or combination with or with various other example embodiments. Different aspects or elements of the example embodiments disclosed herein may be combined in a similar manner. As used herein, the terms "combination," "combination of," or "combinations thereof" refer to all permutations and combinations of the listed items preceding the term. For example, "A, B, C, or combinations thereof" is intended to include at least one of A, B, C, AB, AC, BC, or ABC, and, if order is important in the particular context, also BA, CA, CB, CBA, BCA, ACB, BAC, or CAB. Continuing with this example, explicitly included are combinations including repetitions of one or more items or terms, such as BB, AAA, AB, BBC, AAABCCCC, CBBAAA, CABABB, etc. Those skilled in the art will understand that there is typically no limit to the number of items or terms in any combination, unless otherwise apparent from the context.

[0109] Various embodiments of the present disclosure may be implemented in a data processing system suitable for storing and / or executing program code, including at least one processor coupled directly or indirectly to memory elements through a system bus, including, for example, local memory utilized during the actual execution of the program code, mass storage devices, and cache memory that provides temporary storage of at least some program code to reduce the number of times the code must be retrieved from mass storage devices during execution.

[0110] I / O devices (including but not limited to keyboards, displays, pointing devices, DASDs, tapes, CDs, DVDs, thumb drives, and other memory media, etc.) may be coupled to the system either directly or through intervening I / O controllers. Network adapters may also be coupled to the system to enable the data processing system to be coupled to other data processing systems, or remote printers, or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.

[0111] The present disclosure may be embodied in a system, a method, and / or a computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to execute aspects of the present disclosure. The computer-readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, 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 discs (DVDs), memory sticks, floppy disks, punch cards or mechanically encoded devices such as ridge structures in grooves having instructions recorded thereon, and any suitable combination of the foregoing.

[0112] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing / processing device.

[0113] Computer-readable program instructions for carrying out operations of the present disclosure may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or conventional procedural programming languages, such as object-oriented programming languages ​​like Smalltalk, C++, and the “C” programming language or similar programming languages. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means, including memory sharing, message passing, token passing, network transmission, among others. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN). Alternatively, the connection may be to an external computer (e.g., through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by utilizing state information of the computer-readable program instructions to individualize the electronic circuitry to perform aspects of the present disclosure.

[0114] Aspects of the present disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to disclosed embodiments. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions. The various illustrative logic blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, the various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art may implement the described functionality for each particular application in various ways, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

[0115] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur out of the order described in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations or executes a combination of special-purpose hardware and computer instructions.

[0116] The words "then," "next," and the like are not intended to limit the order of the steps; these words are used merely to guide the reader through the description of the method. Although a process flow diagram may describe operations as a sequential process, many of the operations may be performed in parallel or simultaneously. Additionally, the order of operations may be rearranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.

[0117] Features or functionality described with respect to one example embodiment may be combined and semi-combined into and / or with various other example embodiments. Also, different aspects and / or elements of example embodiments, as disclosed herein, may also be combined and semi-combined in a similar manner. Furthermore, some example embodiments, either individually and / or collectively, may be components of larger systems, and other procedures may precede and / or modify their application. Additionally, as disclosed herein, some steps may be required before, after, and / or simultaneously with example embodiments. It should be noted that at least as disclosed herein, any and / or all methods and / or processes may be performed, at least in part, by at least one entity or actor in any manner.

[0118] While preferred embodiments have been shown and described in detail herein, those skilled in the art will recognize that various modifications, additions, substitutions, etc. may be made without departing from the spirit of the present disclosure and, therefore, are deemed to be within the scope of the present disclosure as defined in the following claims.

Claims

1. 1. A method comprising: providing, by the server, a user interface to a first application running on a first client, the user interface configured to receive a first subject identifier, a second subject identifier, an action identifier, and a file selection; receiving, by the server, the first subject identifier, the second subject identifier, and the action identifier from the first application; receiving, by the server, a copy of the file based on the selection; generating, by the server, a task identifier, a data structure, and a document identifier; grouping, by the server, the data structures by the task identifier; populating, by the server, the data structure with the document identifier, the first subject identifier, the second subject identifier, and the action identifier such that the document identifier is mapped to the first subject identifier, the second subject identifier, and the action identifier; hosting, by the server, a session with a second application running on a second client, the session being associated with the second subject identifier and the action identifier; associating, by the server, the second application with the task identifier for the session based on a match between the second subject identifier associated with the session and the action identifier associated with the session and the second subject identifier in the data structure and the action identifier in the data structure; sharing, by the server, the copy with the second application during the session based on the task identifier such that the copy is retrievable by the second application based on the document identifier in the data structure; A method comprising:

2. The method of claim 1 , wherein the first application is associated with the first entity identifier.

3. The method of claim 1 , wherein the first application is associated with a third subject identifier other than the first subject identifier and the second subject identifier.

4. 2. The method of claim 1, wherein the first entity identifier and the second entity identifier each include a legal entity identifier (LEI), and the copy is shared with the second application during the session based on the task identifier so that a pre-trade client onboarding process involving the copy can occur.

5. 5. The method of claim 4, wherein the entity identifier of the first entity identifier matches the entity identifier of the second entity identifier.

6. 5. The method of claim 4, wherein the entity identifier of the first entity identifier is different from the entity identifier of the second entity identifier.

7. The method of claim 1 , wherein the copy includes content and the document identifier is generated based on the content.

8. The method of claim 1 , wherein the copy includes characteristics, and the document identifier is generated based on the characteristics.

9. The method of claim 1 , wherein the file is stored locally on the first client.

10. The method of claim 1 , wherein the file is stored remotely from the first client.

11. the user interface is configured to receive an item identifier and a category identifier; receiving, by the server, the item identifier and the category identifier from the first application; populating, by the server, the data structure with the item identifiers and the category identifiers such that the document identifiers are mapped to the item identifiers and the category identifiers, wherein the sessions are associated with the item identifiers and the category identifiers; associating, by the server, the second application with the task identifier for the session based on a match between the item identifier associated with the session and the category identifier associated with the session and the item identifier in the data structure and the category identifier in the data structure; The method of claim 1 further comprising:

12. The method of claim 11 , wherein the action identifiers correspond to the item identifiers in a one-to-many correspondence.

13. The method of claim 11 , wherein the item identifiers correspond to the category identifiers in a one-to-many correspondence.

14. The method of claim 11 , wherein the first subject identifiers correspond to the action identifiers in a one-to-many correspondence.

15. The method of claim 11 , wherein the second subject identifiers correspond to the action identifiers in a one-to-many correspondence.

16. The method of claim 11 , wherein the task identifiers correspond to the document identifiers in a one-to-many correspondence.

17. The method of claim 1 , wherein the first subject identifiers correspond to the action identifiers in a one-to-many correspondence.

18. The method of claim 1 , wherein the second subject identifiers correspond to the action identifiers in a one-to-many correspondence.

19. The method of claim 1 , wherein the task identifiers correspond to the document identifiers in a one-to-many correspondence.

20. The method of claim 1 , wherein the task identifier is generated based on at least one of the first subject identifier or the second subject identifier.

21. The method of claim 1 , wherein the task identifier is generated based on the action identifier.

22. 2. The method of claim 1, wherein the user interface is a first user interface, the second application includes a second user interface, the first user interface includes a first messaging interface, and the second user interface includes a second messaging interface, and after the copy is shared with the second application during the session, the server enables internal messaging services between the first application and the second application during the session based on the task identifier.

23. 2. The method of claim 1, wherein the copy is shared with the second application during the session by presentation of a hyperlink on the second application, and the copy is at least one of opened and downloaded based on activation of the hyperlink by the second application during the session.

24. The method of claim 1 , further comprising: populating the data structure with the task identifiers by the server such that the document identifiers are mapped to the task identifiers.

25. The method of claim 1 , further comprising: populating the data structure by the server with the task identifiers such that the task identifiers are mapped to the document identifiers.

26. the data structure stores the item identifiers and the category identifiers such that the document identifiers are mapped to the item identifiers and the category identifiers; identifying, by the server, a set of rules corresponding to the task identifier; monitoring, by the server, a completeness status of the document set based on the set of rules; presenting, by the server, a menu to the first application and the second application after sharing the copy with the second application for the session, the menu configured to represent the state of the completeness of the document set with respect to the item identifiers and the category identifiers based on the set of rules; The method of claim 1 further comprising:

27. The method of claim 1 , wherein the data structure storing the document identifier, the first subject identifier, the second subject identifier, and the action identifier is exportable as a data file.

28. receiving, by the server, input from the second application during the session; searching, by the server, the data structure for matches based on the input; identifying, by the server, the match between the input and at least one of the first subject identifier, the second subject identifier, the action identifier, or the task identifier; identifying, by the server, the document identifier based on the match; sharing, by the server, the copy with the second application for the session based on the document identifier; The method of claim 1 further comprising:

29. 29. The method of claim 28, wherein the data structure stores the item identifiers and the category identifiers such that the document identifiers are mapped to the item identifiers and the category identifiers, and the match is identified between the input and at least one of the first subject identifier, the second subject identifier, the action identifier, the task identifier, the item identifier, or the category identifier.

30. 2. The method of claim 1, wherein the servers include a web server, an application server, and a database server, the web server serving the user interface and receiving the first subject identifier, the second subject identifier, the action identifier, and the copy, the application server generating the task identifier, the data structure, and the document identifier, the application server groups the data structure by the task identifier, and populates the data structure with the document identifier, the first subject identifier, the second subject identifier, and the action identifier such that the document identifier is mapped to the first subject identifier, the second subject identifier, and the action identifier, the web server hosting the session, the application server associating the second application with the task identifier for the session based on the second subject identifier associated with the session and the action identifier associated with the session matching the second subject identifier in the data structure and the action identifier in the data structure, the application server sharing the copy with the second application via the database server, and the database server storing the copy.