Technology for File Sharing
The system addresses the inefficiencies of existing file-sharing services by using a data structure to map document identifiers to metadata tags and blockchain technology for secure, selective file sharing within predefined user groups, enhancing efficiency and security in document retrieval.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- SAPHYRE INC
- Filing Date
- 2024-01-05
- Publication Date
- 2026-05-25
Smart Images

Figure 0007864285000001 
Figure 0007864285000002 
Figure 0007864285000003
Abstract
Description
Technical Field
[0001] Cross - References to Related Applications This application claims the benefit of U.S. Provisional Application No. 62 / 682,669, filed on June 8, 2018, and U.S. Non - Provisional Application No. 16 / 211,100, filed on December 5, 2018, which are hereby incorporated by reference in their entirety.
[0002] This disclosure relates to file sharing.
Background Art
[0003] A variety of network - based file - sharing services, whether peer - to - peer (P2P) or cloud - based, enable users to share files with each other. For example, some of such services include Napster, BitTorrent, Dropbox, Box, Egnyte, Google Drive, Microsoft OneDrive, Microsoft SharePoint, Microsoft Teams, Slack, Apple iCloud, etc. These services are popular for use in many situations, but there are some situations where these services are insufficient. In particular, these services cannot securely and selectively share a variety of files among a variety of pre - defined user groups based on a variety of pre - defined workflows. For example, in a document onboarding situation where document approval is important for a variety of workflow scenarios, most users will have to search through numerous emails and file directories for relevant documents, whether locally or cloud - based. This is cumbersome, costly, unstable, and time - consuming.
[0004] In an embodiment, the server provides a user interface to a first application running on a first client, wherein the user interface is configured to receive a first subject identifier, a second subject identifier, an action identifier, and a file selection; the server receives a first subject identifier, a second subject identifier, and an action identifier from the first application; the server receives a copy of the file based on the selection; the server generates a task identifier, a data structure, and a document identifier; the server groups the data structure by the task identifier; and the server maps the document identifier, the first subject identifier, to the data structure so that the document identifier is mapped to the first subject identifier, the second subject identifier, and the action identifier. A method is provided which includes: inputting an identifier, a second subject identifier, and an action identifier; hosting a session with a second application running on a second client, wherein the session is associated with the second subject identifier and the action identifier; associating the second application with a task identifier for the duration of the session based on the fact that the second subject identifier and the action identifier associated with the session match the second subject identifier and the action identifier in the data structure; and sharing a copy with the second application for the duration of the session based on the task identifier so that the copy is searchable by the second application based on the document identifier in the data structure. [Brief explanation of the drawing]
[0005] [Figure 1] This is a schematic diagram of an embodiment of the network topology according to this disclosure. [Figure 2] This is a schematic diagram of an embodiment of data organization according to the present disclosure. [Figure 3] This is a flowchart of an embodiment of the process for authorizing access to copied files as described in this disclosure. [Figure 4] This is a schematic diagram of an embodiment of a data structure for storing a document identifier and multiple tags as disclosed herein. [Figure 5] This is a flowchart of an embodiment of the process for receiving access to a file as described in this disclosure. [Figure 6A] The diagram shows a flowchart and a pair of screenshots illustrating an embodiment of the technology described herein for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers. [Figure 6B] The diagram shows a flowchart and a pair of screenshots illustrating an embodiment of the technology described herein for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers. [Figure 6C] The diagram shows a flowchart and a pair of screenshots illustrating an embodiment of the technology described herein for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers. [Figure 7A] This figure shows a flowchart and a pair of screenshots illustrating an embodiment of the technology for updating progress details as disclosed herein. [Figure 7B] This figure shows a flowchart and a pair of screenshots illustrating an embodiment of the technology for updating progress details as disclosed herein. [Figure 7C] This figure shows a flowchart and a pair of screenshots illustrating an embodiment of the technology for updating progress details as disclosed herein. [Figure 8] This is a flowchart illustrating an embodiment of the process for adding to the blockchain, as disclosed in this document. [Figure 9] This is a flowchart of an embodiment of the process for executing a smart contract based on a data structure, as disclosed herein. [Figure 10]This is a flowchart of an embodiment of the process for reading data structures using an artificial intelligence (AI) process, as disclosed herein. [Figure 11] This is a flowchart illustrating an embodiment of the process for user actions related to data structures based on user groups, as disclosed herein. [Figure 12] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 13] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 14] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 15] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 16] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 17] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 18] This figure shows several screenshots of an embodiment of a user interface that operates based on a data structure that stores a mapping between document identifiers and multiple tags, as disclosed herein. [Figure 19]A diagram showing multiple screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags according to the present disclosure. [Figure 20] A diagram showing multiple screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags according to the present disclosure. [Figure 21] A diagram showing multiple screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags according to the present disclosure. [Figure 22] A diagram showing multiple screenshots of an embodiment of a user interface that operates based on a data structure that stores mappings between document identifiers and multiple tags according to the present disclosure. [Figure 23A] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23B] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23C] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23D] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23E] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23F] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23G] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23H] A diagram showing multiple screenshots of an embodiment of a technology shared by multiple users according to the present disclosure. [Figure 23I]A diagram showing multiple screenshots of an embodiment of a multi-user sharing technology according to the present disclosure.
Embodiments for Carrying Out the Invention
[0006] Generally, the present disclosure enables various computing technologies 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. Thus, these computing technologies can be used in various situations, such as onboarding in many fields such as finance, accounting, law, law enforcement, military, intelligence, education, manufacturing, medicine, and pre-transaction client onboarding. The present disclosure will then be more fully described by referring to FIGS. 1 to 23I, in which some embodiments of the present disclosure are shown. 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 the present disclosure will be thorough and complete and will fully convey the various concepts of the present disclosure to those skilled in the art.
[0007] Note that various terms used herein may imply direct or indirect, complete or partial, temporary or permanent, active or inactive. For example, when an element is "above," "connected to," or "coupled to" another element, that element may be directly above the other element, connected to the other element, or coupled to the other element, or there may be intervening elements including indirect or direct deformations. In contrast, when an element is "directly connected to" or "directly coupled to" another element, there are no intervening elements.
[0008] Similarly, as used herein, the term “or” is intended to mean inclusive “or” rather than exclusive “or.” That is, unless otherwise specified or evident from the context, “X uses A or B” is intended to mean either of the obvious inclusive sortings. That is, if X uses A, X uses B, or X uses both A and B, “X uses A or B” is satisfied under any of the aforementioned cases.
[0009] Similarly, the various singular forms “a,” “an,” and “the” used herein are intended to also include the various plural forms unless the context clearly indicates otherwise. For example, even if the phrase “one or more” is also used herein, the terms “a” or “an” shall mean “one or more.”
[0010] Furthermore, when used herein, the terms “comprises,” “includes,” “comprising,” and “including” express the existence of the described feature, integer, step, operation, element, or component, but do not exclude the existence and / or addition of one or more other features, integers, steps, operations, elements, components, or groups thereof. Furthermore, when this disclosure states that something “based on” something else, such statement refers to a basis upon which one or more other things may also be based. In other words, unless expressly indicated otherwise, “based on” as used herein means “at least partially based on” or “at least partially based on.”
[0011] Furthermore, terms such as "first," "second," etc., may be used herein to describe a variety of elements, components, areas, layers, or sections, but these elements, components, areas, layers, or sections should not necessarily be limited by such terms. Rather, these terms are used to distinguish one element, component, area, layer, or section from another. Accordingly, the first element, component, area, layer, or section discussed below may be referred to as the second element, component, area, layer, or section without departing from this disclosure.
[0012] Furthermore, unless otherwise specified, all terms used herein (including technical and scientific terms) have the same meaning as those ordinarily understood by those skilled in the art to which this disclosure belongs. Accordingly, 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 expressly defined herein.
[0013] Figure 1 shows a schematic diagram of an embodiment of the network topology according to this disclosure. In particular, the network topology 100 is component-based and implemented in logic, whether hardware-based or software-based. For example, when the logic is hardware-based, such logic may include circuits such as processors, memory, input devices, output devices, or other hardware, which are configured to implement the functionality of each component through programming or design. Similarly, when the 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, which implement the functionality of each component at runtime through execution or compilation. It should also be noted that at least one component of the network topology 100 may be implemented as a service. Furthermore, it should be noted that at least two components of the network topology 100 may be hosted on a single computing system / hardware / device, or each may be hosted individually.
[0014] Network topology 100 is based on a distributed network operation model that allocates tasks / workloads between servers that provide resources / services and clients that request those resources / services. While servers and clients represent different computers / applications, in some embodiments, servers and clients reside in or are part of a single system / device / framework / platform / application. Furthermore, in some embodiments, topology 100 involves allocating a large number of resources to a small number of computers, in which case the complexity of the client depends on how much computation is offloaded to the few computers. That is, the more computation is offloaded from the client to the server, the lighter the client becomes, being more dependent on network sources and less dependent on local computing resources. It should be noted that other computing models are equally possible. For example, such models may include decentralized computing such as P2P systems, e.g., BitTorrent, or distributed computing such as computer clusters where a set of networked computers work together so that the computer can be considered a single system.
[0015] The network topology 100 includes a network 102, a client 104, a client 106, a server 110, and a database 146. Client 104 hosts an operating system (OS) 112 and a browser 118 running on OS 112. Client 106 hosts an OS 114 and a browser 120 running on OS 114. Server 110 hosts an OS 116 and an 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, authorization logic 138, exploration logic 140, permission logic 142, and notification logic 144, any one of which may be a module, object, routine, script, library, etc.
[0016] Network 102 includes multiple nodes, such as a collection 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. Network 102 may be wired or wireless. Network 102 may enable communication over short or long distances, whether encrypted or unencrypted. Network 102 may operate via at least one network protocol, such as Ethernet or Transmission Control Protocol (TCP) / Internet Protocol (IP). Network 102 may have 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, or cellular network. Network 102 may be an intranet or an extranet, or may include an intranet or an extranet. Network 102 may be the internet, or may include the internet. Network 102 may include other networks, whether subnetworks or separate networks, whether they are identical or different in structure or operation from Network 102, or may enable communication with other networks. 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 a subject or actor, regardless of any relationship to any part of this disclosure.
[0017] Clients 104 and 106 may be embodied as terminals, kiosks, workstations, vehicles (whether land, sea, or air), desktops, laptops, tablets, mobile phones, mainframes, supercomputers, server farms, etc. Clients 104 and 106 may include or be connected to input devices such as a mouse, keyboard, camera (whether forward-facing or backward-facing), accelerometer, touchscreen, biometric reader, clicker, microphone, or any other suitable input device. Clients 104 and 106 may include or be connected to output devices such as a display, speaker, headphones, joystick, printer, or any other suitable output device. In some embodiments, the input and output devices may be embodied in a single unit, such as a touch-enabled display that may be haptic. OS 112 and 114 may be any type of OS, such as MacOS, Windows, Android, Unix, or Linux. Browsers 118 and 120 may be any type of browser, such as Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari, Microsoft Edge, or Amazon Silk. It should be noted that OS112, 114 may run other applications that may be used in accordance with this disclosure. Some examples of such applications include productivity applications such as Microsoft Word, Microsoft Excel, and Adobe Acrobat, and directory navigation applications such as Windows Explorer, MacOS Finder, and Command Prompt, whether the directory is local or remote on OS112, 114. Clients 104, 106 communicate with network 102, for example, via browsers 118, 120, or with server 110 through network 110, for example, via browsers 118, 120. In some embodiments, clients 104, 106 communicate directly with server 110, thereby bypassing network 102.It should be noted that more than two clients, such as 10, 100, or 1000 clients or more, 104, 106, may be used in the same way, whether they match or differ from each other in hardware or software configuration.
[0018] Server 110 can be embodied as a terminal, kiosk, workstation, vehicle (land, sea, or air), desktop, laptop, tablet, mobile phone, mainframe, supercomputer, server farm, etc. Server 110 may include or be connected to input devices such as a mouse, keyboard, camera (forward or backward), accelerometer, touchscreen, biometric reader, clicker, microphone, or any other suitable input device. Server 110 may include or be connected to output devices such as a display, speaker, headphones, joystick, printer, or any other suitable output device. In some embodiments, the input and output devices may be embodied in 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, or Linux. Server 110 may be a single server or multiple servers such as Server 110 distributed among web servers, application servers, database servers, virtual servers, etc.
[0019] Application 112 operates as instructed 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, authorization logic 138, exploration 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, authorization logic 138, exploration logic 140, permission logic 142, or notification logic 144 is outside of at least one of Application 112, OS 116, or Server 110. Furthermore, 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, authorization logic 138, exploration logic 140, permission logic 142, and notification logic 144 may be a single logic. In addition, while application 112 is modular with respect to blockchain logic 124, interface logic 126, messaging logic 128, export logic 130, storage logic 132, reporting logic 134, metadata logic 136, progress logic 138, authorization logic 138, exploration logic 140, permission logic 142, and notification logic 144, it should be noted that application 112 may be non-modular, such as object-oriented or monolithic.
[0020] Database 146 is hosted by server 110. In some embodiments, server 110 hosts database 146 via OS 116, whether internal to application 122 or external to application 122. Database 146 is configured, in whole or in part, for a variety of database operations, such as generating records, modifying records, retrieving records, searching for records, identifying records, deleting records, and sorting records. For example, some of the various database input (I) / output (O) operations include reading, writing, editing, deleting, updating, searching, selecting, merging, sorting, erasing, and formatting. Database 146 stores data in any state, whether raw, formatted, organized, or any other accessible state, and allows access to such data, either directly or indirectly. Database 146 can be a single database or multiple databases, whether hosted on a single machine or multiple machines, and whether distributed across a single data center or multiple data centers. Database 146 may include at least one of the following: relational databases, non-relational databases, post-relational databases, in-memory databases, hybrid databases, extended markup language (XML) databases, parallel databases, distributed databases, graph databases, mobile databases, operational databases, probabilistic databases, real-time databases, spatial databases, temporal databases, object-oriented databases, unstructured data databases, terminology-oriented databases, etc.
[0021] In one mode of operation, as further described below, the topology of network 100 is configured to implement techniques for securely and selectively sharing diverse files among diverse predefined user groups based on diverse predefined workflows. For each predefined workflow, files are shared based on a data structure that stores diverse document identifiers and diverse metadata tags, with the document identifiers mapped to metadata tags.
[0022] Figure 2 shows a schematic diagram of an embodiment of data organization as described herein. To securely and selectively share diverse files among diverse predefined user groups based on diverse predefined workflows, application 122 maintains or operates based on data organization according to schema 200, as further described below. In particular, schema 200 includes subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, task identifier 212, and 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 alphabets, numbers, combinations of alphabets and numbers, glyphs, barcodes, emojis or marks, or sets, sequences, terms, collections, groups, strings, or other information units of any other information format in any other organizational configuration. Note that punctuation marks or commas may be included. Each of the 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 the International Organization for Standardization (ISO) format, a combination of formats such as multiple ISO formats, or may be generated randomly. Each of the 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 that particular set of identifiers, identifier type, or identifier format.
[0023] Schema 200 includes a logical format indicated by multiple lines between subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, task identifier 212, and document identifier 214. In particular, subject identifier 202 is hierarchically related to action identifier 204 such that subject identifier 202 has a one-to-many correspondence with action identifier 204 according to the logical format. For example, subject identifier 202 may hierarchically have many action identifiers 204. Furthermore, action identifier 204 is hierarchically related to item identifier 206 such that action identifier 204 has a one-to-many correspondence with item identifier 206 according to the logical format. For example, action identifier 204 may hierarchically have many item identifiers 206. Furthermore, item identifier 206 is hierarchically related to category identifier 208 such that item identifier 206 has a one-to-many correspondence with category identifier 208 according to the logical format. For example, an item identifier 206 may have many category identifiers 208 hierarchically. Additionally, according to a logical format, category identifiers 208 are hierarchically related to type identifiers 210 such that each category identifier 208 has a one-to-many correspondence with a type identifier 210. For example, a category identifier 208 may have many type identifiers 210 hierarchically.
[0024] In summary, according to the logical format, the subject identifier 202, action identifier 204, and item identifier 206 are grouped by the task identifier 212 such that the task identifier 212 has a one-to-many correspondence with each of the subject identifier 202, action identifier 204, and item identifier 206. For example, the 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 identifier 212 may be grouped with at least one of the category identifier 208 or type identifier 210 in a one-to-many correspondence. For example, the task identifier 212 may be grouped with many category identifiers 208 or many type identifiers 210. To summarize further, according to the logical format, the subject identifier 202, action identifier 204, item identifier 206, category identifier 208, and type identifier 210 are grouped by the document identifier 214 such that the document identifier 214 has a one-to-many correspondence with each of the subject identifier 202, action identifier 204, item identifier 206, category identifier 208, and type identifier 210. For example, the document identifier 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, to summarize further, according to the logical format, the task identifier 212 is grouped with the document identifier 214 in a one-to-many correspondence. For example, the task identifier 212 may be grouped with many document identifiers 214.
[0025] The subject identifier 202 corresponds to a group of users operating clients 104 and 106. For example, the subject identifier 202 may correspond to a group including users A and B, where user A corresponds to client 104 and user B corresponds to client 106. Thus, the authorization logic 138 enables application 122 to distinguish between diverse groups of users based on the subject identifier 202. For example, if the subject identifier 202 corresponds to an organization, the diverse employees of that organization operating clients 104 and 106 constitute the group of users. For example, the subject identifier may include a Transaction Entity Identifier (LEI) as defined by ISO standard 17442, which consists of a 20-character alphanumeric string, the first four characters identifying the local operating unit (LOU) that issued the LEI, the fifth and sixth characters reserved as "00", the seventh through eighteenth characters being a unique alphanumeric string assigned to the subject by the LOU, and the last two characters being checksum digits.
[0026] The action identifier 204 corresponds to the action associated with the subject identifier 202. The action identifier 204 may depend on the subject identifier 202 as input, or it may be hardcoded to depend on the subject identifier 202. For example, in a financial context, the action identifier 204 may be the launch of a new fund, i.e., an NFL. Therefore, if the subject identifier 202 contains an LEI, the action identifier 204 may contain the string NFL, and the subject identifier 202 corresponds to the action identifier 204 in a one-to-many correspondence.
[0027] Item identifier 206 corresponds to the item associated with action identifier 204. Item identifier 206 may depend on action identifier 204 as input, or it may be hardcoded to depend on action identifier 204. For example, in a financial context, item identifier 206 may be a fund identifier, i.e., a fund ID or FID. Therefore, if subject identifier 202 contains LEI and action identifier 204 contains the string NFL, and subject identifier 202 corresponds to action identifier 204 in a one-to-many correspondence, then item identifier 206 may contain the string FID, and action identifier 204 corresponds to item identifier 206 in a one-to-many correspondence.
[0028] The category identifier 208 corresponds to the product associated with the item identifier 206. The item identifier 208 may depend on the item identifier 206 as input, or it may be hardcoded 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. Therefore, if the subject identifier 202 contains an LEI and the action identifier 204 contains the string NFL, with the subject identifier 202 corresponding to the action identifier 204 in a one-to-many correspondence, and the item identifier 206 may contain the string FID, with the action identifier 204 corresponding to the item identifier 206 in a one-to-many correspondence, then the category identifier 208 may contain the string PID, and the item identifier 206 corresponds to the category identifier 208 in a one-to-many correspondence.
[0029] The type identifier 210 corresponds to the category identifier 208 and the document type associated with the shared file, as will be further described below. The type identifier 210 may depend on the category identifier 208, or may be hardcoded 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) contract, i.e., ISDAA. Thus, if the subject identifier 202 contains LEI and the action identifier 204 contains the string NFL, with subject identifier 202 corresponding to action identifier 204 in a one-to-many correspondence, and item identifier 206 contains the string FID, with action identifier 204 corresponding to item identifier 206 in a one-to-many correspondence, and category identifier 208 contains the string PID, with item identifier 206 corresponding to category identifier 208 in a one-to-many correspondence, then the type identifier 210 may contain the string ISDAA, and category identifier 208 corresponds to type identifier 210 in a one-to-many correspondence.
[0030] The task identifier 212 corresponds to the task on which the file is shared, as will be further described below. The task identifier 212 can be generated based on at least one of the subject identifier, action identifier 204, or item identifier 206. For example, in a financial context, the task identifier 212 may be a string such as New Fund Start 41, i.e., NFL000041. Therefore, if subject identifier 202 contains LEI and action identifier 204 contains the string NFL, subject identifier 202 corresponds to action identifier 204 in a one-to-many correspondence, item identifier 206 may contain the string FID, action identifier 204 corresponds to item identifier 206 in a one-to-many correspondence, category identifier 208 may contain the string PID, item identifier 206 corresponds to category identifier 208 in a one-to-many correspondence, type identifier 210 may contain the string ISDAA, and category identifier 208 corresponds to type identifier 210 in a one-to-many correspondence, then task identifier 212 may be NFL000041, which corresponds to subject identifier 202, action identifier 204, and item identifier 206 in a one-to-many correspondence. For example, many subject identifiers 202 may correspond to task identifiers 212 and NFL000041, many action identifiers 204 may correspond to task identifiers 212 and NFL000041, and many item identifiers may correspond to task identifiers 212 and NFL000041.
[0031] The document identifier 214 corresponds to the shared file. The document identifier 214 may be generated based on the file's content, such as the text or patterns of the documents within the file; or based on file characteristics, such as the file name, the date or timestamp of read, last access, modification, or creation; or randomly without any of these factors. For example, the document identifier 214 may contain the string AK24!%asfLm@$1fa.
[0032] Therefore, subject identifier 202 may contain LEI and action identifier 204 may contain the string NFL, subject identifier 202 may correspond to action identifier 204 in a one-to-many correspondence, item identifier 206 may contain the string FID, action identifier 204 may correspond to item identifier 206 in a one-to-many correspondence, category identifier 208 may contain the string PID, item identifier 206 may correspond to category identifier 208 in a one-to-many correspondence, type identifier 210 may contain the string ISDAA, category identifier 208 If there is a one-to-many correspondence between the type identifier 210 and the task identifier 212, then the document identifier 214, AK24!%asfLm@$1fa, may have a one-to-many correspondence with each of the subject identifier 202, action identifier 204, item identifier 206, category identifier 208, type identifier 210, and task identifier 212. For example, many document identifiers 214 may correspond to subject identifier 202, many document identifiers 214 may correspond to action identifier 204, many document identifiers 214 may correspond to item identifier 206, many document identifiers 214 may correspond to category identifier 208, many document identifiers 214 may correspond to type identifier 210, and many document identifiers 214 may correspond to task identifier 212.
[0033] Figure 3 shows a flowchart of an embodiment of the process for authorizing access to copied files according to this disclosure. Process 300 is performed by the network topology 100.
[0034] In block 302, interface logic 126 presents a graphical user interface (GUI) to the browser 118 via network 102. The GUI represents a set of input elements such as text fields, dropdown boxes, radio buttons, and sliders. For example, the GUI may include menus, forms, or questions presented on at least one page, such as a web page. The set of input elements is prepared for user data entry, for example, via input devices such as a mouse, a keyboard (physical or virtual), a touchpad, a trackball, a camera, or a microphone. Interface logic 126 presents the GUI based on the client 104 sending a name and password to the server 110 for authentication by authorization logic 138. For example, the name and password may each include a string of letters and numbers, a photograph, biometric data, 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.
[0035] In block 304, the interface logic 126 receives a first subject identifier, action identifier, item identifier, category identifier, type identifier, and copied file from the browser 118. Referring to Figure 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 can correspond to an action identifier in a one-to-many correspondence. Note that the session between the browser 118 and the application 122 can be associated with the first subject identifier and others such as the action identifier, item identifier, and category identifier. For example, the browser 118 may log in to the server 110 based on belonging to a user group associated with the first subject identifier or a corresponding set of user credentials, such as the first user who can authorize a second user to grant permission for the file. In this case, the first user is operating browser 118, and the second user is associated with the first subject identifier or another subject identifier, and permissions may include read permissions, write permissions, etc. However, it should be noted that the session between browser 118 and application 122 does not have to be associated with the first user identifier. For example, browser 118 may log in to server 110 based on belonging to a user group not associated with the first subject identifier or based on a corresponding set of user credentials, in which case the user of browser 118 acts as a third party or matchmaker between multiple subject identifiers, including the first subject identifier. For example, in a financial context, this situation may occur between a broker (first subject identifier) and a client of the broker setting up an account with the broker's clearing bank.
[0036] The copied file is received from client 104, whether the file is stored on client 104 before copying or accessible from client 104 or browser 118, or received from client 104 from a remote data source, such as via a network-based file sharing service, whether P2P or cloud-based, including Napster, BitTorrent, Dropbox, Box, Egnyte, Google Drive, Microsoft OneDrive, Microsoft SharePoint, Microsoft Teams, Slack, and Apple iCloud. For example, the file may be stored locally on client 104 before copying, or it may be stored remotely from client 104 before copying. For example, the copied file may be received from browser 118 before copying based on the user's selection of the file. For example, the copied file may be received from client 104 from a remote data source, such as a network-based file sharing service, based on the user's selection of the file, whether local or remote. Note that the copied files may be data files, such as Microsoft Word files, Microsoft Excel files, Portable Document Format (PDF) files, image files, audio files, plain text files, and configuration files, whether password protected or not. Similarly, note that the copied files may be executable files, such as .BAT files, .COM files, .EXE files, .BIN files, and smart contract files, whether executable in a Windows environment or in other OS environments, including distributed environments. Upon receipt, the copied files may be stored locally on server 110 or remotely from server 110.For example, copied files may be stored in the database 146, managed by the storage logic 132. Note that when the server 110 receives copied files, it may check the copied files for viruses or other malware. If the server 110 detects that the copied files contain a virus, it may notify the client 104 and delete the copied files from the server 110.
[0037] In block 306, metadata logic 136 generates a task identifier so as to be associated with a first subject identifier, action identifier, item identifier, and category identifier. With reference to Figure 2, the task identifier corresponds to task identifier 212. For example, the task identifier may be generated based on an action identifier. Thus, the task identifier is associated with the first subject identifier, action identifier, item identifier, and category identifier based on one-to-many grouping by the first subject identifier, one-to-many grouping by action identifier, one-to-many grouping by item identifier, and one-to-many grouping by category identifier.
[0038] In 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, the characteristics of the copied file, or randomly, for example.
[0039] In block 310, metadata logic 136 populates a data structure so that the document identifier is mapped to a first subject identifier, action identifier, item identifier, category identifier, and type identifier. Note that the data structure may have existed before or may be created at that time for use by metadata logic 136. Metadata logic 136 can populate a data structure by writing to 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 to the data structure so that the document identifier is mapped to a 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 metadata tags or may contain metadata tags. A data structure can include at least one of the following: tables, single-layer files, vectors, trees, linked lists, queues, stacks, dequeues, matrices, arrays, hashes, heaps, multimaps, quadtrees, graphs, etc. When a data structure includes a database, the database can include relational databases, in-memory databases, non-SQL databases, etc. Thus, a data structure stores document identifiers that are mapped one-to-many to each of the first subject identifiers, one-to-many to each of the action identifiers, one-to-many to each of the item identifiers, one-to-many to each of the category identifiers, and one-to-many to each of the type identifiers. For example, a data structure may be populated with task identifiers so that document identifiers are mapped to task identifiers, or 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 size. For example, when a data structure includes a table, the table includes some columns and some rows. Thus, some columns or some rows may be static or dynamic. Similarly, a data structure may store first subject identifiers, action identifiers, item identifiers, category identifiers, and type identifiers 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 subject identifiers precede action identifiers in order, and action identifiers precede item identifiers in order, and so on. For example, when a data structure includes a table, the predefined cell configuration may require that subject identifiers be placed in designated addressable cells (or columns or rows), and action identifiers be placed in designated addressable cells (or columns or rows). However, in some embodiments, the data structure does not store first subject identifiers, action identifiers, item identifiers, category identifiers, and type identifiers in at least one of a predefined order or a predefined cell configuration.
[0041] In block 312, metadata logic 136 associates task identifiers with data structures. For example, such associations can occur by grouping data structures by task identifiers. For example, such associations can occur by forming a hash table that maps task identifiers to data structures, such as when a data structure has a structure identifier to which it is associated, and mapping can occur by mapping task identifiers to structure identifiers. For example, such associations can occur by writing task identifiers into a data structure such that task identifiers are mapped to document identifiers in a one-to-many correspondence.
[0042] In block 314, interface logic 126 enables the GUI presented via browser 118 to input a second subject identifier. Referring to Figure 2, the second subject identifier corresponds to subject identifier 202. Note that the second subject identifier may or may not match the first identifier. For example, the second subject identifier may match the first subject identifier when shared within a common user group, or it may not match the first subject identifier when shared between different user groups. For example, the second subject identifier may be associated with client 106. As a result, since the menu presents a set of input elements prepared for user data entry, as described above, the second subject identifier may be entered via client 104's input devices, such as a mouse, keyboard (physical or virtual), touchpad, trackball, camera, or microphone. Note that, as described above, browser 118 may be associated with the first subject identifier (first sender) or the third subject identifier (matchmaker between the two subject identifiers). Furthermore, note that at least one of the first or second entity identifiers may contain transaction entity identifiers, whether those identifiers match or differ from each other in terms of content, format, etc. Note that task identifiers may be generated based on at least one of the first or second entity identifiers.
[0043] In block 316, metadata logic 136 associates task identifiers with second subject identifiers. For example, such associations can occur by grouping second subject identifiers by task identifiers. Similarly, such associations can occur by forming a hash table that maps task identifiers to second subject identifiers. Similarly, such associations can occur by writing second subject identifiers into a data structure such that document identifiers are mapped to second subject identifiers and task identifiers are mapped to document identifiers. Note that second subject identifiers may correspond to action identifiers in a one-to-many correspondence.
[0044] In 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 interacting with the browser 120 of client 106 and thereby hosting a session with server 110. Note that the session may be a secure session, such as one via the HTTPS protocol. During the session, the user enters the second subject identifier (and other identifiers) into a GUI presented by the browser 120. The user may enter the second subject identifier (and other identifiers) via an input device of client 106, such as a mouse, a keyboard (physical or virtual), a touchpad, a trackball, a camera, or a microphone. For example, the GUI may include menus, forms, questions, etc. Note that the GUI that a user associated with the second subject identifier interfaces with may be the same as, different from, or identical to, the GUI that a user associated with the first subject identifier interfaces with.
[0045] When a user is associated with a 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 fact that the task identifier corresponds 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 containing 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 can access the copied file by activating the hyperlink. The message may be sent and received by the messaging logic 128 and notified by the notification logic 144. Once the link is activated, the server 110 may access the task identifiers 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. Therefore, the copied file can be shared with browser 120 for the duration of the session by presenting a hyperlink on browser 120. In that case, the copied file will be opened or downloaded via browser 120 during the session based on the activation of the hyperlink.
[0046] Note that messages may include electronic messages, text messages, over-the-top (OTT) messages, social networking messages, etc. Furthermore, note that access may include read rights, write rights, etc. Additionally, browser 118 may be associated with a task identifier during a session, for example, via a cookie stored on client 106, based on the user associated with the second subject identifier providing input to browser 118, in which case note that the input may include a subject identifier, action identifier, item identifier, category identifier, etc., as described above. Similarly, for example, if a user is associated with a second subject identifier (and other identifiers) as described above, and if a task identifier corresponds to the first and second subject identifiers based on the task identifiers corresponding to the first and second subject identifiers, the authorization logic 142 may share the copied file by making an icon corresponding to the copied file appear in a GUI presented on the browser 120 of client 106, the browser 120 being associated with the user corresponding to the second subject identifier, and the copied file can be accessed by activating the icon by clicking, touching, etc. Once the icon is activated, the server 110 may access the task identifiers corresponding to the first and second subject identifiers (and other identifiers disclosed herein), 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. Therefore, as described above, the server 110 may associate the browser 120 with a task identifier during the session based on the fact that the second subject identifier associated with the session as user input, and the action identifier associated with the session as user input, match the second subject identifier and the action identifier in the data structure.Note that the browser 120 may associate a task identifier with a session based on whether the item identifier and category identifier associated with the session match the item identifier and category identifier in the data structure. As a result, the server 110 shares the files copied during the session with the browser 120 based on the task identifier so that the copied files can be searched by the browser 120 based on the document identifier stored in the data structure. Note that the copied files may be shared with more than two subject identifiers, such as at least three. For example, in a financial context, as described above, this may include asset managers, fund managers, and securities custodians. Furthermore, note that, as described above, the server 110 may deduplicate the copied files before sharing them with the browser 120. For example, the copied files may be deduplicated based on at least one of the first subject identifier, the second subject identifier, the action identifier, or the task identifier. For example, copied files can be dedulated based on at least one of a first subject identifier, an action identifier, and a task identifier or a second subject 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 provides a GUI on the browser 118 and receives a first subject identifier, a second subject identifier, an action identifier, and a 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 so that the document identifier maps 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 during the session based on the fact that the second subject identifier and the action identifier associated with the session match the second subject identifier and the action identifier in the data structure. The application server shares a copy with the browser 120 via the database server. The database server stores the copy.
[0048] Figure 4 shows a schematic diagram of an embodiment of a data structure for storing a document identifier and multiple tags as disclosed herein. The 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 the document identifier 398lak@!$sdjlaks, tag 1 (first subject identifier), tag 2 (second subject identifier), and tag 3 (action identifier). Note that row 402 also contains an empty cell into which tag 4 may be inserted. Similarly, row 404 contains the document identifier 43!5%#alksn, tag 1 (first subject identifier), tag 2 (second subject identifier), tag 3 (action identifier), and tag 4 (item identifier). Note that rows 402 and 404 have different amounts of cells inserted, but rows 402 and 404 do not have to have different amounts of cells inserted. As described above, the data structure 400 may be static or dynamic with respect to at least one of its shape or size. For example, rows 402, 404, 406 or columns 408, 410, 412, 414, 416 may have a static or dynamic number. Similarly, the data structure 400 may store a set of tags in at least one of a predefined order or a predefined cell configuration. For example, a predefined order may require that subject identifiers (tags 1 and 2) precede action identifiers (tag 3), and that action identifiers (tag 3) precede item identifiers (tag 4). For example, a predefined cell configuration may require that subject identifiers (tags 1 and 2) be placed in specified addressable cells (columns 410 and 412), and that action identifiers be placed in specified addressable cells (column 414). However, in some embodiments, the data structure 400 does not store a set of tags in at least one of the predefined order or predefined cell configuration.
[0049] Figure 5 shows a flowchart of an embodiment of the process for receiving access to a file according to this disclosure. Process 500 is executed by the network topology 100.
[0050] In block 502, as described above, the interface logic 126 presents the GUI to the browser.
[0051] In block 504, as described above, the interface logic 126 receives multiple identifiers via the GUI. 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, and so on.
[0052] In block 506, as described above, the authorization logic 142 accesses the data structure. As described above, the data structure stores document identifiers, metadata tags, and mappings between document identifiers and metadata tags. As described above, document identifiers may be mapped to metadata tags in a one-to-many correspondence. Metadata tags contain information corresponding to at least one of the identifiers. For example, such information may be stored in an alphabet-and-number format, a pictographic 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 task identifiers. For example, such an association may arise from the fact that task identifiers are stored in the data structure and mapped to document identifiers in a one-to-many correspondence. For example, such an association may arise from the fact that task identifiers are stored outside the data structure and are objects linked to or associated with the data structure. Thus, the data structure is accessed based on task identifiers, i.e., based on the fact that identifiers received via the GUI correspond to a group of identifiers pre-grouped by the task identifier.
[0053] In block 508, the search logic 140 searches the data structure for matches between tags and at least one identifier, as input. For example, when the data structure stores multiple metadata tags, and 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 those identifiers and tags. The search logic 140 may employ at least one of the following algorithms: brute-force search, linear search, binary search, tree search, probabilistic search, depth search, width search, etc. The search logic 140 may search for matches in parallel (searching for matches between identifiers and tags simultaneously) or serially (searching for matches between identifiers and tags sequentially).
[0054] In block 510, the search logic 140 identifies a match between a tag and at least one of the identifiers. For example, a match may be identified between a tag and at least one of the following: 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 matches at least one of the identifiers. The set of rules corresponds to a predefined workflow associated with that tag and the task identifier corresponding to that tag. The set of rules can control how the GUI is presented to the user interacting with the browser. For example, the set of rules can control which output elements are presented and the content / logic within or between them, or which input elements are presented and the content / logic within or between them. For example, the authorization logic 142 may identify a set of rules corresponding to a task identifier.
[0056] In block 514, the authorization logic 142 interfaces with the storage logic 132 so that the storage logic 132 retrieves files corresponding to document identifiers based on mappings in the data structure. For example, a document identifier may be identified and a file is retrieved. The storage logic 132 retrieves the file from the database 146. The file is retrieved via the document identifier based on a match between a tag and at least one of the identifiers for task identifiers. That is, when a match is identified, the document identifier corresponding to that tag is identified and the file is retrieved via the document identifier.
[0057] In block 516, the interface logic 126 presents the GUI via the browser based on a set of rules. Thus, the GUI can be regenerated or modified based on the set of rules. For example, various input and output elements are presented based on the set of rules, and diverse corresponding content / logic is presented or linked to the diverse input and output elements.
[0058] In block 518, as described above, the interface logic 126 communicates with the authorization logic 142 so that the file is available via the GUI based on a set of rules. For example, the authorization logic 142 may share the file by presenting a message with a hyperlink so that the file is accessed by activating a hyperlink or by an icon corresponding to the file that appears in the GUI, and in that case the file is accessed by activating the icon by clicking, touching, etc.
[0059] Figures 6A–6C show flowcharts and a pair of screenshots of embodiments of the technology described herein for tracking progress against a set of rules based on files associated with multiple item identifiers, multiple category identifiers, and multiple type identifiers. Process 600A is performed by network topology 100.
[0060] In block 602, as described above, the interface logic 126 presents GUIs 600B and 600C based on task identifiers, which are pre-formed based on multiple identifiers previously entered by the browser user. Identifiers include subject identifiers, action identifiers, multiple item identifiers, multiple category identifiers, etc. GUIs 600B and 600C represent a first page hyperlink 612 and a second page hyperlink 614, which can be selectively switched between.
[0061] In block 604, the interface logic 126 populates GUI 600B and 600C with multiple 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, whether passive or active (hyperlinked), to serve the user interaction function.
[0062] In block 606, when the first page hyperlink 612 is selected, the interface logic 126 communicates with the metadata logic 136 and the progress logic 138 so that the GUI 600B presents a tabular menu 610 based on the item identifier and category identifier. The tabular menu 610 includes multiple columns and multiple rows, thereby defining a grid containing multiple values corresponding to the item identifier and category identifier for multiple files stored in the database 146. In the tabular menu 610, as described above and pre-entered, the rows correspond to the item identifier and the columns correspond to the category identifier, multiple type identifiers, and other identifiers.
[0063] The tabular menu 610 also presents a checkbox-based grid 616 corresponding to item identifiers for files that meet a presence or absence threshold (binary) based on a set of rules, as described above. Note that, as described above, the set of rules corresponds to task identifiers. Also note that the checkbox-based grid 616 includes pause and play buttons for each item identifier, the pause button pausing the progress analysis for that item identifier, and the play button keeping the progress analysis for that item identifier active. Thus, as described above, for each item identifier, when a file is uploaded and tagged, the checkbox-based grid 616 is completed to make a determination against the set of rules. In some embodiments, the checkbox-based grid 616 may be manually updated in real time by browser 118 or browser 120, thereby visually updating the checkbox-based grid 616 for at least one of browser 118 or browser 120.
[0064] Note that GUI600B and 600C represent pie bars 620 that are dynamically updated in real time based on the completion of the checkbox-based grid 616. Note that pie bars 620 are associated with task identifiers.
[0065] Furthermore, it should be noted that GUIs 600B and 600C include a messaging interface 622 so that they are managed via messaging logic 128 based on task identifiers. For example, messaging interface 622 enables internal messaging communication between browser 118 and browser 120 based on task identifiers, between users associated with a first subject identifier and users associated with a second subject identifier, which are grouped by task identifiers. Thus, as described above, messaging logic 128 enables internal messaging services between browser 118 and browser 120 during the session based on task identifiers after the copied file has been shared with browser 120 during the session. In some embodiments, messaging interface 622 enables external messaging between browser 118 and browser 120.
[0066] As described above, the second page hyperlink 614 presents a tabular menu 618 showing a variety of category and type identifiers corresponding to files that have been uploaded and categorized by type identifier, as well as those that have not yet been uploaded. Note that the tabular menu 610 and the checkbox-based grid 6161 are based on the values in the tabular menu 618.
[0067] In block 608, the interface logic 126 communicates with the metadata logic 136 and the progress logic 138 so that GUI 600B updates the 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, the checkbox-based grid 616 is uploaded based on a set of rules corresponding to the task identifier. The pie bar 620 is then updated accordingly. The server 110 can then monitor the completion status of the document set based on the set of rules and, after sharing the copied files with the browser 120 during the session, present the tabular menu 610 to browser 118 or browser 120. In this case, the tabular menu 610 is configured to represent the completion status of the document set with respect to item identifiers and category identifiers based on the set of rules.
[0068] Figures 7A–7C show flowcharts and a pair of screenshots of embodiments of the technology for updating progress details according to this disclosure. Process 700A is performed by network topology 100.
[0069] In block 702, as described above, the interface logic 126 presents GUIs 700B and 700C based on task identifiers, which are pre-formed based on a set of identifiers previously entered by the browser user. These identifiers include subject identifiers, action identifiers, multiple item identifiers, multiple category identifiers, and so on. GUIs 700B and 700C are similar to GUIs 600B and 600C, except for their lower section 710, which includes a first page hyperlink 712 and a second page hyperlink 714, which are selectively switchable between them.
[0070] In block 704, the interface logic 126 populates GUIs 700B and 700C with multiple 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, whether passive or active (hyperlinked), to serve the user interaction function.
[0071] In block 706, the interface logic 126 communicates with the metadata logic 136 so that when the first page hyperlink 712 is selected, GUI 700B and 700C (1) present a tabular menu on GUI 700B based on multiple type identifiers associated with item identifiers and category identifiers, and when the second page hyperlink 714 is selected, (2) present a tabular menu on GUI 700C. Note that the tabular menus of GUI 700B and GUI 700C are dynamically linked to each other, so that updates in one can update the other.
[0072] As described above, the tabular menu associated with the first page hyperlink 712 functions as a progress task list, allowing the user to select checkboxes corresponding to a specific item identifier and the type identifier associated with that specific category identifier, so that user input is compared against a set of rules. The tabular menu associated with the second page hyperlink 714 functions as a document list, allowing the user to see the document type corresponding to a specific file for a specific item identifier and a specific category identifier, and also to see various document-related information such as file upload time / date, subject identifier associated with file upload, file comments, and file download link.
[0073] In block 708, the interface logic 126 communicates with the metadata logic 136 so that GUIs 700B and 700C update the tabular menu associated with the first page hyperlink 712 or the tabular menu associated with the second page hyperlink 714 with respect to a task identifier based on user input to at least one of the tabular menus associated with the first page hyperlink 712 or the second page hyperlink 714, whose input is associated with a type identifier.
[0074] Figure 8 shows a flowchart of an embodiment of the process to be added to the blockchain according to this disclosure. Process 800 is executed by the network topology 100.
[0075] In block 802, as described above, the metadata logic 136 communicates with the interface logic 126 to receive multiple identifiers and copied files from the client's browser. For example, the identifiers may include a subject identifier, an action identifier, multiple item identifiers, multiple category identifiers, and so on.
[0076] In block 804, as described above, metadata logic 136 generates a document identifier for the copied file.
[0077] In block 806, as described above, the metadata logic 136 writes the document identifier into the data structure.
[0078] In block 808, as described above, the metadata logic 136 writes an identifier into the data structure.
[0079] In block 810, as described above, the metadata logic 136 forms document identifiers and mappings between identifiers in the data structure.
[0080] In block 812, the metadata logic 136 communicates with the blockchain logic 124 so that the blockchain logic 124 may insert the block into a blockchain that can correspond to the mapping. The blockchain may be local to the server 110 or remote from the server 110. Once the blockchain logic 124 reads the data structure, it may form a block based on the mapping. For example, as described above, a block may notify document identifiers to map to identifiers, in which case the document identifiers have a one-to-many correspondence for each identifier. In some embodiments, a block may provide information about task identifiers corresponding to data structures, or task identifiers corresponding to document identifiers within data structures, or any other logical relationship involving identifiers or data structures. For example, a block may be generated based on a mapping between document identifiers and groups. A group includes at least one of a first subject identifier, an action identifier, a task identifier, or a second subject identifier.
[0081] In block 814, blockchain logic 124 reads a block from the blockchain.
[0082] In block 816, the blockchain logic 124 may communicate with any logic, local to or remote from server 110, to take action, 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 or from data sources, whether local or remote to the client or server 110, or communicating with input or output devices, whether local or remote to server 110.
[0083] Figure 9 shows a flowchart of an embodiment of the process for executing a smart contract based on a data structure according to this disclosure. Process 900 is executed by the network topology 100.
[0084] In block 902, the blockchain logic 124 accesses the smart contract logic, whether locally or remotely, on 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 and objects, stored in data structures such as files, either including or excluding arbitrary identifiers as described above.
[0085] In block 904, blockchain logic 124 connects smart contract logic to a data structure that stores document identifiers, tags, and mappings between document identifiers and tags, which may include one-to-many correspondences. Such connection may include blockchain logic 124 interfaceing with authorization logic 124 to authorize read access to the data structure that stores document identifiers, tags, and mappings, or blockchain logic 124 interfaceing with authorization logic 124 to upload the data structure that stores document identifiers, tags, and mappings from server 110 to another server, or other ways of operation that allow smart contract logic to function based on the content of the data structure or groupings associated with the data structure, such as when task identifiers are grouped in the data structure. Note that the data structure that stores document identifiers, tags, and mappings may be stored locally or remotely on server 110.
[0086] In block 904, blockchain logic 124 causes smart contract logic to execute based on data structures such as the content of a data structure. For example, blockchain logic 124 may approve or request execution, or it may not deny read access for data structures to smart contract logic.
[0087] Figure 10 shows a flowchart of an embodiment of the process for reading a data structure using an artificial intelligence (AI) process according to this disclosure. Process 1000 is executed by network topology 100.
[0088] In block 1002, as described above, application 122 accesses a data structure that stores document identifiers, tags, and mappings between identifiers and tags.
[0089] In block 1004, application 122 employs an artificial intelligence process to read the data structure so that it determines, based on the content of the data structure, whether there is a population pattern, storage pattern, organization pattern, date / timing pattern, sequence pattern, tag pattern, task pattern, action pattern, item pattern, category pattern, product pattern, type pattern, identifier pattern, or any other pattern or classification, or any of those in the data structure. For example, the artificial intelligence process may use machine learning, image processing, text analysis, querying remote data sources, etc., whether local or remote on server 110, including any cloud-based or distributed environment.
[0090] In block 1006, application 122 either takes an action itself, whether hardware-based or software-based, or causes another logic entity to take an action. For example, actions may include reading data, writing data, selecting data, deleting data, formatting data, sending or receiving messages to or from a data source, whether local or remote, of the client or server 110, or communicating with an input or output device, whether local or remote, of server 110.
[0091] Figure 11 shows a flowchart of an embodiment of the process for user actions relating to a data structure based on belonging to a user group, as disclosed herein. Process 1100 is executed by the network topology 100.
[0092] In block 1102, as described above, the authorization logic 138 authenticates the user based on the user's operation of a browser hosting a session with server 110. Note that during the session, as described above, the user is either hierarchically positioned under a principal identifier or associated with a user identifier related to the principal identifier. For example, a principal 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 the user group to which a user belongs based on the user identifier. As described above, the user group corresponds to the task identifier. For example, this identification may occur by identifying the task identifier to which the user identifier is associated with the subject identifier, or vice versa. For example, this may occur by associating a task with a subject identifier, and since 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 a user belongs can be identified.
[0094] In block 1106, as described above, the authorization logic 142 interfaces with the metadata logic 136 to enable users to take action on data structures that store document identifiers, tags, and mappings between document identifiers and tags, based on groups. Thus, once a user group is identified, as described above, the user may access files based on the document identifier associated with the task identifier for the user group to which the user belongs, and then access files based on the document identifier.
[0095] Figures 12 to 22 show several screenshots of embodiments of a user interface that operates based on a data structure for storing mappings between document identifiers and multiple tags, as described in this disclosure.
[0096] Figure 12 shows GUI1200, which displays a grid in tabular form that includes a Task Identifier column listing multiple task identifiers (hyperlinkable), a First Entity Identifier column listing multiple First Entity Identifiers for task identifiers, a Second Entity Identifier column listing multiple Second Entity Identifiers for task identifiers, an Action Request Identifier column listing multiple action identifiers (binarily presented stars) based on a set of rules for type identifiers and task identifiers, and an Age Identifier column listing multiple age identifiers based on a set of rules for task identifiers (tracked by a data structure).
[0097] Figure 13 shows GUI 1300, which presents a checkbox-based grid 616 as described above. Note that for item identifiers (2172), the category identifiers (USD Repos and Non-USD Repos) are completed, as indicated by visually clear checked checkboxes. In contrast, other category identifiers are not checked as completed. Also note that some category identifiers (equity swap) are paused, as indicated by visually clear icons.
[0098] Figure 14 shows GUI 1400, which, as described above, enables the user to export a data structure having document identifiers, tags, and mappings between document identifiers and mappings to other servers via the export logic 130. For example, a data structure storing document identifiers, a first subject identifier, a second subject identifier, and an action identifier can be exported as a data file such as a comma-separated value file or a single-layer file.
[0099] Figure 15 shows GUI 1500, which, as described above, enables tracking of multiple workflows associated with multiple subject identifiers based on multiple task identifiers by progress logic 138. The workflows correspond to multiple histograms corresponding to subject identifiers and track which documents are overdue, ahead of due, or OK, as measured against a set of rules, either for a particular task identifier or subject identifier, as described above. For example, as described above, the set of rules may include a target document upload date, which can be entered via browser 118 or browser 120.
[0100] Figure 16 shows GUI 1600, which, as described above, enables more granular document tracking than GUI 1500 through progress logic 138. As illustrated, this type of tracking may be based on a specific time-based subject identifier, as described above, to be measured against a set of rules, either for a specific task identifier or for a subject identifier.
[0101] Figure 17 shows GUI 1700, which, as described above, enables more granular document tracking than GUI 1600 through progress logic 138. Here, GUI 1700 shows the average task completion time for a particular identifier across various workflows, measured against a set of rules, either for a specific task identifier or for a subject identifier, as described above.
[0102] Figure 18 shows GUI 1800, which, as described above, enables tracking of received or missing documents for subject identifiers and action identifiers based on multiple hyperlinked task identifiers and multiple subject identifiers (grouped by task identifiers) via progress logic 138.
[0103] Figure 19 shows GUI1900, which, as described above, allows for a finer-grained view of GUI1800 and details what happens when one of the hyperlinked task identifiers is activated. Specifically, the table shows multiple document type identifiers, multiple file names, and multiple file upload icons, some of which are complete and some are not.
[0104] Figure 20 shows GUI2000, which displays a tabular view of multiple hyperlinked item identifiers, as well as multiple category identifiers (grouped by item identifiers) for subject identifiers and action identifiers, as described above.
[0105] Figure 21 shows GUI2100, which displays a list of subject identifiers (Legal & General) associated with the task identifier (LGIM EMEA New Fund Launch), as described above.
[0106] Figure 22 shows GUI2200, which displays a list of document types for file names and task identifiers in GUI2100, as described above.
[0107] Figures 23A to 23I show several screenshots of embodiments of the multi-user sharing technology according to this disclosure. In particular, GUI 2300 displays 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, as described above, and the workflow is evaluated against this set of rules based on uploaded files and compared via a data structure. The GUI then presents a variety of 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 provide a template file for download, in which case the user downloads the template file, submits the template file as requested, and uploads the submitted template file. The template file is validated, and once validated, can be grouped by task identifiers, as described above. For example, such grouping can be performed based on identifiers present within the template file.
[0108] Furthermore, features described in relation to an embodiment as an example may be combined with, or in any way with, a variety of other embodiments as an example. Different aspects or elements of the embodiments as an example disclosed herein may be combined in a similar manner. As used herein, the terms “combination,” “combination,” or “that combination” refer to all substitutions and combinations of the enumerated items preceding the term. For example, “A, B, C, or any combination thereof” is intended to include at least one of A, B, C, AB, AC, BC, or ABC, and is also intended to include BA, CA, CB, CBA, BCA, ACB, BAC, or CAB, where the order is important in a particular context. Continuing this example, what is explicitly included are combinations that include one or more repetitions of items or terms, such as BB, AAA, AB, BBC, AAABCCCC, CBBAAA, CABABB, etc. A person skilled in the art will understand that, unless it is evident from the context otherwise, there is typically no limit to the number of items or terms in any combination.
[0109] Various embodiments of this disclosure may be implemented in a data processing system suitable for storing and / or executing program code, including at least one processor directly or indirectly connected to memory elements via a system bus. The memory elements include, for example, local memory used during the actual execution of the program code, mass storage, and cache memory that provides temporary storage for at least some program code to reduce the number of times the code must be retrieved from mass storage 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) can be connected to the system directly or through an intermediary I / O controller. Network adapters may also be connected to the system to enable the data processing system to be connected to other data processing systems, or remote printers, or storage devices, through an intermediary private or public network. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.
[0111] This disclosure may be embodied in a system, method, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to perform an aspect of this 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, but is 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 those described above. A non-exhaustive list of more specific examples of computer-readable storage mediums 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 disk read-only memory (CD-ROM), digital multipurpose disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved raised structures having instructions recorded thereon, and any suitable combination of those described above.
[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 fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage on a computer-readable storage medium within each computing / processing device.
[0113] Computer-readable program instructions for performing the operations of the Disclosure may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk and C++, and conventional procedural programming languages such as the C programming language or similar programming languages. A code segment or machine-executable instruction may represent a procedure, function, subprogram, program, routine, subroutine, module, software package, class, or any combination of instructions, data structures, or program statements. A code segment may be concatenated to another code segment or hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, transferred, or transmitted via any suitable means, including in particular memory sharing, message passing, token passing, and network transmission. Computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone 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 made to an external computer (for example, via the Internet using an Internet service provider).In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by using state information of computer-readable program instructions to personalize the electronic circuit in order to perform an aspect of the present disclosure.
[0114] Aspects of this disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products as provided in the embodiments of the disclosure. Each block in a flowchart and / or block diagram, and any combination of blocks in a flowchart and / or block diagram, should be understood as being implementable by computer-readable program instructions. Various exemplary logic blocks, modules, circuits, and algorithmic steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination of both. To illustrate this interchangeability between hardware and software, various exemplary components, blocks, modules, circuits, and steps are described above in general terms of their functionality. Whether such functionality is implemented as hardware or as software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the functionality described for their respective specific applications in various ways, but such implementation decisions should not be construed as resulting in a departure from the scope of this disclosure.
[0115] The flowcharts and block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of the 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 part of an instruction containing one or more executable instructions for performing a specified logical function. In some alternative implementations, the functions described within a block may occur in an order other than that shown in the drawings. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or blocks may be executed in reverse order depending on the functionality involved. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs a specified function or operation, or executes a combination of dedicated hardware and computer instructions.
[0116] Words such as "next" and "then" are not intended to restrict the order of steps; these words are simply used to guide the reader through the description of the method. While a process flow diagram can describe operation as a sequential process, many operations can be performed in parallel or concurrently. Furthermore, the order of operations may be rearranged. A process can correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, its termination can correspond to the function's return to the calling function or main function.
[0117] Features or functionalities described in relation to an embodiment as an example may be combined and semi-combined in and / or with a variety of other embodiments as an example. Also, as disclosed herein, different aspects and / or elements of an embodiment as an example may be combined and semi-combined in a similar manner. Furthermore, some embodiments as an example may be components of a larger system, either individually or collectively, and other procedures may take precedence over and / or modify their applications. Additionally, as disclosed herein, some steps may be required before, after, and / or simultaneously with an embodiment as an example. It should be noted that any and / or all methods and / or processes may be performed in any way at least partially by at least one subject or actor.
[0118] While preferred embodiments are described and illustrated in detail herein, those skilled in the art will know that various modifications, additions, and substitutions can be made without departing from the spirit of the Disclosure. These are therefore considered to be within the scope of the Disclosure, as defined in the following claims.
Claims
1. It is a system, The server is equipped with a server, and the server is Receiving a first Transaction Entity Identifier (LEI), a second LEI, and an action identifier from the first client, Receiving a copy of the file instructed via the first client, A task identifier, a data structure, and a document identifier, wherein the task identifier is generated to correspond to a copy of the file, The data structure is grouped by the task identifier, The document identifier, the first LEI, the second LEI, and the action identifier are placed into the data structure so that the document identifier is mapped to the first LEI, the second LEI, and the action identifier. Hosting a session with a second client, wherein the session is associated with the second LEI and the action identifier. Based on the fact that the second LEI associated with the session and the action identifier associated with the session match the second LEI in the data structure and the action identifier in the data structure, the second client is associated with the task identifier during the session, Sharing the copy with the second client during the session based on the task identifier, so that the copy can be searched by the second client based on the document identifier in the data structure, It is programmed to do, The copy is shared with the second client during the session based on the task identifier. (i) The server is further programmed to populate the task identifier into the data structure such that the task identifier is mapped to the document identifier, or (ii) The server is further programmed to populate the task identifier into the data structure such that the document identifier is mapped to the task identifier. Includes at least one of the following: (i) The server The first client receives an item identifier and a category identifier, The item identifier and category identifier are placed into the data structure so that the document identifier is mapped to the item identifier and category identifier, and the session is associated with the item identifier and category identifier. The program is further programmed to associate the second client with the task identifier during the session, based on the fact that the item identifier and category identifier associated with the session match the item identifier and category identifier in the data structure, or (ii) The data structure stores the item identifier and the category identifier so that the document identifier is mapped to the item identifier and the category identifier, and the server, Identify the set of rules corresponding to the task identifier, The completion status of the document set is monitored based on the set of rules mentioned above. After sharing the copy with the second client during the session, a menu is presented to the first and second clients, and the menu is further programmed to represent the completion status of the document set with respect to the item identifier and the category identifier, based on the set of rules, or (iii) The server said, During the aforementioned session, input is received from the second client, Based on the input, the data structure is searched for to find a match. Identify a match between the input and at least one of the first LEI, the second LEI, the action identifier, or the task identifier. Based on the aforementioned match, the document identifier is identified, The document identifier is further programmed to share the copy with the second client during the session, A system including at least one of the following.
2. The system according to claim 1, wherein the server is further programmed to populate the task identifier into the data structure such that the task identifier is mapped to the document identifier.
3. The system according to claim 1, wherein the first LEI matches the second LEI.
4. The system according to claim 1, wherein the first LEI is different from the second LEI.
5. The system according to claim 1, wherein the server is further programmed to populate the task identifier into the data structure such that the document identifier is mapped to the task identifier.
6. The aforementioned server, Receiving an item identifier and a category identifier from the aforementioned first client, The process involves inserting the item identifier and the category identifier into the data structure such that the document identifier is mapped to the item identifier and the category identifier, and the process involves the session being associated with the item identifier and the category identifier. Based on the fact that the item identifier and category identifier associated with the session match the item identifier and category identifier in the data structure, the second client is associated with the task identifier during the session. The system according to claim 1, further programmed to perform the following:
7. The data structure stores the item identifier and the category identifier so that the document identifier is mapped to the item identifier and the category identifier. The aforementioned server, Identifying the set of rules corresponding to the aforementioned task identifier, Monitoring the completeness status of the document set based on the aforementioned set of rules, After sharing the copy with the second client during the session, presenting a menu to the first and second clients, wherein the menu is programmed to represent the state of the completeness of the document set with respect to the item identifiers and category identifiers based on the set of rules, The system according to claim 1, further programmed to perform the following:
8. The aforementioned server, During the aforementioned session, input is received from the second client, The process involves searching for a match based on the input and exploring the data structure accordingly. Identifying the match between the input and at least one of the first LEI, the second LEI, the action identifier, or the task identifier, Identifying the document identifier based on the aforementioned match, Sharing the copy with the second client during the session based on the document identifier, The system according to claim 1, further programmed to perform the following:
9. The system according to claim 1, wherein the file is stored remotely from the first client.
10. The system according to claim 1, wherein the first LEI corresponds to the action identifier in a one-to-many correspondence.
11. The system according to claim 1, wherein the second LEI corresponds to the action identifier in a one-to-many correspondence.
12. The system according to claim 1, wherein the task identifier corresponds to the document identifier in a one-to-many correspondence.
13. The system according to claim 1, wherein the task identifier is generated based on at least one of the first LEI or the second LEI.
14. The system according to claim 1, wherein the task identifier is generated based on the action identifier.
15. The aforementioned copy is shared with the second client for the duration of the session by presenting a hyperlink on the second client. The system according to claim 1, wherein the copy is opened or downloaded based on the activation of the hyperlink by the second client during the session.