System and method for identifying equivalents for completing a task

By establishing unique identifiers for resources and determining resource sets based on metadata, the problem of insufficient factory flexibility in ERP/MRP systems within IoT optimization models is solved, enabling dynamic resource optimization and flexible task execution in a cloud environment.

CN114270377BActive Publication Date: 2025-10-28草谷加拿大公司
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202080041284.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-04-01
Filing Date
2020-04-03
Publication Date
2025-10-28
Estimated Expiration
2040-04-03

AI Technical Summary

Technical Problem

When existing ERP/MRP systems are combined with IoT optimization models, they struggle to achieve factory flexibility and abstraction capabilities, resulting in an inability to dynamically optimize production processes. Furthermore, the methods of using identifiers in the cloud environment lack flexibility and cannot meet the changing needs of modern technology.

Method used

The system is configured to identify equivalent resources. A unique identifier is established for each resource using a metadata collection module and an identification module. Based on the metadata, a set of resources is determined to fulfill the task requirements. The equivalent processor coordinates the resources to execute the task.

Benefits of technology

It enables flexible resource allocation and dynamic optimization in a cloud environment, improves factory predictability and traceability, meets the changing needs of modern technology, and provides flexibility and efficiency in task execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114270377B_ABST
    Figure CN114270377B_ABST
Patent Text Reader

Abstract

A system is provided for determining the equivalence of task execution. The system includes: an identification module that acquires a unique identifier for each of a plurality of resources; and a metadata collection module that collects metadata information related to the plurality of resources based on the unique identifier acquired for each resource, and stores the collected metadata information in a metadata database, wherein the metadata information relates to the capabilities of the corresponding resource for executing the task. Furthermore, the system includes an equivalence processor that determines a set of resources among the plurality of resources, the resource set being configured to execute a task defined by a requesting client device in an equivalent manner based on the collected metadata information of at least one resource set.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Patent Application No. 16 / 837,411, filed April 1, 2020, which in turn claims priority to U.S. Provisional Application No. 62 / 830,198, filed April 5, 2019, the entire contents of which are incorporated herein by reference. Technical Field

[0003] This disclosure generally relates to resource allocation and task completion, and more specifically, to systems and methods for identifying equivalents for completing tasks. Background Technology

[0004] Typically, Enterprise Resource Planning (ERP) or Material Requirements Planning (MRP) systems can be tightly integrated with a company's customer-facing aspects, such as sales tools. ERP / MRP systems work most effectively when based on the principle of invariant identification, while sales tools do not develop this aspect very well. Demonstrating how identification can be used to achieve the goal of integrating traditional factories into an Internet of Things (IoT) optimization model remains a challenge.

[0005] Developer operations and the internet often develop the concept of identifiers. One example is the modern software factory, which targets products deployed in the cloud and leverages cloud and other internet technologies to generate dynamic software factories. Modern software factories can be tightly integrated with a company's business systems. This complete system—development, sales, deployment—can then be monitored at every step, including customer usage. It now becomes the Internet of Things (IoT), capable of dynamic optimization by suppliers, customers, or clients.

[0006] However, there is currently a trend in the market to enforce narrow and vertically defined operating points. The term "operating point" has been adopted to provide guidance on how to configure a system based on a set of established standards and specifications, the sub-parts they contain, and the specific compliance requirements for the options within those sub-parts. As an example, factory optimization is now being narrowed due to the limitations imposed at each level of the Open Systems Interconnection (OSI) stack, and, as another example, the potential cloud stack. The Joint Working Group on Network Media proposed such a stack and released it as part of the JT-NM RA1.0 stack. More recently, the same organization developed the specification TR-1001-1, which narrows the options within that stack, providing a single operating point. This eliminates the significant factory flexibility required to meet the ever-changing needs of modern technologies. By narrowing the choices, flexibility and the ability to abstract are lost. Therefore, there is a need to protect abstractions while maintaining predictability.

[0007] Traditionally, interoperability or interchangeability is required, or implies the same entity. With internet technology permeating almost every aspect of our existence, it is interesting to consider that everything, or most things, can be modeled as a factory or control system, in which the factory is dynamically optimized in real time to improve its desired output.

[0008] Many factories can consist of software itself, while others can provide telemetry to physical devices at every stage of the process. Many physical factory applications are themselves programmable, adaptable to different applications, just as the cloud is programmable to provide countless functionalities suitable for a much larger set of applications. Two such examples could be internal computing and FPGA-based cards used as equivalent computing, or processing devices.

[0009] In short, it is reasonable to model all factories, whether virtual or tangible, as a set of processes that can be configured, controlled, and monitored.

[0010] On the other hand, strong identifiers are now used in the cloud to ensure the uniqueness of things and therefore their identical nature. For decades, manufacturing processes have focused on quality. The goal is to achieve and encourage factory auditability and traceability in order to improve processes to achieve target metrics such as 6-Sigma. To ensure this, every aspect of the “product” is documented and provided with a unique part number or unique identifier. In physical factories, such as those used for PCBs, pick-and-place machines are programmed based on the PCB components being manufactured. Identifiers can be assigned to this program. PCB design rules, pad sizes, or impedance control PCB stack standards can also be assigned identifiers. In a similar way, other aspects, such as warehouses, components in the warehouse, standard costs, and added value, can be assigned identifiers. This provides traceability and auditability.

[0011] In the cloud, Infrastructure as Code (IAC) and Configuration as Code (CAC) provide a highly dynamic factory, essentially software-defined processing capabilities that enable the required tasks at hand to be executed by software. In this context, identifiers can be assigned to code modules, to the compiler of the code, to the IAC and CAC, and so on. Now, cloud processes are also auditable and traceable.

[0012] However, there are problems with how to use this identifier to provide a flexible parameterization approach to software factory services. Summary of the Invention

[0013] Therefore, according to exemplary aspects, systems and methods configured to identify equivalents for performing tasks are disclosed.

[0014] Typically, the system includes a database containing metadata information associated with multiple resources, including physical and software resources; and a processor configured to execute: an equivalent module comprising: a metadata collection module configured to collect metadata about multiple resources and store the metadata as metadata information in the database; an identification module configured to establish an identifier for each resource and its equivalent; and a transmission module configured to receive requests for specific outputs from clients, wherein the equivalent module is configured to: determine a set of resources that fulfill the request in an equivalent manner based on the collected metadata and the identifiers of the resources, and provide the resources to the requesting client.

[0015] On another aspect of the system, the resource metadata enumerates their capabilities and their performance for each capability. Different subsets of this metadata (containing all metadata) provide equivalence metrics, assigning a unique identifier to each subset.

[0016] In another exemplary aspect, a system for determining the equivalence of performing a task is provided. In this respect, the system includes a metadata database comprising metadata information associated with a plurality of resources, including both physical and software resources; an equivalence processor configured to execute: an identification module configured to acquire a unique identifier for each of the plurality of resources; and a metadata collection module configured to collect metadata information associated with the plurality of resources based on the acquired unique identifier for each resource, and to store the collected metadata information in the metadata database, wherein the metadata information relates to the capability of a corresponding resource for performing a process for executing the task, wherein the capability of performing the process relates to the time, efficiency, physical capabilities, and technical capabilities required by the corresponding resource for performing the process. In an exemplary aspect, the equivalence processor is configured to determine at least one set of resources among the plurality of resources, and is configured to fulfill a request received from a requesting client device in an equivalent manner based on the collected metadata information of the at least one resource set. Furthermore, the equivalence processor is configured to provide the requesting client device with access to the determined at least one set of resources to coordinate the execution of a corresponding process through each of the resource set to perform the task.

[0017] In another exemplary embodiment, a system for determining the equivalence of performing a task is provided. In this regard, the system includes an identification module configured to acquire a unique identifier for each of a plurality of resources; a metadata collection module configured to collect metadata information related to the plurality of resources based on the acquired unique identifier for each resource, and to store the collected metadata information in a metadata database, the metadata information relating to the capabilities of the corresponding resource for performing the task; and an equivalence processor configured to determine at least one set of resources among the plurality of resources, the at least one set of resources being configured to perform the task defined by a requesting client device in an equivalent manner based on the collected metadata information of the at least one set of resources. Furthermore, the equivalence processor is configured to provide the requesting client device with access to the determined at least one set of resources to coordinate the execution of the task through at least a portion of the resource set.

[0018] In another exemplary aspect, multiple resources include both physical resources and software resources.

[0019] In another exemplary aspect, the ability to perform a task is related to the time, efficiency, physical capabilities, and technical capabilities required to perform the corresponding task using the corresponding resources.

[0020] In another exemplary aspect, metadata information for multiple resources enumerates the corresponding capabilities and their respective performance for each capability.

[0021] In another exemplary aspect, different subsets of metadata information provide equivalence measures, and each subset is assigned a unique identifier.

[0022] In another exemplary aspect, the equivalent processor is configured to determine at least one set of resources required to complete the task in the equivalent manner by selecting at least one set of resources that includes the ability to perform corresponding processes for executing the task when other resources among a plurality of resources with equivalent capabilities are unable to complete the task.

[0023] In another exemplary aspect, the requesting client device is configured to provide a user interface configured to define a task, and the client device is configured to automatically construct requirements for completing the task. Furthermore, the user interface provided by the client device is configured to display a list of the at least one set of resources, allowing the user to select a portion of the at least one set of resources to coordinate the execution of the task.

[0024] In another exemplary aspect, the metadata collection module is configured to dynamically update the metadata information in the metadata database as the availability and capabilities of each of the multiple resources change.

[0025] The simplified summary of the examples above is intended to provide a basic understanding of this disclosure. This summary is not a broad overview of all anticipated aspects and is neither intended to identify key or critical elements of all aspects, nor to depict the scope of any or all aspects of this disclosure. Its sole purpose is to present one or more aspects in a simplified form as a prelude to the more detailed description of the disclosure that follows. To accomplish the foregoing, one or more aspects of this disclosure include the features described in the claims and those exemplarily pointed out. Attached Figure Description

[0026] Figure 1 This is a block diagram of a system for identifying equivalents for performing a task, based on exemplary aspects of this disclosure.

[0027] Figure 2 This is a block diagram illustrating exemplary requirements according to exemplary aspects of this disclosure.

[0028] Figure 3 This is a flowchart of a method for identifying an equivalent for performing a task, according to an exemplary aspect of this disclosure.

[0029] Figure 4 This is a diagram illustrating factory behavior according to an exemplary aspect of this disclosure.

[0030] Figure 5 This is a block diagram illustrating a computer system according to an exemplary aspect, in which a system and method aspect for identifying equivalents for performing tasks can be implemented in the computer system. Detailed Implementation

[0031] Various aspects of this disclosure will now be described with reference to the accompanying drawings, wherein similar reference numerals are used throughout to refer to similar elements. In the following description, numerous specific details are set forth for purposes of explanation to facilitate a thorough understanding of one or more aspects of this disclosure. However, in some or all of the cases, it will be apparent that any aspect of the following description may be practiced without employing the specific design details described herein. In other cases, well-known structures and devices are shown in block diagram form to facilitate the description of one or more aspects. A simplified summary of one or more aspects of this disclosure is presented below to provide a basic understanding thereof.

[0032] Figure 1 A system 100 for identifying an equivalent for completing a task is shown according to an exemplary embodiment.

[0033] System 100 includes client 102 (e.g., a computer or similar computing device), equivalent processor 110, and metadata database 120. In some embodiments, client 102 requests a set of resources from database 120 via network 101 to perform a specific task characterized by request 104. Typically, network 101 can be any network used for transmitting and manipulating data, and can include communication systems (not shown) that connect various computers in the system via wired, cable, fiber optic, and / or wireless links facilitated by various types of well-known network elements such as hubs, switches, routers, etc. Network 101 can utilize various well-known protocols to transmit information between network resources. In one aspect, network 101 can be part of the Internet or intranet using various communication infrastructures such as Ethernet, Wi-Fi, etc.

[0034] According to an exemplary aspect, the requested set of resources (e.g., requirement 104) may be a set of hardware or physical resources used to equip a factory to produce a specific product. In another example, requirement 104 may require tasks such as camera “appearance” matching, cloud service allocation, etc. Examples of techniques for coordinating camera “appearance” matching are described in U.S. Application No. 16 / 832,468, filed March 27, 2020, entitled “System and Method of Partial Matching of Control Settings Across Camera,” the contents of which are incorporated herein by reference.

[0035] According to an exemplary embodiment, the equivalent processor 110 is configured to query the metadata database 120 to determine which resources can perform a specific task based on requirement 104, thereby providing the client 102 with complete resource allocation guidance or even for blueprinting. Resource identifiers are returned to the client 102 from the metadata database 120 by the equivalent processor 110 via network 101, allowing the client 102 to combine workflows and / or select one or more resources to complete the required task to satisfy requirement 104. In an exemplary aspect, the resource identifier may include a description of the resource type, the resource's composition, the resource's capabilities, the resource's usage parameters, and other linked resources. In an exemplary aspect, the resource type may be physical (e.g., computing device, mobile device, microchip, or other internet-connected device), software-based (e.g., software application, software service, cloud computing platform, or similar), etc. The resource's capabilities can indicate how the client 102 can best utilize the resource to achieve equivalence with the desired result while attempting to satisfy requirement 104. Furthermore, the resource may be associated with one or more linked resources, whether the same or different types, which can be optionally invoked by the returned resources.

[0036] According to an exemplary aspect, the equivalent processor 110 may also include a metadata collection module 112. Generally, the term "module" as used herein can refer to a real-world device, component, or arrangement of components implemented using hardware, such as by an application-specific integrated circuit (ASIC) or a field-programmable gate array (FPGA), for example, or as a combination of hardware and software, such as by a microprocessor system and a set of instructions that implement the functionality of the module, which (when executed) transforms the microprocessor system into a dedicated device. A module can also be implemented as a combination of both, where some functions are implemented solely by hardware, while others are facilitated by a combination of hardware and software. In some implementations, at least a portion of the module may be executed on a processor of a general-purpose computer, and in some cases, the entire module may be executed. Therefore, each module can be implemented in a variety of suitable configurations and should not be limited to any of the exemplary implementations described herein.

[0037] According to an exemplary embodiment, the metadata collection module 112 is configured to collect metadata information from multiple resources. Figure 1 The diagram illustrates illustrative sets of resources 113-1 to 113-6, where each resource 113-1 to 113-6 can be a device (tangible or virtual) with resource ID 130. Resource ID 130 is associated with the corresponding resource 113-1 to 113-6 and has a unique relationship with its corresponding metadata. For example, resource ID 130 may be stored remotely in a cloud computing environment (e.g., as shown by the dashed line 130) or directly by the resources 113-1 to 113-6 themselves. In either case, device ID 130 is associated with the metadata of each corresponding resource 113-1 to 113-6.

[0038] According to an exemplary embodiment, the metadata collection module 112 is configured to dynamically collect or receive metadata information from various and many other devices. For example, the metadata collection module 112 may be configured to query a list of available resources (e.g., resources 113-1 to 113-6), each of which is linked to a unique identifier and shared. In one aspect, the unique identifier may be an attribute archived in its metadata record. In another exemplary aspect, the unique identifier for a resource may consist of multiple logically grouped identifiers. An example of a method for accessing media assets as a type of resource is described in U.S. Application No. 16 / 569,323, filed September 12, 2019, entitled “System and Method for Dynamically Accessing Media Assets,” the contents of which are incorporated herein by reference.

[0039] In another exemplary aspect, a list of resource locators is provided to the metadata collection module 112, and the module 112 is configured to communicate with the resource to receive metadata records associated with a resource ID unique to that resource. Alternatively, in some aspects, the resource may be intelligent, connected to the Internet (e.g., in a cloud environment as shown in reference numeral 130), and may submit metadata information to a listening server, which in turn submits it to the metadata collection module 112. The collected metadata 114 is stored in the metadata database 120. For example, once a request is made to find a resource equivalent for client 102 based on demand 104, the equivalent processor 110 is configured to retrieve resource IDs 130 and return them to client device 102 via network 101. In some aspects, client 102, equivalent processor 110, metadata database 120, or any other component may be located locally, remotely, or any combination thereof.

[0040] In an exemplary aspect of this disclosure, the equivalent processor 110 can be configured to establish a unique identifier for each resource whose metadata is collected, establishing the capabilities and performance of a given resource. In one example, a unique identifier for an IoT or other connected device can be assigned by a program similar to DHCP (Dynamic Host Configuration Protocol). For example, a physical device can provide its MAC address, or alternatively, a virtual device can provide a unique address based on a port MAC address and an IP address for the service. The AMWA IS-05 specification uses LLDP as the method for initiating connections and creating unique IDs for virtual resources. It should be understood that this approach does not lose its versatility when considering transient devices: a device that accelerates first and then decelerates.

[0041] Generally, while each resource's identifier is unique, there may be other resources with "equivalent" capabilities and performance. For a unique identifier, "equivalence" means a set of results that can replace the desired result based on requirement 104, or in other words, providing a result that is as good as the desired result (e.g., within a threshold of the desired result). For example, resource A may be as good as resource B because, for a given application, their results are sufficiently similar to satisfy the requested task. In an exemplary aspect, this is fuzzy determination, and multiple algorithms can be used to determine whether a set of resources can produce results that are "sufficiently close" to the desired result, with a predetermined threshold of similarity.

[0042] For example, in the cloud, an equivalent processor can recruit a CPU, or GPU (G1, referring to a GPU instance in the cloud), or Field-Programmable Gate Array (FPGA) (F1, referring to an FPGA instance in the cloud) for a given client 102 to perform a given operation or process. The results may vary slightly. For example, different quantization errors may occur based on the algorithmic options available in each of the CPU, GPU, or FPGA. Another difference may be that computation time can vary significantly, but the computational cost of the solution may be lower if the program can wait. In a third difference, the "cloud" may actually reside locally as a collection of compute nodes, rather than in the cloud. This may be for reasons of transmission bandwidth, security, or both.

[0043] However, each of these resources is considered equivalent, and each can be described by capabilities (e.g., bandwidth, latency, FLOPs) and performance (e.g., 10Gbps, 5ms, 1TeraFlop). In fact, each performance metric can be a range rather than a single point in a single aspect. Capabilities can be formulas, or redirected to formulas, or useful mathematical representations. Gamma curves or color spaces can be explicitly invoked. The range of a capability (or the performance of a capability) can be algorithmic accuracy, processing time, etc. Complex functions may require additional parameterization, in which case the function is redirected to other software or hardware components. This allows client 102 to adjust certain parameters of the function according to the needs of its use case. The function has an identifier and also acts as a resource. The type, capabilities, and ranges and performance of these settings are now distinct and reusable.

[0044] Finally, this additional data is a form of metadata. Metadata can be delivered in header extensions, for example, and / or can be used in files, and can be stored in the metadata database 130.

[0045] According to the specifications, any "equipment" or "physical machine" can serve as resources 113-1 to 113-6, and can publicly disclose key standards and metadata for "equivalence," and using this information, equivalent substitutions can be automatically made. Any plant optimization may occur based on business standards that go beyond traditional material costs, fixed plant costs, and fixed plant utilization rates.

[0046] General optimization is complex. If the order is independent, the space is factorial. If it is order-dependent, it is combinatorial. If it is order-dependent and bounded, for example, through equivalent metadata, the optimization complexity is significantly reduced. In some customer use cases, certain dependencies can be completely eliminated, further reducing the solution's N-space. In many cases, resilient search may then outperform optimization.

[0047] In an exemplary aspect of this disclosure, the metric of "as good as" is application-based. Published metadata for a resource is interpreted to determine whether the resource can produce results that are "as good as" the expected outcome. In some examples, a simple approach to selecting resources is to search for resources that satisfy one or more specified parameter ranges.

[0048] Figure 2 This is a block diagram illustrating an exemplary requirement 104 according to an exemplary aspect of this disclosure. As described above, the requirement 104 defined by the client device 102 can be set based on the requested tasks and / or workflows set by the client device 102. More specifically, requirement 104 can be a set of hardware or physical resources for equipping a factory to produce a specific product, or requirement 104 can require the completion of tasks such as camera “appearance” matching, cloud service allocation, etc.

[0049] like Figure 2 Specifically, requirement 104 can be defined by time constraint 200, efficiency constraint 202, physical constraint 204, and / or technical constraint 206. For example, if a task must be performed within a specific time frame and computational resources are required to complete part or all of the task, time constraint 200 can be defined accordingly (e.g., completing the task within a day), which in turn defines the computational processor requirements needed to satisfy the defined time constraint 200. Each of efficiency constraint 202, physical constraint 204, and / or technical constraint 206 can be similarly determined. For example, if the requested task is editing real-time video content, the required bit depth, luminance, color space, etc., can be determined based on a defined workflow. The required video characteristics can be specified in the technical constraint 204 of requirement 104. Other criteria can be, for example, the type discussed earlier, and / or the specific cost associated with the resources. In this regard, resource metadata used for equivalence can allow selection via flexible search in one aspect of the fuzzy algorithm, rather than traditional optimization.

[0050] Using computational processor requirements as an example, the system can be configured to achieve equivalent results by routing the required processes differently. In other words, the system not only converts CPU-based tasks into FPGA-based tasks, but can also be configured to dynamically transform one FPGA into ten CPUs running in parallel, for example, assuming that media can flow between these interconnected CPUs. That is, based on the results obtained through the metadata collection module 112 regarding the capabilities of available devices (e.g., resources 113-1 to 113-6), the equivalent processor 110 can construct workflows to execute one or more tasks in parallel. For example, at a microscale, the equivalent processor 110 can efficiently remap each atomic task using equivalence, and at a macroscale, the system can remap the entire subsystem and implement very different properties or characteristics of the processes.

[0051] In some respects, the concept of equivalence can be applied to video cameras (e.g., video camera 113-1) to provide a uniform “look” across multiple different cameras, even encompassing different brands and models of specific cameras. Equivalence can be created first on a set of identical cameras, more broadly across many different cameras manufactured similarly and meticulously characterized, and then even from different cameras from different vendors. In the example of camera resources, a set of descriptive metadata could contain settings for a particular camera from a specific vendor, their values, and so on.

[0052] The client's desired unique "appearance" (metadataset) has a specific identifier. The appearance criteria are compared to other camera types with similar descriptions. If the match is "good enough" (as described above according to the fuzzy algorithm), then a specific camera or one or more cameras can be considered as good as the desired result or appearance. In an exemplary aspect, the "appearance" can be attributed to expert users, and the settings can represent their expert knowledge. This information can also be stored in a metadata database 120, or in another form of storage, such as cloud storage (S3). In other words, the metadata database 120 can reside in a data cloud environment, locally on device 102, etc. Expert users provide filters that can significantly reduce the time associated with searching, optimizing, and training through the equivalent module 110. Machine learning and artificial intelligence are applied to the dataset for filtering, processing, and then leveraging the advantages of processing and training to accurately answer future requests.

[0053] On the other hand, equivalent patterns themselves can be used as features for pattern recognition, statistical analysis, and the equivalence between an "appearance" and the factory that generates that appearance. Here, a factory refers to one or more resources that produce specific results. In this respect, these features can facilitate more efficient machine learning (ML) and thus artificial intelligence (AI). Because equivalence tables can be generated by experts, they provide expert-level training for AI. Because these features can be included in the feedback loop of the "factory" and, through association and learning (measuring state, speed, quality), they provide unsupervised learning capabilities.

[0054] Figure 4 This is a diagram illustrating the behavior of a plant according to an exemplary aspect of this disclosure. More specifically, the diagram illustrates an example of a feedback loop. That is, in some cases, a control loop can represent a plant. H(s) may be a linearly cascaded set of processes, or it may be a set of reorderable processes. In an exemplary aspect of system 100, a set of processes (a resource) can be configured as a plant, or in other words, conforming to the Infrastructure as Code (IAC) paradigm. Each process can then be adapted for the task at hand, conforming to the Configuration as Code (CAC) paradigm. If equivalent h(s) units exist, they can be swapped to create the overall H(s). G(s) is the control compensation designed for the stability of the closed loop. Alternatively, in this case, the configuration, parameter settings, and control functions required for optimal plant performance.

[0055] A factory has a unique identifier for its components and processes. Any code set, such as those containing IAC, CAC, DNS, equivalent metadata representations, etc., has an identifier. Therefore, any business model, such as those based on usage over a period of time (e.g., credit sales), usage-based sales, or sales as capital expenditures, can be used simultaneously and optimally for any business transaction that may be based on cloud locations or other forms of factory deployment (containing transient factory elements). IAC and CAC provide customization of the target factory and suitability analysis for that target. As long as the factory provides results deemed sufficiently good according to a specific algorithm, it can be used, i.e., returned to the client 102 for use. All business transactions are fully traceable to the manufacture and development of the item or set of items. Now understand customer preferences. In one example, this end-user feedback is then used as user preferences for advertising and content placement. It is important to know that a set of identifiers is equivalent to traditional item models to encourage auditability of factory outputs, etc.

[0056] In an improvement to this example, certain tasks or processes of the requested workflow (i.e., those for performing specified tasks) can be assigned to the end-user device. For example, if the requested task is to process and construct a media stream, and if a consumer is viewing the output of the media factory on an active device (e.g., a web browser, mobile phone, tablet), the final assembly of the final product (e.g., the video stream) can be deferred to an edge device, such as on the device's media browser. However, because devices are not homogeneous, some browsers may not be able to render complex media streams, so the browser may request an equivalent stream of pre-rendered material from a central resource. Advantageously, edge rendering enables customized television with unique advertisements based on the consumer watching.

[0057] Figure 3 This is a flowchart of method 300 for identifying an equivalent for completing a task according to an exemplary aspect of this disclosure. Method 300 begins at 302 and proceeds to 304. At 304, a metadata collection module collects metadata about multiple resources and stores this metadata as metadata information in a database. These resources, as described above, can be physical or software-based, etc. Each resource can submit its own metadata information, expose an API for another service to collect metadata resources, or can be inspected to determine metadata information.

[0058] In section 306, the Identification module establishes an identifier for each resource or collection of resources, and / or even each request itself. A resource's identifier specifies or links to a specification of the resource's capabilities, functionality, and other identifying factors. Different resources may have different identifiers, but their outputs may be equivalent.

[0059] At 308, the transmission module receives a request from the client for a specific output. The output can be, for example, a particularly desired objective, such as a camera "appearance" or a color correction function. The request indicates the constraints that resources must meet to be considered by the client.

[0060] In section 310, the equivalence module is configured to determine, based on collected metadata and resource identifiers, a set of resources that fulfill the requirement in an equivalent manner and provide those resources to the requesting client. When providing an equivalent result, the equivalence module may also provide information about the capabilities of each resource, the completion time, efficiency, cost, power usage, and many other data points that differ between specific resources. In other words, each resource or set of resources can achieve the desired goal (or be as close as possible to the desired goal), but may differ in duration, cost, or efficiency.

[0061] Each of this information is available to the client in step 312 so that the client can select the resources needed to build their system or achieve a desired goal. For example, in one exemplary aspect, client device 102 is provided with a user interface that enables the client device to build a workflow for performing a task, where the workflow can dynamically select requirements 104. In step 312, after receiving the list of available resources, the user interface of the client device can provide a list of each resource for each process in the task to be completed. The user can then select the best resource for performing that process. For example, many factors can be presented to the user, including the cost, time, and quality of each resource capable of performing each process. The user can then weigh each of these factors to select the “best” resource. Alternatively, client device 102 can automatically and / or dynamically select resources based on predefined criteria used to perform the task (e.g., minimizing cost or maximizing quality). As shown last, the method terminates at 320, which can be, for example, using the selected resources to actually complete the task.

[0062] In either case (i.e., user-controlled or automated), it should be understood that each option will have a cost, and therefore the application can be configured to minimize the cost of a specific vector (e.g., time and economic cost versus content quality). Similarly, each option will also have a benefit, and the application can be configured to maximize the benefit of a specific vector. A third option is to model the cost and benefit. The application can then weigh cost minimization against benefit maximization. Finding these minimums or maximums can be critical and susceptible to heuristic searches, such as hill climbing or genetic algorithms. However, in all cases, the user can choose the criteria by which the search will optimize. For example, an operator can use a user interface to select, for example, "minimize economic cost." In this case, the system is then configured to dynamically select one or more resources for performing the task that satisfy a minimum threshold from the quality cost while also minimizing the overall economic cost for the operator. In other words, if two separate image capture devices each have the physical characteristics to acquire sufficiently high-quality images (e.g., 1080p and 1080i), the system will be configured to automatically select the image capture device that performs the less economically viable task.

[0063] It should be understood that the systems and methods disclosed herein for identifying equivalents for completing tasks provide a flexible and dynamic system for workflows and tasks that fulfill requests. For example, a physical factory has hard edges, such as walls, buildings, etc., and is therefore, by definition, inflexible. Similarly, a deployed physical factory is optimized for fulfilling one task, but is therefore very inflexible for fulfilling other tasks. In contrast, the cloud, with its significantly infinite resources and almost unlimited interconnectivity, can be considered to possess ultimate resilience. Using the disclosed systems and methods, task execution no longer needs to be accomplished by predicting demand or consumption and designing accordingly. Instead, the system predicts flexibility and available capacity and reacts accordingly.

[0064] Figure 5 This is a block diagram illustrating a computer system 20, according to exemplary aspects, in which systems and methods of determined equivalence can be implemented. It should be noted that computer system 20 may correspond to system 100 or any component thereof. Computer system 20 may be in the form of multiple computing devices or a single computing device, such as a desktop computer, notebook computer, laptop computer, mobile computing device, smartphone, tablet computer, server, host, embedded device, and other forms of computing device.

[0065] As shown, computer system 20 includes a central processing unit (CPU) 21, system memory 22, and a system bus 23 connecting various system components, including memory associated with the CPU 21. System bus 23 may include bus memory or bus memory controllers, peripheral buses, and local buses capable of interacting with any other bus architecture. Examples of buses may include PCI, ISA, PCI-Express, and HyperTransport. TM InfiniBand TM , Serial ATA, I 2 C and other suitable interconnects. The central processing unit 21 (also referred to as a processor) may comprise a single or multiple sets of processors having one or more cores. The processor 21 may execute one or more computer-executable codes that implement the techniques of this disclosure. System memory 22 may be any memory used to store data used herein and / or computer programs executable by the processor 21. System memory 22 may comprise volatile memory such as random access memory (RAM) 25 and non-volatile memory such as read-only memory (ROM) 24, flash memory, etc., or any combination thereof. The basic input / output system (BIOS) 26 may store basic programs for transferring information between elements of the computer system 20, such as those used when loading an operating system using ROM 24.

[0066] Computer system 20 may include one or more storage devices, such as one or more removable storage devices 27, one or more non-removable storage devices 28, or combinations thereof. One or more removable storage devices 27 and non-removable storage devices 28 are connected to system bus 23 via storage interface 32. On one hand, storage devices and corresponding computer-readable storage media are independent power modules used to store computer instructions, data structures, program modules, and other data of computer system 20. System memory 22, removable storage devices 27, and non-removable storage devices 28 may use a variety of computer-readable storage media. Examples of computer-readable storage media include machine memory such as cache, SRAM, DRAM, capacitor-less RAM, dual-transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technologies such as in solid-state drives (SSDs) or flash drives; magnetic tape cassettes, magnetic tape, and disk storage such as in hard disk drives or floppy disks; optical storage such as in optical discs (CD-ROMs) or digital video discs (DVDs); and any other media that can be used to store required data and can be accessed by computer system 20.

[0067] The system memory 22, removable storage device 27, and non-removable storage device 28 of computer system 20 can be used to store the operating system 35, additional application programs 37, other program modules 38, and program data 39. Computer system 20 may include a peripheral interface 46 for data communication from input devices 40 (such as keyboards, mice, styluses, game controllers, voice input devices, touch input devices) or other peripheral devices (such as printers or scanners) via one or more I / O ports (such as serial ports, parallel ports, Universal Serial Bus (USB), or other peripheral interfaces). Display devices 47, such as one or more monitors, projectors, or integrated displays, can also be connected to the system bus 23 via an output interface 48, such as a video adapter. In addition to the display device 47, computer system 20 may also be equipped with other peripheral output devices (not shown), such as speakers and other audiovisual equipment.

[0068] Computer system 20 can operate in a network environment, using a network connection to one or more remote computers 49. Remote computer 49 can be a local computer workstation or server, comprising most or all of the elements described above in the description of the nature of computer system 20. Other devices may also be present in the computer network, such as, but not limited to, routers, network stations, peer devices, or other network nodes. Computer system 20 may include one or more network interfaces 51 or communication adapters for communicating with remote computer 49 via one or more networks such as a local area network (LAN) 50, a wide area network (WAN), an intranet, and the Internet. Examples of network interfaces 51 may include Ethernet interfaces, Frame Relay interfaces, SONET interfaces, and wireless interfaces.

[0069] The aspects of this disclosure may be systems, methods, and / or computer program products. A computer program product may comprise a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to execute aspects of this disclosure.

[0070] Computer-readable storage media can be tangible devices that store and hold program code in the form of instructions or data structures, accessible by a processor of a computing device (such as computing system 20). Computer-readable storage media can be electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. For example, such computer-readable storage media can include random access memory (RAM), read-only memory (ROM), EEPROM, portable optical disc read-only memory (CD-ROM), digital video disc (DVD), flash memory, hard disk, portable computer disk, memory stick, floppy disk, and even mechanically encoded devices, such as punch cards or raised structures in grooves on which instructions are recorded. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or transmission media, or electrical signals transmitted through wires.

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

[0072] Computer-readable program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages ​​(including object-oriented programming languages ​​and conventional programming languages). The computer-readable program instructions may execute 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 case, the remote computer may be connected to the user's computer via any type of network (including LAN or WAN) or may be connected to an external computer (e.g., via the Internet). In some aspects, electronic circuits comprising, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may be personalized to perform aspects of this disclosure by executing the computer-readable program instructions using status information provided by the computer-readable program instructions.

[0073] In various respects, the systems and methods described in this disclosure can be implemented in modules. As used herein, the term "module" refers to a real-world device, component, or arrangement of components implemented using hardware (such as through an application-specific integrated circuit (ASIC) or FPGA), for example, or as a combination of hardware and software, such as through a microprocessor system and a set of instructions that implement the module's functions (when executed), transforming the microprocessor system into a dedicated device. A module can also be implemented as a combination of both, with some functions implemented solely by hardware and others by a combination of hardware and software. In some embodiments, the modules can be implemented on a processor of a computer system (such as those described above). Figure 5 At least a portion of the module (as described in more detail herein) is executed on the module, and in some cases, all of it. Accordingly, each module can be implemented in a variety of suitable configurations and should not be limited to any specific implementation illustrated herein.

[0074] For clarity, not all conventional features of these aspects are disclosed herein. It should be understood that in developing any practical implementation of this disclosure, numerous implementation-specific decisions must be made to achieve the developer's specific objectives, and these specific objectives will vary for different implementations and different developers. It is understood that such development work may be complex and time-consuming, but will be nothing more than routine engineering tasks for those skilled in the art who benefit from this disclosure.

[0075] Furthermore, it should be understood that the wording or terminology used herein is descriptive rather than limiting, and is intended to be interpreted by those skilled in the art in conjunction with the knowledge of one or more persons skilled in the art, based on the teachings and guidance presented herein. Moreover, unless expressly stated as such, no uncommon or special meaning is intended to be assigned to any term in this specification or claims.

[0076] The various aspects disclosed herein include currently and future known equivalents of the known modules mentioned herein by way of illustration. Furthermore, while aspects and applications have been shown and described, it will be apparent to those skilled in the art that further modifications beyond those described can be made without departing from the inventive concept disclosed herein.

Claims

1. A system for determining the equivalence of performing a task, the system comprising: A metadata database, which includes metadata information associated with multiple resources, including both physical and software resources; Processor, the processor being configured to: Obtain a unique identifier for each of the plurality of resources; The requirements constraints that must be met to acquire resources are considered for their use in performing tasks; Metadata information related to the plurality of resources is collected based on a unique identifier acquired for each resource, and the collected metadata information is stored in the metadata database. This metadata information relates to the capabilities of each resource within the plurality of resources to meet the requirements constraints for performing the task, and enumerates corresponding capabilities for the corresponding performance of each capability of the respective resource within the plurality of resources. The capability to perform the task process is related to the time, efficiency, physical capabilities, and technical capabilities required to perform the corresponding resources. At least one set of resources is determined from the plurality of resources, the at least one set of resources being configured to satisfy the requirement constraints of the task defined by the requesting client device in an equivalent manner, based on the collected metadata information of the at least one set of resources from the plurality of resources. The requesting client device is provided with access to at least one defined set of resources to coordinate the execution of corresponding processes through each of the resource sets to perform the task.

2. The system according to claim 1, wherein, The metadata information for the multiple resources enumerates the corresponding capabilities and the corresponding performance of each capability.

3. The system according to claim 1, wherein, Different subsets of the metadata information provide equivalence measures, and each subset is assigned a unique identifier.

4. The system according to claim 1, wherein, The processor is configured to, when other resources among the plurality of resources with equivalent capabilities cannot be used to complete the task, determine the at least one set of resources that includes the capability to perform the corresponding process, for completing the requirement in the equivalent manner.

5. The system according to claim 1, wherein, The client device that issues the request is configured to provide a user interface configured to define the task, and the client device is configured to automatically construct the requirement based on the defined task.

6. The system according to claim 5, wherein, The user interface provided by the client device is configured to display a list of the at least one set of resources, such that the user can select a portion of the at least one set of resources to coordinate the execution of corresponding processes through the selected portion of the resources to perform the task.

7. The system according to claim 1, wherein, The processor is also configured to dynamically update the metadata information in the metadata database and the availability and capabilities of each of the plurality of resources as the respective availability and capabilities of each of the plurality of resources change.

8. A system for determining the equivalence of performing a task, the system comprising: A metadata database, which includes metadata information associated with multiple resources, including both physical and software resources; Processor, the processor being configured to: Obtain a unique identifier for each of the plurality of resources; The requirements constraints that must be met to acquire resources are considered for their use in performing tasks; Metadata information related to the plurality of resources is collected based on obtaining a unique identifier for each resource, and the collected metadata information is stored in the metadata database. This metadata information is related to the capabilities of the corresponding resources to meet the requirements constraints for performing the task, and enumerates the corresponding capabilities and performance for each capability of the corresponding resource among the plurality of resources. At least one set of resources is determined from the plurality of resources, and the at least one set of resources is configured to satisfy the requirement constraints of the task defined by the requesting client device in an equivalent manner based on the collected metadata information of the at least one set of resources from the plurality of resources. The requesting client device is provided with access to at least one determined set of resources to coordinate the execution of the task through at least a portion of the set of resources.

9. The system according to claim 8, wherein, The metadata information of the multiple resources enumerates the corresponding performance and capabilities of each capability of the corresponding resource in the multiple resources.

10. The system according to claim 8, wherein, Different subsets of the metadata information provide equivalence measures, and each subset is assigned a unique identifier.

11. The system according to claim 8, wherein, The processor is configured to, when other resources among the plurality of resources with equivalent capabilities cannot be used to complete the task, determine the at least one set of resources required to complete the task in the equivalent manner by selecting the at least one set of resources that includes the capability to perform a corresponding process for executing the task.

12. The system according to claim 8, wherein, The client device that issues the request is configured to provide a user interface configured to define the task, and the client device is configured to automatically build requirements for completing the task.

13. The system according to claim 12, wherein, The user interface provided by the client device is configured to display a list of the at least one set of resources, allowing the user to select a portion of the at least one set of resources to coordinate the execution of the task.

14. The system according to claim 8, wherein, The processor is also configured to dynamically update the metadata information in the metadata database as the availability and capabilities of each of the plurality of resources change.

15. A system for determining the equivalence of performing a task, the system comprising: Processor, the processor being configured to: Obtain a unique identifier for each of the multiple resources; The requirements constraints that must be met to acquire resources are considered for their use in performing tasks; Metadata information related to the plurality of resources is collected based on obtaining a unique identifier for each resource, and the collected metadata information is stored in a metadata database. This metadata information relates to the capabilities of each resource within the respective resources to meet the requirements constraints for performing the task, and enumerates corresponding capabilities for the corresponding performance of each capability of the respective resources within the plurality of resources. At least one set of resources is determined from the plurality of resources, and the at least one set of resources is configured to satisfy the requirement constraints of the task defined by the requesting client device in an equivalent manner based on the collected metadata information of the at least one set of resources from the plurality of resources. The requesting client device is provided with access to at least one determined set of resources to coordinate the execution of the task through at least a portion of the set of resources.

16. The system according to claim 15, wherein, The resources include both physical resources and software resources.

17. The system according to claim 16, wherein, The capability of a process for performing the task is related to the time, efficiency, physical capabilities, and technical capabilities required to perform the corresponding process using the appropriate resources.

18. The system according to claim 16, wherein, The metadata information for the multiple resources enumerates the corresponding capabilities and the corresponding performance of each capability.

19. The system according to claim 18, wherein, Different subsets of the metadata information provide equivalence measures, and each subset is assigned a unique identifier.

20. The system according to claim 15, wherein, The processor is further configured to, when other resources among the plurality of resources with equivalent capabilities cannot be used to complete the task, determine the at least one set of resources required to complete the task in the equivalent manner by selecting the at least one set of resources that includes the capability to perform a corresponding process for executing the task.

21. The system according to claim 15, wherein, The client device that issues the request is configured to provide a user interface configured to define the task, and the client device is configured to automatically build requirements for completing the task.

22. The system according to claim 21, wherein, The user interface provided by the client device is configured to display a list of the at least one set of resources, allowing the user to select a portion of the at least one set of resources to coordinate the execution of the task.

23. The system according to claim 15, wherein, The processor is also configured to dynamically update the metadata information in the metadata database, as well as the availability and capability of each of the plurality of resources, as the respective availability and capability of each of the plurality of resources changes.

Citation Information

Patent Citations

  • System and method of partial matching of control settings across cameras

    US11134185B2

  • System and method for dynamically accessing media assets

    US11461381B2

  • Listing optimal machine instances

    US20170153965A1

  • Methods and apparatus for displaying managed resource information

    US6978422B1

  • Meta-data driven resource management

    US7272615B2