Microprocessor including enterprise model
By embedding enterprise models in microprocessors and directly executing software code, the problem of inefficient interoperability of software upgrades and IoT components in the prior art is solved, and high-performance and secure software upgrades and interoperability are achieved.
Patent Information
- Application Number
- CN202411220905.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-04-13
- Filing Date
- 2018-05-28
- Publication Date
- 2025-02-18
AI Technical Summary
The prior art has inefficiency and compatibility issues in software upgrades and IoT component interoperability, especially in emergency response and network security.
By embedding enterprise models in microprocessors, the direct execution of software code is achieved, reducing dependence on external databases and retrieval queries, and improving performance and security.
It significantly improves the efficiency of software upgrades and IoT component interoperability, reduces upgrade time and effort, and enhances network security performance.
Smart Images

Figure CN119477107A_ABST
Abstract
Description
[0001] Divisional application
[0002] This application is a divisional application of the invention application with application date of May 28, 2018, application number 201880047753.4, and title “Microprocessor Including Enterprise Model”. Background Art
[0003] Software is used to manage the interaction between humans and the processing units of computers. Software appears at the human-computer interface in the form of user interfaces and high-level programming languages. Software enables computers to communicate with humans using different external devices such as a mouse, keyboard, or video recognition system. Perhaps most importantly, software translates the processing language from human language to machine language. For example, software can convert a developer-level language such as Visual Basic, C#, Python, Java, or SQL into an intermediate language and then into machine language. The ubiquitous nature of computers and their software has made the interaction with humans very diverse. As a result, commonly used general-purpose computers have human-computer interaction capabilities that far exceed those required for specific enterprise applications.
[0004] Complex functions must be integrated into general-purpose computers to enable these computers to interact with a wide variety of software and to enable human-computer interaction combined with large amounts of enterprise information to be processed, and a large number of software functions constitute specific applications, which are resource-intensive and reduce processing speed as a whole. For example, the database language / program, namely SQL / Sequel, requires a service to run and process retrieval and storage in most enterprise software. Retrieval requires several sub-steps. This program and equivalent programs require intensive programming.
[0005] Software requires frequent updates and upgrades to incorporate improvements and eliminate processing errors (bugs). The process of updating or more importantly, upgrading software is extremely labor-intensive and time-consuming. So much so that software development expenditures are often considered to be composed of 50% requirements elicitation, design and implementation, and 50% testing. In few other industries is testing such a critical part of development. The upgrade process is disruptive to development and widespread use of software, and is most severe in new software usage paradigms such as the Internet of Things (IoT) and emergency response.
[0006] IoT is one of the most important developments in software today. It consists of software and hardware components that are not necessarily managed or produced by the same stakeholders. Therefore, IoT relies heavily on the interoperability of independently designed and produced IoT components. This means that, during end-use, IoT components must interoperate with other IoT components without being conceived as a system in advance. A common problem is that IoT components sometimes lack interoperability because they were not designed together. Solving the problem of incompatible IoT components is achieved through upgrades. Upgrading through models is an important part of the software development disclosed in this article.
[0007] Similar to software upgrades, it is about modifying or improving the functionality of software in a timely manner to gain benefits, such as in the process of responding to an emergency. Emerging applications that make extensive use of software and handheld devices in complex operations that require coordination (such as emergency response) are another domain that requires more efficient modification of software. Emergency response using multiple portable computing devices is time-intensive and has diverse requirements, so the ability to modify software during an ongoing emergency can greatly increase the likelihood of successfully resolving the emergency. Consider how many exceptions to expected requirements will occur when deploying an emergency response system. In a real emergency, some unforeseen use cases may arise. For example, the need to identify hidden threat personnel during a terrorist attack, rather than evacuate or lock down, may require rapid modification of software in an emergency. The software development disclosed in this article provides unique change traceability, so the allocation of upgrade processes can be achieved based on which nodes of the model, including which users and which contexts are in the propagation path of the change. The key is traceability based on propagation path modeling.
[0008] Similar modeling of propagation paths can be used with runtime parameterization of software instead of with upgrades.
[0009] One reason that slows down software upgrades is that the software lacks traceability and evolvability due to the lack of a traceable model that describes enterprise processes and status. In addition, again due to the lack of traceability, changing the software to fix the latest software defects found during testing before the new functional system is ready for application significantly increases the time and effort required for upgrades. Due to the lack of traceability, the amount of compilation instructions for the upgrade to be applied to existing applications using traditional methods is large, so partial upgrades cannot be relied upon to eliminate defects.
[0010] Additionally, the software is exposed to illegal network intrusions during use, commonly known as cybersecurity threats. Cybersecurity issues are caused by the use of common and traditional software layers to store and retrieve data, which allows illegal agents to penetrate most systems using the same methods.
[0011] Additionally, the performance of traditional software (traditional software does not deploy specialized software layers designed to avoid large common software components) significantly affects performance and network security. The use of specialized software significantly improves performance and significantly improves network security. As disclosed below, the use of one or more enterprise models significantly reduces the need for redundant software.
[0012] U.S. Patent No. 8,571,910 and U.S. Patent Application Publication No. 2014 / 0330616A1, both proposed by D. Lyras and both named "System and Method for Identifying Enterprise-Related Information", disclose a system and method for discovering and retrieving enterprise-related information, which is related to enterprise problems, enterprise opportunities, and unexpected or interesting events.
[0013] One component of the systems and methods disclosed in US 8,571,910 and US2014 / 0330616 A1 is "Overlay," which is defined as a software aid for finding information within an enterprise. One aspect of Overlay is its function as a relevance engine, rather than a search engine. Overlay retrieves only information relevant to a specific enterprise problem or opportunity. The Overlay software locates cases similar to the current problem and opportunity by locating similar process steps and similar target proximity. To achieve these goals, Overlay uses an enterprise model that has unique traceability and acts as an execution combination of data and logic, bypassing the need for common software layers and numerous software layers.
[0014] The glossary of terms related to Overlay includes:
[0015] Abstraction context: A context that can be abstracted, in the sense that it can be applied to multiple domains. Abstraction contexts are used to define different levels of abstraction by merging one or more corresponding contexts at a lower level of abstraction. Correspondence means that more than one context at a lower level of abstraction is connected to a corresponding associated node at a higher level of abstraction.
[0016] Abstracted node clusters: Node clusters that reflect the semantics of multiple domain-specific node clusters as well as causal logic.
[0017] Abstract Object: An object that can be abstracted, in the sense that it can be applied to more than one domain as a contextual description of a node.
[0018] Actors: Human participants in real-world processes, although real-world processes may not be entirely different from the processes simulated by the system.
[0019] Attribute: A characteristic of a concept such as a node mentioned in this disclosure, also referred to as a node state. Each corresponding node has an attribute value at a given time, although the attribute value may change due to data propagation.
[0020] Business entity: A computer software development term used to describe a real-world concept that is simulated in software and has multiple attributes that describe its characteristics. Any physical thing, such as an environment, a place, a physical component, and a person, is a context, not an attribute or a node.
[0021] Business object: Similar to entity, it is a term used in the software industry to describe real-world concepts that are modeled in software.
[0022] Examples / Discussions / Descriptions / Experiences: These are empirical examples that describe all or part of the causes, impacts, risks, and remedies. They may include broad explanations and models that describe how things behaved during the distribution process.
[0023] Cause: An event or potential event that is believed to cause an effect.
[0024] Situation: A broad underlying activity, complex environment, time frame, or similar situation. In Overlay, situation is similar to state and state parameter, but is not a common term in software engineering. It is different from state because state also describes a situation instance of a node or node system, while situation describes more than one instance. Situation is also used in this article in its general English language sense when node propagation paths and similar Overlay model concepts are not described.
[0025] Cognitive structure: A structure that indexes information in a way that fits known cognitive principles.
[0026] Condition: A state of being (as defined in English) and the state of sensing devices and process assistance (as defined in Artificial Intelligence (AI)).
[0027] Context: The environment, situation or key identity of the domain in which a process occurs. This can be described by the Overlay domain model and processed by the computer by defining nodes, basic environmental or situational information as part of their state. Contexts typically delineate propagation paths belonging to similar but delineated processes, such as a payroll check being located in the appropriate crew context, where the crew context defines the propagation of the payroll check to the correct crew. Most non-activity based concepts in the Overlay are described as contexts. Overlay nodes can only be active, so aspects of activities that occur in the context of non-activity concepts (such as places) are described in the Overlay by contexts that further qualify the node.
[0028] Transformation, logical transformation, or transformation logic: Logic commonly found in software systems that transforms a value from one state to another. In Overlay, this is the logic that propagates values from one node to another and verifies the transformation of values from one node to another.
[0029] Diagnose: Identify the causes of problems and explain the causes of events or opportunities of interest.
[0030] Domain: An industry, a company division, an enterprise or part thereof, whose scope of activities is different from other similar activities, or any enterprise structure where process steps and terminology are specific but understandable to practitioners. Overlay models in different domains rarely affect each other. Domains differ from contexts in that contexts are more granular and place little emphasis on activities, but more on the inanimate environment that influences activities.
[0031] Effect: An event or potential event that is considered to affect a process, program goal, or condition goal.
[0032] Common Problems / Opportunities / Nodes: Problems, opportunities, or unsolved / potential / occurring events at various levels of abstraction that are considered by experienced practitioners to be recurring across various related processes. Common Problems / Opportunities are linked to Goals because Problems and Opportunities cannot be defined without first defining Goals.
[0033] Enterprise: Any organization or collection of organizations engaged in activities for one or more known purposes; usually characterized by the predictability of the objectives at any time, the predictability of the plans and processes for achieving those objectives, and the presence of actors with generally known values, skills, knowledge, information, endurance, and emotions directed toward the objectives.
[0034] Enterprise activities: Activities recognized by practitioners in a domain or domains.
[0035] Enterprise activity structure: A framework of relevant relevance standards that practitioners in most domains agree on.
[0036] Incident / unexpected event / interesting incident: An event that, to an experienced practitioner, would reasonably be considered to be important to the business and its objectives.
[0037] Explanation: An explanation for a problem, opportunity, or unexpected event.
[0038] External processes: External processes that occur outside the enterprise and on which some enterprise processes depend: such as design, construction, or education, and preparatory activities that may be part of any process step; processes found to occur in the environment that are not designed to serve known goals but that affect the enterprise's processes and goals, such as random human behavior; or processes that are not directly related to human behavior, such as environmental phenomena.
[0039] Target: A target is a node, but due to its abstract nature, it is usually not directly assigned child nodes. It is usually affected by multiple process cluster nodes in the system. The system describes in the Overlay that the target may have many contributing sources.
[0040] Goals or conditional goals: Goals and conditional goals that have been designed for enterprise processes.
[0041] Target proximity: The proportional influence of a slave node on a dependent node when the nodes are connected by causal relationships in a cluster of nodes. In general, target proximity is the causal ratio of a slave or causal process to a dependent or affected process.
[0042] Experienced Practitioners: People who have been involved in and responsible for processes and are considered experienced in most of their careers and understand the specific process and its main characteristics and also understand the dependent and subordinate processes of that process and are considered experienced.
[0043] Inanimate process: A process that does not involve human intervention (such as a chemical process) and therefore may not have goals, except for goals that humans design as part of the process. For example, corrosion is an inanimate process that is predictable and well known, but still cannot be considered a goal-based process.
[0044] Abstraction layer model: Overlay can be described as a model of enterprise activities at one or more abstraction levels. Abstraction layers can be: A) clusters of nodes with many semantically identical nodes, which are delineated by parallel propagation paths in different contexts, which do not converge between layers in different contexts, and which may converge between layers in different contexts at some node downstream of the propagation; B) abstraction layers can also be semantically similar, but usually not identical nodes in clusters of parallel propagation paths, which do not converge, and nodes at different abstraction levels correspond to each other through semantic and logical similarities; and combinations of (A) and (B).
[0045] Logical templates or logical abstractions: Increments of reusable logic placed between nodes in the Overlay model. The emphasis on logical abstraction and node semantic abstraction greatly helps develop Overlay models that can compare similarities, which has many benefits.
[0046] Microkernel: A nearly minimal set of software that provides the mechanisms needed to implement an operating system. These mechanisms typically include low-level address spaces, thread management, and inter-process communication (IPC). An exemplary application of a microkernel is disclosed in U.S. Patent No. 9,282,079 to Meier et al., "Microkernel Gateway Server." Patent No. 9,282,079 discloses a gateway server having a first subsystem and a second subsystem, the first subsystem receiving data from an unsecured network such as the Internet, and the second subsystem sending data to a secure network. An IPC controller and a microkernel are disposed between the first subsystem and the second subsystem. All communications pass through a memory controlled by the IPC controller / microkernel combination. Code in the microkernel determines which data can be safely passed to the second subsystem. The use of microkernels is important for the operation of the IoT, emergency response systems, high-performance compact systems, the IoT, and many other important uses.
[0047] Node state value: A value associated with a node that changes as the system is fed with new data. Node state values change frequently and are associated with data that changes in the system. A timestamp accompanies the node state value, but is considered a state parameter in software engineering. Many state parameters accompany the node state value of each node, of which the context is the most important for modeling purposes.
[0048] Non-goal-based animation progression: A progression that people experience but is not explicitly goal-based, such as appreciating a certain kind of music or liking a certain color. Commonly referred to as discretionary.
[0049] Nonvolatile Memory: Computer memory that does not require power to maintain its state.
[0050] Object: An object in the domain that is an important part of the process describing the environment in which the process occurs and is represented in the Overlay as a context that further identifies the node. This can be described by the Overlay domain model and can be processed by the computer by accompanying the node with information about its state. Objects can be different types of tools, such as different types of materials involved in the process that may affect the path of process propagation.
[0051] Opportunities / Successes: In this disclosure, opportunities and successes are considered to be nodes in a process, or may be nodes that represent goals, where an experienced practitioner would reasonably expect opportunities and / or successes.
[0052] Organization: To become an abstract concept that summarizes, groups, or models.
[0053] Rigidity: A property of an entity in a business activity model that is subject to change but is considered invariant because practitioners expect the property to be fairly constant and predictable.
[0054] Overlay model: One or more clusters of nodes that explain the relationship between elements in the system and can illustrate the propagation of state values in a graphical or traceable manner. A graphical representation or easily traceable description of the system's work, where the components in the disclosed nodes are related to each other, and all other elements related to the node are related to each other via the node.
[0055] Plan: An ill-defined process in which the steps in the process are sequenced in a way that is appropriate for the situation at hand. Plans often have a different level of objectives than the underlying processes they encompass.
[0056] Practitioner: A person with general experience in a business.
[0057] Predictive Schema: A cluster of software or hardware nodes or a software module that uses data and logic to identify patterns in non-Overlay nodes and primarily external data and bring it into Overlay, such as text in an external knowledge base and data in an external data model. It is used by the Overlay model to exchange data and text with external systems. It may contain business intelligence (BI) logic, pattern recognition, or similar logic.
[0058] Primary ways to learn more about a problem or opportunity: Methods to determine the most appropriate relevance to the problem or opportunity.
[0059] Problems / Failures: Problems and failures are nodes in a process, or can be nodes that represent goals, where an experienced practitioner would reasonably expect problems and / or failures or unresolved phenomena or phenomena with unresolved cause and effect relationships. Problems and failures, opportunities and successes, pressure points, goals are all considered nodes.
[0060] Process: A set of activities that serve a set of goals and conditional objectives. Can range from rigid processes to established processes to newly established processes to initiatives that have yet to be put into practice.
[0061] Process nodes: Parts of a process where experienced practitioners expect noteworthy results and information, such as problems and opportunities.
[0062] Processing Power: The processing power of a processor hardware component, which refers to the speed at which the processor processing unit can process work.
[0063] Propagation: A change in the value of a node that progresses along a series of connected nodes by causing the node value to be connected through logic that is arranged to transmit the new value along a path of propagation and execution. Different contexts for the same node otherwise describe different propagation paths.
[0064] Relevance criteria: A method of expressing relevance that helps model or structure enterprise activities. Relevance criteria are primarily determined by nodes and their states, including context and logical links between nodes and similarity links between nodes in different abstraction layers. Relevance criteria can also include aspects of cognitive structures assigned to nodes, such as roles, users, workflows, participants, and other concepts that help practitioners determine relevance. Relevance criteria can also be presented through clusters of nodes configured in a specific way.
[0065] Risk: Potential impact. It can be positive when it corresponds to an opportunity, or negative when it corresponds to a problem.
[0066] Role: A stakeholder in the process being simulated in the system. This usually means that the role is a stakeholder in the computer simulation of the process and not necessarily a participant in the corresponding real-world process. The role is related to the simulation of the process that the system users are able to see and have access to.
[0067] Root Cause: An occurrence or potential occurrence that is believed to be the reason why a cause occurred.
[0068] Script: A process that is performed consciously or unconsciously due to rigidity.
[0069] State Model: A model of the data collected in the system.
[0070] State parameters: The circumstances surrounding a node, including context and when to change a new state value. State parameters accompany nodes, and each node has its own state parameters. The primary state parameter is the context, but others may exist. In software engineering terms, a state parameter is anything that defines how a system or its components change within a system. Examples of state parameters and states for a node are: Node; "Transfer monthly salary to crew" Context "Crew", Actor Context; "MoneyGram", State; Payment Date "May 12, 2017", State Timestamp "May 12, 2017", Role 1) Payroll Specialist, Role 2); Crew.
[0071] In a similar example; Node; "Transfer monthly salary to crew members" Context "All crew members", Node state; "Risk of not getting paid on time", State timestamp '"January 1, 2018", Role 1): Salary Specialist, Role 2); Fleet Captain.
[0072] Each node can have many contexts, which are the main state parameters, but not the only ones that define the environment. States are timestamped. All situation descriptions, in addition to the actual node state value, can be considered as states. State values can also describe the state of a particular situation.
[0073] Overlay nodes and corresponding base nodes: Overlay nodes are a class of nodes that are accompanied by base nodes. Overlay nodes are nodes that appear in the context of other nodes (underlying nodes). Both overlay nodes and base nodes are activities, not contexts. The difference between these nodes and other context-specific activity nodes is that the base node is an activity and has more than one propagation path to other nodes, most of which are not in the same node cluster as the overlay node. In the case of contexts of non-overlay nodes, the context itself is not an activity, but a description of a node that is context-specific. A node's context description is also not logically linked to other context descriptions of other nodes, unless the node assigned to it is logically linked.
[0074] An example of an overlay node is a legal dispute overlayed on an underlying node, which might be a business process related to the legal dispute. Similarly, a pricing or payment process might be an underlying business process, such as repair. The propagation of an overlay process is not directly related to the propagation of an underlying process, but is described by the underlying process and follows a different propagation path than the same overlay process with other underlying nodes. For example, the same overlay process for pricing or payment might be about a shipping process instead of a repair process and follow a different propagation process for pricing or payment purposes for shipping than for repair processes.
[0075] Traceability: The ability to follow a logical execution path through a series of nodes and see the values of nodes change.
[0076] Upgrade: The ability to change and implement a node and / or its position in a cluster of nodes and links to other nodes and / or change the logic connecting nodes and / or change the state of nodes, thus changing the machine-readable behavior of the system. Traditional software upgrades typically involve changing entity relationships and / or changing entity attributes and / or changing transformation logic.
[0077] Volatile Memory: Computer memory that requires a continuous supply of power. Summary of the invention
[0078] Disclosed herein is a system and method for embedding data and code from at least one layer of abstraction model onto a semiconductor chip (microprocessor). Embedding code on the chip significantly improves performance, perhaps by a factor of 1,000, compared to when the stored software uses a general storage and retrieval language (such as SQL) and there are separate domain processing code on separate servers. Embedding code on the chip can improve performance and security compared to traditional distributed server processing.
[0079] The advantage of at least one layer of abstract models embedded in the chip is that the time for preparing new software logic and new data is greatly reduced compared to traditional multi-attribute entries and separate codes. BRIEF DESCRIPTION OF THE DRAWINGS
[0080] Figure 1 The operation of conventional software code known in the art is shown.
[0081] Figure 2 The operation of the software code using at least one level of abstraction model is shown.
[0082] Figure 3a It is shown that in the first embodiment of the at least one layer abstraction model, the similarity of nodes is determined using abstraction layers.
[0083] Figure 3b Shows Figure 3a At least one layer of abstract model to external applications.
[0084] Figure 3c The data conversion operation is shown.
[0085] Figure 4 The causal relationships between enterprise business nodes modeled in the overlay are shown graphically.
[0086] Figure 5 Different causal path lengths leading to the same goal are shown graphically.
[0087] Figure 6 A state diagram is graphically depicted showing a traffic node in one of two possible states, a) in a critical state or b) in a non-critical state.
[0088] Figure 7 This is an example block diagram of a domain overlay model computing unit.
[0089] Figure 8 is a block diagram of a grid of computational cells of a domain model.
[0090] Fig. 9 is a block diagram showing a system comprising a central processing unit and a plurality of subordinate partial units, each of which is assigned a role or stakeholder.
[0091] Fig.10 is a block diagram showing how to transfer a domain model from one partial unit to another partial unit.
[0092] Fig.11 is a block diagram illustrating system adjustments for unexpected insertion or removal of new nodes during runtime. DETAILED DESCRIPTION
[0093] As enterprise systems grow for use on small portable computing devices such as smartphones and tablets, they will need to work offline, sometimes in difficult conditions where communication with a central coordinating computing facility is discontinuous. This requires small portable computing devices to operate with considerable software capabilities in an offline state. This in turn requires these computing devices to have an enterprise software application that is partitioned to suit the user and device. This in turn requires data model partitioning, as small computing devices will not be able to store or process a copy of the entire enterprise data model. Partitioning enterprise systems to accommodate the ever-changing current environment requires a unique enterprise model that can be partitioned in a variety of ways that could not be foreseen at design time.
[0094] Disclosed herein are:
[0095] (1) Methods to make processors and storage more targeted to enterprise applications, thereby improving processing efficiency and reducing vulnerability to cyberattacks;
[0096] (2) addressing software incompatibilities between IoT components and componentized software by enabling traceability of logic within systems and between systems of different design origins, as well as abstraction of semantics and logic between different systems that need to expose their logical workings for purposes of interoperability, compliance, coordination, etc. This helps manage the huge potential problem of software compatibility when there is no overarching stakeholder for the system; and
[0097] (3) Rapidly modify software to adapt to unforeseen changes in ongoing emergencies. This is a remedy for incompatibility of independently developed IoT or other software components and solves the problem of needing to modify software during use. It also provides redundancy in the event that hardware used in an emergency is prone to wear and tear. "Rapid" usually refers to the time period for system recovery or upgrade in an emergency.
[0098] The enterprise data model is partitioned during the later stages of design and implementation. Components of the data model apply to different independent processing and storage units. This partitioning of the data model enables these independent processing and storage units to work independently when offline and to collaborate with the central enterprise model when online. The ability to partition the data model to suit the situation in turn provides the benefit of allowing the occasionally offline system to adapt to the role and situation envisioned.
[0099] The emergence of cost-effective methods to manufacture computer boards using commodity central processing units (CPUs), memory, specialized devices (e.g., WiFi, proximity sensors, accelerometers, etc.) has opened up new opportunities for developing compact, high-performance and secure hardware / software combinations. The development of such computer units requires new software development processes.
[0100] Overlay provides unique advantages in terms of independence of processing units, interoperability of independent processing units, and software upgrades when network domain IoT and ecosystems emerge, enterprise system recovery when one or more processing units are not operational, and reorganization of computing facilities when stakeholders change. In this regard, Overlay-based models can be used to represent dependencies, requirements, or constraints between different configurations of IoT devices. Any violation of such dependencies, requirements, or constraints will pose a threat to or destroy interoperability. For example, the Overlay model can represent that IoT device A requires ASCII input and depends on input from IoT device B and IoT device C. Here, conflicts that arise between the output / input data formats from IoT device B or IoT device C to IoT device A at runtime will constitute interoperability conflicts. This is possible because Overlay modeling allows separation of concerns through a collection of node clusters and their logically connected individual states. In this example, this node cluster will represent what each IoT device does or needs as an independent unit.
[0101] To understand the operation and benefits of the proposed Overlay model, we briefly consider the operation of conventional software code. Figure 1 The operation of conventional software code known in the prior art is shown. A piece of software code 42 written in any software language typically uses a table 44 in a relational database management system (RDBMS) such as SQL to store, modify and retrieve data. In alternative exemplary embodiments, other database management systems (e.g., noSQL) and other data structures can be used for data processing. Table 44 can contain data related to, for example, people (tblPersonsToBuilding), roles (tblRoles), events (tblEvents), etc. Each table has an associated identification value, such as PersonlD, Roleld in the example above. The identification value acts as a "keyword" for identifying and matching data across tables, and allows, for example, locating information, actions, and events related to a specific person. To achieve this functionality, the same keyword can be used in more than one database table.
[0102] The software code 42 can therefore use SQL queries to retrieve data records from the RDBMS 44. These data are also stored in one or more query result tables 46 and then manipulated by algorithms implementing the business logic (ie, software code) according to the desired process (ie, user actions).
[0103] The above methods are commonly used in modem software to accomplish the following tasks:
[0104] - Retrieve the required information;
[0105] - read data about the retrieved information;
[0106] - assign data to algorithm variables;
[0107] - Perform the corresponding code verification section for the specific use case of interest; and
[0108] - Reference is made to a reusable stored procedure (ie software code) for executing an event 48 (ie user action, eg "lock door") associated with a result 50 (ie event state, eg "door state").
[0109] One problem with this prior art software structure and operation (i.e., unmodeled software code) is that such code cannot identify the context of an attribute because it is not possible to attach context to a selected data point. This is better understood by considering a portion of an example event table 52, which stores events using their "Id" 54 and status "Status" 56. No other information that can be used to identify the context of the event or its attributes is stored or associated with the event.
[0110] This prior art encoding model can add two attributes in one propagation stage, but cannot connect multiple propagation stages because the code consists of at least two parts, namely the data retrieval part and the propagation part. Neither of these two parts contains metadata, which can distinguish the state of an event (or node) and thus distinguish the relevance and association of the node with other events (or nodes). In addition, and more importantly, neither the data model nor the data retrieval mechanism provides enough state information for each event (or node) to allow the propagation path to be identified by the system in the form of a causal model.
[0111] This feature of popular software encoding methods (such as Figure 1 ) limits the functionality of code in modern enterprise and critical use cases where generality is required to adapt to changing circumstances, system architectures, parameters, etc. These changing environments and conditions require the use of software that can be adjusted, reconfigured, and upgraded in a timely manner to reap the benefits while still operating in complex systems that are also in continuous hot reconfiguration (i.e., at runtime).
[0112] To overcome Figure 1 Based on the limitations of the software model, this Overlay model is proposed. Figure 2 The execution of software code using an Overlay model 60 is shown. The Overlay model 60 uses the concept of nodes 62, which represent problems / failures and opportunities / successes within a process in an enterprise (or other) environment. The nodes are interconnected in a node cluster 64. Each node 62 retrieves its value from a file and does not require a retrieval query in a database system, which needs to be run at runtime.
[0113] In Overlay, all information is part of the model, so each node calls upon its own information through state values. Unlike the prior art, there is no need to run queries on an external data model, so the computer-readable coded logic embedded in the Overlay model lacks any retrieval aspects of the external data model, and discontinuities in the computer-readable logic are eliminated to accommodate retrieval. The code of the prior art cannot be a model because the retrieval process and logic are adjacent to the transformation logic, making it difficult to trace one transformation and its data to the transformation and its data that immediately follows it. That is, the code cannot be a continuous model because it is interrupted by retrieval queries that are not an accurate description of the state of the nodes processed by the code, so one stage of propagation cannot be linked to the next to form a model.
[0114] To ensure the uniformity and integrity of data, Overlay uses the location and state of nodes, as well as the logic between nodes to clearly define the dependencies between nodes. Figure 3a , 3b The location of nodes connected to other nodes shown in 3c allows enterprise models using Overlay nodes and their standard representation to be compared with other data models, such as entity-relationship data models and similar models, and to verify the semantics and relevance of data in such models by comparing the same nodes in the Overlay with nodes in the entity-relationship model. This in turn helps to highlight duplicate information in such entity-relationship data models and helps to outline the flow of logical transformations in the coded logic. This expression of traditional data schemas and code in Overlay terms has several benefits, some of which will be discussed elsewhere in this article.
[0115] The location of stored values in the storage mechanism or cache is determined solely by the Overlay model through nodes and links that indicate the relevance of one node and its state (context) to another node and its context.
[0116] In one embodiment, each node obtains its value to be passed to the runtime mechanism from a non-volatile storage mechanism or from a volatile memory cache. In one aspect, these links and states can be stored in a file containing all nodes of the Overlay model. In another aspect, there is a storage file for at least one node, and each of these files is connected by a path to the corresponding node. Therefore, the system and its users can select nodes for processing at runtime, for example, by node IDs from which values can be retrieved directly and unambiguously.
[0117] The use of nodes 62 and node clusters 64 is sufficient to enable Overlay model 60 to describe any enterprise (or other) environment. Each node link 66 contains software code that changes the value of the affected node (i.e., the target node) without including any location retrieval logic (i.e., avoiding access to database tables), thereby speeding up operation and facilitating model rearrangement. Like node links 66, these node links have specific data / state propagation directions.
[0118] The Overlay model 60 uses the context associated with the event as the main part to describe the state of the event. By way of example, we can consider which "building", which "role", which "person", etc. accompanies each node 62. In addition, each node 62 has a state value. Therefore, the node state and node status are visible in the Overlay model 60 and are accompanied by the adjacent code in the links 66 between the nodes 62. This feature of the Overlay model 60 allows traceability of the nodes 62, the node states, and the potential causal relationships between the nodes, and therefore the relevance of the nodes relative to each other. This feature in turn allows adaptation to the rearrangement, addition and deletion of nodes, which reflect real-life changes, such as those related to the enterprise, without losing traceability to the people or machines that changed.
[0119] Overlay and its relationship with general programming languages: The Overlay model represents the state value of each node, the state of each node based on the context-based propagation path through the context, and the logic of converting a node state value into the state value of the affected node. The affected nodes are compatible in context and other state parameters. Since the state parameters of each node in Overlay are described in the model and each node is set with state parameters, the state value and conversion logic need to be converted into a language that the operating system can understand. The state aspect is handled by the model itself and does not need to be converted into a language that the operating system can understand.
[0120] So, for example, when executing on Linux or similar environments, the state values and logic displayed in the Overlay are converted to Linux or similar code. The same can happen for other programming languages and environments, such as Microsoft.net, or any higher or lower level programming language.
[0121] In other examples, Overlay is not used for processing, but only for conversion from a model to any programming language. This may be useful, for example, to convert an Overlay model with many traceability and abstract features described in other parts of this disclosure into a system or environment that cannot process the Overlay model itself but can only process specific code. For example, smart contracts are a form of software development that typically specifies the language used to execute the software. For example, Solidity is a language used by the Ethereum smart contract environment, which is in turn associated with a block chain. Therefore, in one embodiment, the Overlay modeling approach can be used to build software for a variety of environments, such as building software for IoT devices, where Overlay provides traceability and many related advantages, and smart contract transactions related to IoT devices can be executed in Ethereum by converting the Overlay model into Solidity code.
[0122] In this case, information such as status parameters, instantiation parameters, and data models also need to be passed to the underlying operating system because the Overlay model is not used to process the Overlay model, but the entire model is converted into an appropriate language, such as Solidity. The process of conversion is a model-driven engineering process, and Overlay can be used for modeling and converted into one of the above software languages for processing. This makes it possible to model the software in Overlay and then convert the model into a language like Solidity, so that the Overlay model can be converted into a domain-specific or other development language environment.
[0123] In another example, logic development in the Overlay layer is templates and abstractions of logic. Overlay logic can be developed as templates of abstract logic. Templates help Overlay developers develop faster, with less effort and fewer errors. It also helps with the abstraction of the Overlay layer by allowing templates to be compared to compare logic between nodes in different abstraction layers. The combination of node abstractions and logic templates in turn helps in many of the ways mentioned elsewhere in this specification, especially in drawing similarities through abstraction layers and monitoring different systems and their functions for compliance with requirements and regulations. A special aspect of templated logic is target proximity, but a lot of templated logic is often used in software development, although this has included relational data model queries and other aspects of traditional coding that are not used in Overlay to avoid opaque traceability.
[0124] The Overlay model can be used as a conceptual model or it can be executed on live data. This paper has described the ability of the Overlay model to execute on live data. It also describes the importance of a conceptual model that can execute on live data. A published paper, Implementing the Executable Conceptual Model (ECM) , author: Dr. Reinhold Thumer, Rebweg 21, CH8700 Kusnacht, Switzerland, explains the challenges and describes an alternative approach.
[0125] Abstraction in the Overlay Model
[0126] Overlay can be described as a model of enterprise activities at one or more abstract levels. An abstract layer can be: A) a node cluster with many semantically identical nodes described by parallel propagation paths in different contexts, which do not converge between the propagation paths depicted by the parallel contexts within the cluster, and may converge at a node somewhere downstream in the propagation path. B) An abstract layer can also be semantically similar nodes in a cluster of parallel propagation, which do not converge between layers, and nodes at different abstraction levels correspond to each other by similarity. There can also be a combination of (A) and (B) in Overlay. Figure 3a and Figure 3b The use of abstraction layers to determine the similarity of nodes in an Overlay model is shown. As an example, let us consider the scenario of an enterprise model that represents enterprise operations, enterprise processes, their states, as well as opportunities, risks, etc. Looking at the exemplary embodiment of the entire Overlay model 200, we see that it is broken down into multiple abstraction layers, each conveying a different amount of detail. At the highest level of abstraction 210, we find clusters of abstract nodes that represent operations that have a significant impact on the enterprise, such as operations related to various vertical businesses including construction, manufacturing, and shipping. Like node 215, each node represents a problem / failure or opportunity / success (e.g., significant impact collateral damage) and is associated with a context 217 (e.g., multiple vertical enterprises). At this level of abstraction, an overall goal is described (e.g., managing significant impact processes) and few process details are included.
[0127] Moving towards the second level of abstraction 220, more detailed node clusters are defined to provide more detailed goals (e.g., load / discharge any tanker vessel). Cluster 220 is divided into sub-clusters 221, 222, 223. Node 225 in cluster 222 is associated with a context 227 (e.g., all types of tankers) (similar to all other nodes of the second level of abstraction 220) and is directly linked to node 215 of the higher level (in this case the highest level) node cluster 210 (a one-to-one link between nodes).
[0128] Cluster 222 contains higher-level goals and contexts to which we can assign details 221 , 223 because we are at a lower level of abstraction and therefore define the domain more specifically than the multi-vertical enterprise.
[0129] In an alternative exemplary embodiment, a node at a higher abstraction level may be directly linked to more than one node at a lower abstraction level (1 to N links). This may be the case at any level of abstraction.
[0130] Moving toward the third layer 230 of the lower abstraction level (divided in sub-clusters 231, 232, 233), more detailed node clusters are defined to provide more detailed goals / processes (e.g., Emissions Class A Tanker Ship). Node 238 in cluster 232 is associated with context 239 (e.g., Class A Tanker Ship) and is directly linked to node 225 of the higher level (second abstraction level) node cluster 223. This abstraction level 230 may contain more details than the higher abstraction level 220. In this illustration, this higher level of detail is not shown for simplicity and ease of visualization.
[0131] One layer below is the fourth abstraction layer 240, which is a layer containing the base model of the first application that performs the first task (e.g., discharges a specific Class A tanker ship using the first application software). The model of the first application in cluster 240 can be divided into sub-clusters 241, 242, 243, 244. Node 245 in cluster 241 is associated with context 247 (e.g., Class A tanker ship XI) and is directly linked to node 235 of a higher-level (third abstraction layer) node cluster 232 to transmit data to the higher-level cluster 235. Cluster 241 contains more details than cluster 231, where cluster 231 belongs to a higher level of abstraction. Node 255 in cluster 241 is associated with context 257 (e.g., Class A tanker ship X2) and is directly linked to node 235 of a higher-level (third abstraction layer) node cluster 231 to receive data from the higher-level cluster 230.
[0132] The other nodes 248, 249, 250 in the fourth abstraction layer 240 are connected to the prediction mode module 258, which contains the nodes 248, 249, 250 and the external application 1 data table 259 ( Figure 3b ) in the data table 259. The predictive pattern module 258 also extracts context from the appropriate columns of the data table 259 and passes it to the corresponding context labels of the nodes 248, 249, 250, respectively. In an alternative exemplary embodiment, the predictive pattern module 258 exchanges information (e.g., text and / or other data) with an external system and may also include business intelligence logic to recognize patterns (e.g., in text data).
[0133] The external application 1 data table 259 is created by an external application 1 290 , which in an exemplary embodiment includes one or more client devices 291 (e.g., a desktop or portable computing device or IoT device, including a smart phone) that communicate with an application server 292 , which also communicates with a database server 293 .
[0134] The fourth abstraction layer may also contain base models for additional applications, such as a model for a second application at cluster 260 that performs a second task (e.g., discharge and unload a specific Class A tanker vessel using a second application software). Cluster 260 may also be divided into sub-clusters 261, 262, 263, 264.
[0135] Node 265 in cluster 261 is associated with context 267 (e.g., Class A Tanker Ship Y1) and is directly linked to node 235 of higher-level (third abstraction layer) node cluster 230 to transmit data to higher-level cluster 230. Cluster 264 contains more details than cluster 230, which belongs to a higher abstraction level. Node 275 in cluster 262 is associated with context 277 (e.g., Class A Tanker Ship Y2) and is directly linked to node 235 of higher-level (third abstraction layer) node cluster 230 to receive data from higher-level cluster 230.
[0136] The other nodes 268, 269, 270, 271 in the fourth abstraction layer 241 are connected to a prediction mode module 278, which contains software code that associates the nodes 268, 269, 270, 271 with attributes in the external application 2 data table 279. The prediction mode module 278 also extracts context from the appropriate columns of the data table 279 and passes it to the corresponding context labels of the nodes 268, 269, 270, 271, respectively.
[0137] In an alternative exemplary embodiment, predictive pattern module 278 exchanges information (eg, text and / or other data) with external systems and may also include business intelligence logic to recognize patterns (eg, in textual data).
[0138] The external application 2 data table 279 is created by an external application 2 295, which in an exemplary embodiment includes one or more client devices 296 (e.g., a desktop or portable computing device or IoT device, including a smart phone) that communicate with an application server 297, which also communicates with a database server 298.
[0139] The purpose of connecting the nodes 245, 255 of the fourth abstraction layer 240 and the nodes 265, 275 of the cluster 260 with the node 235 of the third abstraction layer 230 is to integrate the attributes stored in the tables 259, 279 through data conversion operations. As explained, this is facilitated by the prediction mode modules 258, 278.
[0140] exist Figure 3a In the exemplary embodiment of -b, nodes at a higher abstraction level can be directly linked to nodes at a lower abstraction level (one-to-one link), where the positions of the two nodes are related in the corresponding node clusters by similarity. In other words, if we consider the lower abstraction level to be semantically similar in nature and similar in causal logic to the higher abstraction level, but fleshed out with more detailed nodes, then the nodes at the higher abstraction level and the nodes of the corresponding parts of the lower abstraction level are directly connected by similarity, which is different from causal relationships. For simplicity, except Figure 3a -b, other than some similarities between the abstraction layers, not shown.
[0141] Figure 3c An integration model 386 can be visualized by connecting application 1 model 382 (associated with context 383 and containing data "X") and application 2 model 384 (associated with context 385 and containing data "Y") to form a combined integration model 386 (associated with context 387 and containing data "X&Y").
[0142] Accompany Figure 3a-3c The disclosure explains how to track basic applications with common functionality by dividing the Overlay model into several levels of abstraction and detail, and how to use the traceability of the model by combining data and logic in the same model. It is possible to integrate all these concepts into an explicit model that also describes the basic functionality. The basic functionality can be abstracted because the semantics and exact state of each attribute in the layers below (i.e., more detailed layers) can be tracked, and the logic can be applied to the abstract layers that follow the logic of the layers below. This is the benefit of the Overlay model because it cannot be done using conventional conceptual models and conventional non-model software because in conventional programming and models, conditions are not defined for each attribute, and the logic is not purely defined as machine-readable correlations (as in the Overlay model). In contrast, the logic in the prior art includes retrieving many attributes that cannot be parsed to fully identify source nodes in a continuous model. The prior art logic also includes implicit but not explicitly modeled conditions. Traditional logic also includes conversion logic, which cannot be easily abstracted for modeling purposes because it does not involve any attribute semantics.
[0143] There are several related reasons, in addition to abstracting logic, as to why the entity-relationship modeling and separate logic of the prior art cannot be abstracted in the sense described herein. One reason is that in the prior art, the data model does not define attributes and their conditions separately, or does not distinguish attributes and their conditions from the entities (with many attributes) from which these attributes originate. Therefore, attributes do not have autonomous identities and conditions in the data model or code. Therefore, in the prior art, attributes cannot be connected by logic to form a causal model so that clusters of nodes at various levels of abstraction can be modeled. Entities or objects can be abstracted into more generalized versions, but generalized entities or objects do not constitute a model like in Overlay, where nodes are connected together by causal relationships. Therefore, directly comparing entities and objects at different levels of abstraction can only result in a yes or no match result. There can be no similarity comparison because there is no activity / process / goal model in the separate entities or objects. Similarity comparison requires logic to associate attributes with logic to define how the attributes serve the process and goals. Another way of saying it is that similarity requires data schemas and embedded code so that functions can be compared to draw any conclusions about similarity. See also the discussion elsewhere in this specification on the importance of abstraction over similarity and the importance of similarity comparisons, especially when various stakeholders require tangible compliance standards regarding features and capabilities to meet expectations of systems they cannot control but on which they depend in some way.
[0144] Above and Figure 3a , 3b The various Overlay models at the abstraction levels discussed in 3c can represent any software application and are not limited to high consequence operations or tankers. Abstraction can also be used for many purposes, including but not limited to showing similarities between the underlying systems 1 to N in each of the abstraction layers below, showing Figure 3b and 3c The integration points between the display systems shown provide a means for monitoring, regulating, and normalizing the base systems 1 to N, as well as many related purposes.
[0145] Furthermore, abstractions of the Overlay model semantics and comparisons of the actual functionality of the model can be performed across domains. This can be achieved with the help of an Overly model that includes node clusters, target proximity between nodes, other logic between nodes, actor and stakeholder assignments to nodes, contexts / conditions assigned to nodes, units of quantity assigned to nodes, and other criteria mentioned here.
[0146] There are different ways to propagate values between nodes. As an example approach, Figure 4The causal relationships between the enterprise business nodes modeled in Overlay are graphically shown. Overlay runs in a continuous reasoning cycle. At runtime, when new information data is input into the system from a sensor, a user, or another system, the source node 10 connected to the data applies the verification logic and the status change logic, and then updates its status and risk (activation) status accordingly. The outgoing link 12 of the source node 10 is used to propagate the information and the state of the source node (for example, it may be in danger or its value changes trigger propagation) to other nodes connected via these outgoing links in the model. Once the outgoing link 12 is activated, its value propagation logic 14 is applied to send information to the target node 16. When the target node 16 obtains a value from its incoming link 18, the same cycle is repeated. Even if the source node 10 is activated (in danger) and its outgoing link 12 is triggered, the node in danger is only displayed to the user in the appropriate context. This allows the user to view only nodes belonging to the correct context during the consultation session.
[0147] The inference cycle for a given node is described in the following list of steps and is applicable to each node:
[0148] Step 1 :Information (data node) or internal / external events are provided as input to the business node through the incoming link.
[0149] Step 2 : After a node receives data through its incoming link:
[0150] a) trigger its logging facility;
[0151] b) Trigger its verification logic. If its verification logic allows, go to step 2.c;
[0152] c) triggering its status change logic, assessing its risk level and status (i.e., changing from non-risk to risky or vice versa), and then starting step 2.d. When the node's status change logic indicates so upon receiving input through an incoming link and in accordance with its verification logic, the node will be in danger or cease to be in danger or reach a stable value that does not change. For example, the target node N1 may have three incoming causal links with source nodes N2, N3, and N4. Assume that N1 is currently in danger or has a certain state value. One incoming link may provide a value from source node N2 indicating that node N2 has just become non-risky or has a value that does not cause propagation, while the other two source nodes N3 and N4 are still in danger or have values that cause propagation through the causal logic originating from each node N2, N3. If, for example, the NTs verification and state change logic requires that all nodes N2, N3, and N4 are not at risk or that N1 is not at risk or does not require a state change, the NTs verification logic and state change logic can determine that N1 remains in a risk state or in a state waiting to change. When dealing with scarce resources (e.g., in an emergency), evaluate nodes that are closer to high-level enterprise goals first;
[0153] d) If the context of the node matches the user's role and / or the node is in the context where the current negotiation session is taking place, then display to the user that the node is at risk. If no context information is available for the node, then it will acquire the missing context information from the reasoning path executed so far. For example, assuming 10 ships with different names as context can be propagated to other 10 nodes with corresponding ship context until it reaches all ship nodes without ship context and summarizes the state propagated for each individual ship. The process proceeds to step 2.e;
[0154] e) A user interface (UI) node is notified, and based on the alert level of the service node, the client UI device / display re-arranges the information sorted according to the alert level of the displayed node. The UI node may be notified immediately or after a predefined set of service nodes are notified (i.e., accessed by the process); and
[0155] f) Trigger the outgoing link and execute its value propagation logic to calculate the target proximity score or other value based on the node state and the unit of propagation logic. If there is no outgoing link, the process terminates. If there is an outgoing link, the process proceeds to step 3.
[0156] Step 3 : Once the outgoing link is activated and its value propagation logic is calculated, the calculated information and value are fed into the link’s target node and step 2 is executed.
[0157] Models preferably converge. That is, loops should be avoided. However, loops may occur in incomplete models due to incomplete feedback loops or incomplete model merging. Loops may provide infinite oscillations in the situation and can cause the process to continue forever. To avoid infinite oscillations, the system records the global state of its model (the state and context of each node), and the reasoning process terminates if the current global state of the system / model is the same as the state (oscillation) that has been reached previously. Feedback loops can be avoided when the model is fully defined by node decomposition, thereby reducing feedback to the cause and effect nodes after each repetition.
[0158] Even though the propagation of values is entirely implemented by domain / business nodes and their state parameters and the propagation of values via logic between nodes, the semantics of the overlay model is such that target proximity as a relevance criterion can be the primary factor in the overlay for calculating the "strength" of values propagated through links when needed. For example, if a value is transmitted through links along a path, the "strength" or "importance" of the value is high when the process reaches a high-importance node as a function of the steps and logic of the path. Therefore, nodes closer to the target may have higher importance than other nodes. Even though these concepts can be enforced, the semantics of the model allow for such a concept of path length and target proximity. This is the primary method for prioritizing model propagation when processor processing resources are lower than required so that important processes can be processed first.
[0159] In the example of target proximity processing, the proximity (G, N) of a business node N relative to a target business node G is a property of business node N, which refers to how close node N is to node G in terms of the length of the inferred causal path, and / or the strength of the causal relationship from node N to node G (i.e., how much business node N contributes to the increase or decrease in the risk level of node G). For example, a path from node N to node G has a length of 10 (i.e., it has 10 links from N to G), but so far, 6 links along the path have been activated (e.g., from node N to node N6). Note that the target proximity of a node such as N6 to a target node G can be determined by the length of the remaining path (i.e., 4 in the above example), or as a function of the strength of the weights (i.e., weights) along the remaining path from N6 to G. An example of such a function might be the average of the weights along the path. For example, the strength of node N6 might be (w 6,7 +w 7,8 , s+w 8,9 +w 9,G ) / 4, where w 6,7 is the weight of the link from node N6 to node N6. Another example of such a function could be all P j (Σ i=1..k w i,m) / k 2 The target proximity on (N, G) = max, where P j is the path from N to G, k is the path P j The length, w i,m is the path P j Middle Node N i To Node N m Other functions that take into account all weights along the inference path (e.g., the weights of the links that have been traversed and the weights of the remaining links pointing to the goal node G).
[0160] The inference path length from a service node N to a target node G is defined as the path length (in graph theory terms) formed by the causal links from the service node N to the target node G. A service node N may have different causal paths to the target node N. Figure 2 As shown, each such path has its own length, so the longest path and the shortest path can be defined. In any case, the length of each path is determined by the links from node N to the target node G that have been activated so far. For example, one of the paths from node N to node G has a length of 10 (i.e., it has 10 links from N to G), but 6 links along the path have been activated so far (e.g., from node N to node N6). In this regard, the target proximity along this path is 4, the length of the path traversed so far is 6, and the current inference path from N to G is 10. Note that the target proximity of a node (e.g., N6) to the target node G is determined by the length of the remaining path (i.e., 4 in the above example), or as a function of the strength (i.e., weight) of the weights along the remaining path from N6 to G. An example of such a function might be the average of the weights along the path. For example, the strength of node N6 might be (w 6,7 +w 7,8 , s+w 8,9 +w 9,G ) / 4, where w 6,7 is the weight of the link from node N6 to node N7. Another example of such a function could be all P j (Σ i=1..k w i,m ) / k 2 The target proximity on (N, G) = max, where P j is the path from N to G, k is the path P j The length, w i,m is the path P j Middle Node N i To Node N m The weight of the link.
[0161] The progression of reasoning along all nodes can be seen in two different ways: a top-down model; and a bottom-up model.
[0162] In the top-down mode, the user or a third system selects one or more goals to be achieved and the context in which these goals should be maintained. In the top-down reasoning mode, the reasoning process attempts to verify all nodes that contribute to satisfying the selected goals.
[0163] In the bottom-up mode, the user or a third-party system provides the context and all available data and all relevant (connected) Overlay nodes are activated. Therefore, the activated nodes (i.e., the nodes that change state) can activate other nodes through causal links. The process continues on a cycle of activating all activatable nodes and terminates (i.e., converges) when all activatable nodes and all links in the model have been activated and / or a previously seen global state has been reached. The global state is defined as the set of all states of all reachable nodes in the model.
[0164] The following algorithms are exemplary and provided for illustration purposes only. It is recognized that they may be re-evaluated, evaluated, and altered by the system designer to suit implementation objectives.
[0165] Top-down reasoning
[0166] Figure 5 The different causal path lengths leading to the same goal are shown graphically. The top-down global reasoning process for each goal G and context CTX is described by the following stages and steps:
[0167] Phase A Initialize the target and context
[0168] 1. Let G be the primary goal determined by the user or by an automated process based on past cases or past risk levels, opportunities and threats. Let the context of the session be denoted by CTX.
[0169] Phase B: Determine the path to your goal
[0170] 2. Let L = [L1, L2, ...L j ] is a list of lists (paths), where each path consists of process model nodes that reach a target node G via causal links (e.g., Figure 5 Paths L1, L2 and L3 shown in FIG.
[0171] 3. Let each list L in L j It is composed of process model nodes, so that L j =[G,A j1 , A j2 , Aj3 , ....A jn ](It is worth noting that each list L j The size of may vary, depending on the length of the path leading to the target node G.
[0172] Phase C: Create a work list
[0173] 4. Create a work list WL = [A 11 ,A 12 ...,A 21 ,...A 2n ,...A i1 ,A in ](i.e., by the list L in L j It is worth noting that there may be duplicate nodes in the working list WL because these nodes appear in different paths.
[0174] Phase D: Process Work List
[0175] 5. When WL has an element and the user has not terminated the session, execute, otherwise terminate
[0176] 5.1 Sort the WL in descending order based on risk, level, priority, severity, past experience, or context. The node with the highest score appears as the first element in the WL list. Let's call this node C k . It is noteworthy that this node appears on the path leading to G.
[0177] Phase E: Dynamic and context-aware interaction with users
[0178] 5.2 The corresponding process model node C in the user interface model k The node is set to U k , and C k Located in context C TX middle.
[0179] 5.3 If U k To get data from the user:
[0180] 5.3.1 Create a form to be sent to the client device so that the user can enter data k1 , D k2 , D k3 Etc. The logic for creating the table is embedded in each node U k and on client devices.
[0181] 5.3.2 If node C kIt is a node cluster in the process model. Please expand the node so that users can use the corresponding user interface module node U kX Properly provide each node in the cluster with the required data. If node C k is in sequential mode, then for each node in sequential mode, visit the node and execute it. Executing a node in sequential mode means that the code in the node runs, or the user performs actions as instructed by the node and its rendering logic, or reads or writes data from / to a data source / sink or a third-party external system. Node actions in sequential mode can be "synchronous" or "asynchronous". Synchronous means that all system execution will be suspended until this action is executed. Asynchronous means that the action proceeds independently and notifies the system that it has completed and provides any data to the system.
[0182] 5.4 If U k To get data from the sensor, call the read data D from the corresponding sensor k1 , D k2 , D k3 And other software.
[0183] Phase F: Value assignment for business model nodes
[0184] 5.5 Data D k1 , D k2 , D k3 etc. are fed to the data node IN k , and propagate the value to the business model node C k In this regard, node C k It now has its new value.
[0185] Phase G: Calculation of new node status and risk level
[0186] 5.6 Evaluating Node C k The new state S, risk level R and outgoing result F of each output link.
[0187] Phase H: Goal achieved
[0188] 5.7 If C k If it is the primary target node G, the result (i.e., the risk value of node G) is notified to the user and the process is terminated.
[0189] Phase I: Propagation of values to other nodes
[0190] 5.8 Propagating values, states, contexts, roles:
[0191] 5.8.1 Identify nodes directly linked to node C via incoming causal links k and all nodes N that appear on the path toward G k1 、Nk2 ,...,N kx , that is, node N k1 Node N k2 Node N kx , i.e. it appears as an element in the lists L1, L2, ..L i middle.
[0192] 5.8.2 For each node N k1 、N k2 ,...N kx
[0193] 5.8.2.1 Using slave node C k To Node N k1 、N k2 ,...N kx The value propagation logic of each link propagates the value.
[0194] 5.8.2.2 Using embedding at each node N k1 、N k2 ,...N kx The validation and state change logic in k1 、N k2 ,...N kx The new value of .
[0195] 5.8.3 Delete node C from list WL k .
[0196] 5.8.4 Go to step 5.10.
[0197] Phase J: No need to spread
[0198] 5.9 If for some reason, C k There is no guarantee that its value and state will be propagated to other nodes connected to it (i.e. the propagation sequence is cut off), and node C is deleted from the list WL k .
[0199] Phase K: optimization
[0200] 5.10 For optimization purposes, the system may remove other nodes from the list WL that are no longer relevant or have lower scores.
[0201] Phase L: Iterative Steps
[0202] 5.11 Go to step 5.
[0203] It is worth noting that G can be an artificial highest goal, making a set of target nodes converge to the target node L G list, or make it from the target node L GA target node of the list. For the list L G Each target node G in i , will start the above process. The final design consideration for any inference algorithm is how to handle loops in the model to avoid infinite loop propagation or oscillation (the global state of the model - the collective state of all nodes - oscillates from one global state to another). The main approach is to decompose the slave nodes in the slave part of the loop to ensure that the loop feeds back to some slaves or intermediate nodes and their logical links, thereby reducing the loop.
[0204] Bottom-up reasoning
[0205] Similarly, the input data D = {d1, d2, ... d n The bottom-up global reasoning process of} and context CTX is described by the following stages and steps:
[0206] Phase A: Initialization workload
[0207] 1. Let the work list WL be WL = [N1, N2, ..., N k ], where N1, N2, ..., N k It is the business node that is immediately affected by the data in D.
[0208] Phase B: Select a node and get data
[0209] 2. When WL has an element and the user has not terminated the session, execute, otherwise terminate.
[0210] 2.1 Sort the list WL by impact level or risk level. Other measurable criteria (e.g. priority, severity, past experience) can be taken into account by additional logic. Context plays such a role: at the time of propagation, the context of node N is matched with the data in data D to obtain a logical match of the context. In some cases, the context can be a priority criterion. The node with the highest score is displayed as the first element in the WL list. Let us call this node C k .
[0211] 2.2 The corresponding process model node C in the user interface model k The node is set to U k , and C k Located in context C TX middle.
[0212] 2.3 If U k To get data from the user:
[0213] 2.3.1 Create a form to be sent to the client device so that the user can enter data D k1 , D k2 , D k3 Etc. The logic for creating the table is embedded in each node Uk as well as on the client device.
[0214] 2.3.2 If node C k It is a node cluster in the process model. Please expand the node so that users can use the corresponding user interface module node U kx Properly provide each node in the cluster with the required data. If node C k is in sequential mode, then for each node in sequential mode, visit the node and execute it. Executing a node in sequential mode means that the code in the node runs, or the user performs actions as instructed by the node and its rendering logic, or reads or writes data from / to a data source / sink or a third-party external system. Node actions in sequential mode can be "synchronous" or "asynchronous". Synchronous means that all system execution will be suspended until this action is executed. Asynchronous means that the action proceeds independently and notifies the system that it has completed and provides any data to the system.
[0215] 2.4 If U k To get data from the sensor, call the read data D from the corresponding sensor k1 , D k2 , D k3 And other software.
[0216] Phase C: Assigning values to business nodes
[0217] 2.5 Data D k1 、D k2 、D ks etc. are fed to the data node IN k , and propagate the value to the connected business node C k In this regard, node C k It now has its new value.
[0218] Phase D: Calculation of new node status and risk level
[0219] 2.6 Evaluate node C by applying the value propagation logic for each outgoing link k The new state S, risk level R and outgoing result F of each output link.
[0220] Phase E: Propagation of values to other nodes
[0221] 2.7 Propagating values, states, contexts, roles:
[0222] 2.7.1 Identify nodes directly linked to node C via incoming causal links kAll nodes N k1 、N k2 ,...N kx .
[0223] 2.7.2 For each node N k1 、N k2 ,...N kx
[0224] 2.7.2.1 Using slave node C k To Node N k1 、N k2 ,...N kx The value propagation logic of each link is used to propagate the value.
[0225] 2.7.2.2 Using embedding at each node N k1 、N k2 、N kx The validation and state change logic in k1 、N k2 、N kx The new value of .
[0226] 2.7.3 Delete node C from list WL k .
[0227] 2.7.4 Add node N to WL by excluding any of these nodes that were previously present in WL (this is to avoid infinite iterations / oscillations) k1 、N k2 ,...N kx .
[0228] 2.7.5 Go to step 2.9.
[0229] Phase F: No need to spread
[0230] 2.8 If for any reason, Node C k The value is not guaranteed to be propagated to other nodes (i.e. the propagation sequence is cut off), and node C is deleted from the list WL k .
[0231] Phase G: optimization
[0232] 2.9 For optimization purposes, the system may remove other nodes from the list WL that are no longer relevant or have lower scores.
[0233] Phase H: Iteration Steps
[0234] 2.10 Go to step 2.
[0235] A business node can be in one of two possible states: a) at risk or b) not at risk. However, being at risk or not at risk is an aspect of state change and should not be viewed as just a harmful sense of danger. Being at risk or not at risk can mean that changes are to be made to the next node in the affected nodes, or that no changes are planned to be made to the affected nodes, respectively. Alternatively, being at risk can mean that the process requires the attention of stakeholders, while being at no risk can mean that the process has a low need for user attention. A state diagram that depicts this is shown in Figure 1. Figure 6 shown. Figure 6 It is described that a node can be in the AT-RISK state (S-01) or the AT-NO-RISK state (S-02). If a node is in state AT-RISK, and upon receiving input data (idatal) and in the current state (estate1), its state change logic function (SCL) can transfer the node from state AT-RISK to a new state AT-NO-RISK via transition T-01. Similar arguments apply to the other transitions. It is important to note that a node in state "AT-NO-RISK" can receive input data (e.g. idata4) in the current state (e.g. cstate4) and remain in the same state (see transition T-04).
[0236] Once a node changes its risk state, it propagates its attribute value to its neighboring nodes through its outgoing causal links. This may lead to the neighboring nodes N i Therefore, it changes its own state. This state change can be propagated through the model graph.
[0237] It is important to note that the examples above refer to risky nodes. In most cases, these examples can also refer to affected nodes without risk elements, such as the propagation of affecting the next node in a transaction, where the affected node, for example, releases the dessert after receiving the payment in a vending machine, or approves the supplier to the next processing stage in a bidding process after satisfying several price comparison algorithms.
[0238] Overlay also differs from the prior art in that the runtime engine is programmed to run transformations without running data location and retrieval queries associated with the relational data model as in the prior art. If data retrieval queries are used, the traceability of the domain model may be lost, so data location and retrieval queries are avoided in the Overlay domain model. Therefore, unlike the prior art, the Overlay runtime will not run relational data model queries in conjunction with the transformation algorithms. However, for any multi-stage computation in the domain, each Overlay domain model transformation algorithm must be able to reference those nodes and their state parameters that are linked to the transformation algorithm. But this reference to the node must only reference directly subordinate nodes, otherwise traceability may be lost.
[0239] In one embodiment of the Overlay propagation model, context is assigned to each node to describe the defining aspects of the state in the prior art, such as a key attribute of a business object that links several business objects and has its own attributes in yet another business object. Attributes that are entity attributes associated with context in the prior art as key identifiers can also become nodes in the Overlay and are connected to their active propagation locations in the Overlay propagation model of interconnected nodes through computer-readable logical links. For example, if a crew member is the context of a crew member's activity, such as receiving salary, then the "receive salary node" is assigned to the context of a specific crew member. However, if the emergency clothing requires the crew member's shoe size, and there is a node that represents "the crew member's shoe size matches the available emergency clothing", then the node representing "shoe size" becomes an active part of the model propagation, thereby ensuring that there is a match for the enterprise system. When both nodes are assigned the context of a specific crew member, the "shoe size" is connected to the "match of the crew member's shoe size with the available emergency clothing" through a causal link. In the prior art, the context of the crew member should have attributes, and the shoe size may be one of them. However, prior art systems do not accommodate code adjacent to an attribute such as "shoe size" that associates it with the node "match crew member's shoe size to available emergency clothing." Therefore, if the attribute is not incorporated as an attribute into the business object for the crew member, for which the crew member is a key attribute or context, the attribute may be lost in the traditional data model. The grouping of attributes in business objects such as crew members makes compatibility between separately designed systems more difficult for the following reasons. Unless these attributes are adjacent to logical links that describe how they are used in a cluster of nodes, the attributes are not semantically clear and therefore cannot be easily abstracted and compared for similarity. Attributes are also located in groups such as business objects that do not have computer-readable logical relationships between attributes in the business object and therefore cannot be assigned computer-readable similarities. Therefore, whether business objects or entities in the prior art are the same or different is, to some extent, uncertain to the computer. In Overlay, logical links and discretionary attributes (such as shoe size) are connected to the nodes they affect through computer-readable logic, so the semantics and location of these attributes (such as shoe size) in the data model are clear. IoT systems that need to interoperate benefit greatly from being described in overlay terms that include node states and adjacent links.
[0240] In one embodiment, an Overlay context is assigned to a node as a human-readable distinction from other contexts of a node with the same name. Thus, a context is a human-readable property of a node. For a machine, a context defines additional nodes of the same name that are identified separately. For a user interface in an Overlay, a context is a way to present many nodes in different contexts without repeating node names. In storage, each node with a different context is stored independently, regardless of whether the node labels are the same, so that each state value stored is not confused with the state value of a node with the same name and a different context.
[0241] Context identification in the sense of the domain enterprise in Overlay is achieved by identifying clusters in the domain model that can be associated with a context; that is, using context as a label to distinguish nodes of the same name with different contexts. These identification clusters can contain logic and weights to model how identification is actually implemented in the domain. For example, identifying people as crew members on a ship can simply use their first and last name when the software application that requires this identification is only planning to use the ship's re-creation facilities. However, if the crew list is used to identify crew members to be presented to immigration on shore, we need: full name, middle name, surname, we need passport number, seaman's card number, date of birth, shipboard rank, license number, etc. In a further example, to identify crew members assigned to key processes as participants, more identification may be required, including relevant attributes such as skills experience and more license details. Therefore, the combination of identification depends on how it will be used, and this involves logic and is therefore placed in the domain grid.
[0242] Overlay enables each node state to be associated with a node condition that includes a specific context or role assignment. Combined with adjacent logic, this means that model attributes gain specific semantics with the help of causal relationships. This is so because nodes and their accompanying logic are much better defined on the main body without having to spend a lot of effort to standardize semantics.
[0243] In another embodiment, Overlay enables abstraction of specific functionality into abstract functionality. For example, a repair job for a ship has dates when the ship and its components can be repaired. There are also resources that need to be scheduled to be available. There are also jobs that are prerequisites for other jobs, jobs that conflict when occurring at the same time, resources that are tied up on other jobs, etc. The Overlay system can represent the processes of scheduling resources and scheduling jobs. However, it is also possible to build an abstract Overlay cluster that is abstract compared to the domain cluster. This is achieved by abstracting the scheduling, the interactions and duration of the abstracted resources, and the requirements of the abstracted resources. The use of abstractions makes it possible to determine how domain-level scheduling processes compare, or to meet more general requirements of scheduling priorities.
[0244] For example, when scheduling computer processor resources in a resource-sensitive system, abstract scheduling priorities can be set by the goal proximity of processes that are prioritized compared to other processes that affect higher-level goals of the system, and processing domain processing and job resources can be mapped to abstractions to expose priorities to a supervisory level that can be adjusted.
[0245] For example, when scheduling computer processing resources in a critical IoT system such as one used in an avionics system, a vendor-specific computer processing resource management system on one avionics system can be matched with an abstraction for regulating such a system to ensure compliance with regulations. This can provide an easily extensible management system to ensure compliance with resource priorities throughout an interoperating system. In general, the abstraction layer of the Overlay domain model can be used to communicate the compliance of the underlying software to the goals and constraints of multiple stakeholders. This capability is relevant to interoperating systems that do not have an overarching single stakeholder to ensure interoperability.
[0246] Using target proximity in the domain or in the abstraction allows any type of prioritized requirements to be aligned with the embedded causal relationships of the Overlay model, thus exposing the prioritization of different systems and comparing them with the requirements of stakeholders.
[0247] Overlay enables changes in enterprise or multi-enterprise models to be propagated transparently for upgrades. Overlay also enables data models to be split into smaller models on each circuit board and chip. The Overlay enterprise model connects and relates different independent components by using its inherent transparent propagation paths. Without this feature, the interoperability of IoT components and collaborative computerized small devices will be severely hindered. In addition to the explicit description of propagating value from one component of an interoperable system to another, an abstract Overlay model can be used to provide an abstraction of underlying functionality, exposing interrelationships, constraints, capabilities, redundancies, and other capabilities so that components from different systems can expose their capabilities to more than one stakeholder.
[0248] By having a stronger ability to track system changes and their propagation effects than conventional software, Overlay makes testing and verification faster and more transparent, making upgrades smaller and the development process shorter. This can be achieved by identifying relevant components and the compilation and prioritization of test cases that are subsequently considered during testing and verification. Therefore, in the domain of major emergency response applications such as hostages or urban terrorist attacks, upgrades may be required in emergencies, because no emergency will be the same as other emergencies, so Overlay can be used for upgrades by distributing only very slight upgrades of the node cluster that has changed. Alternatively, it allows upgrades to be performed by physically distributing new ultra-light models on dedicated microkernel units (boards or chips).
[0249] Using traditional methods, emergency upgrades require a lot of programming work to complete the upgrade work and testing in a timely manner, and also require a large amount of upgrade materials to be delivered to a small computerized device on site by conventional means, such as through a cell or the Internet.
[0250] The advantage of using an ultra-light model (for a board or chip) combined with a domain overlay model instead of conventional software processing and associated hardware for emergency response is that performance, security, and safety are improved by several orders of magnitude. Security refers to the ability of a malicious user to manipulate the system at will or obtain confidential information. In the case of emergency response, security refers to the ability of the system to dynamically and effectively adapt to unforeseen situations.
[0251] In emergency response, this means that a small device can manage a large enterprise model without the need for a central server unit to be installed as a large installation that may not be suitable for the unpredictable location of an emergency. In addition, the lack of a traditional server unit reduces security vulnerabilities by avoiding the use of software languages and storage configurations that hackers are familiar with and more capable of attacking.
[0252] One necessary feature to make deliverables small is the nature of the data model of the domain overlay model that combines data and execution logic. As a result, large enterprise models can break down the data model into units assigned to each board and chip. Parts of the overlay model can be replicated in different boards and chips, or specific aspects of restoring functionality in each board and chip can be additionally modeled through the overlay model. These design provisions and similar methods are used to avoid situations where parts of the model are always unavailable due to lack of connectivity or failure of the process to propagate data between units or failure of hardware processing units. This is not possible in traditional software, where the data model is monolithic and cannot be split after the initial design. This is possible in overlay because any unit that loses its functionality can be detected by other units, which can be pre-configured to function in its absence. If it is a central coordination unit that loses functionality, it can be replaced by the same cluster of nodes on the replacement unit. The remaining functional units can have enough logic through nodes and links to allow temporary global state and compensation and adapt themselves to the new unit. This is because each cell has specific traceable propagation to other cells, so the nature of the propagation is clear; as well as the consequences of its disruption. At any point in the system lifecycle, nodes and logic need to be added in each cell to compensate for disruptions in the functionality of other cells. This is only possible in conventional systems if partitioning is done during the initial design phase, where the data schema does not define the propagation, and the code is not structured nor does it describe the propagation in a traceable way. Without this traceability, it is difficult to establish a system recovery method other than the original system design.
[0253] Figure 7 This is an example block diagram of a domain overlay model computing unit. The characteristics of this computing unit are:
[0254] 100: Domain Model Computation Unit : It is a single board computer that communicates with the outside world using a modeling language. It should be understood that device 100 is only one example of a portable device 100. It is a multi-functional device that may have more than Figure 7 The device 100 may be combined into two or more grids (e.g. Figure 8 As shown in Figure 2, a homogeneous cluster is defined. On the one hand, the domain model computing units are fabricated in a single chip.
[0255] 101. Central Processing Unit (CPU): It is a multifunctional programmable device that accepts data as input and processes it according to the instructions stored in the memory modules 102, 106 and 108, encrypts / decrypts it using the module 109, and provides the result as output stored in the module 108, which is sent to other units 198 ( Figure 8 ) or read data from module 113 and output the data to the same device.
[0256] 102. Core non-volatile memory : It is hidden from any external access and communicates only with the CPU 101. Its purpose is to store modules 103, 104 and 105 that constitute the kernel storage.
[0257] 103. L0 - Operating System (OS) : Contains the OS responsible for system initialization, file system, security, and command line environment. It is different for different CPU101 components.
[0258] 104. LI-Model Kernel : Contains instructions that provide the unit 100 with the ability to understand the model. It can only be updated by the system manager. New kernels are provided as encrypted binaries, and only using module 109 can the model kernel 104 be decrypted and updated. The rationale is to provide a highly secure kernel that is almost impossible to hack remotely. The microkernel is updated by authorized users using the Overlay design / development platform. The update / upgrade package is encrypted in the organization library and decrypted in the local unit. At a minimum, the microkernel contains the implementation of the node, link, and propagation models in terms of CPU instructions. The model will call those implementations to execute any domain model.
[0259] 105. L2-Communication Model : For client-side units, this module contains instructions in the domain model language to synchronize with the server-side part of the model.
[0260] 106. Working non-volatile memory : This memory block contains the domain model. This unit supports multiple models and can run these models in parallel.
[0261] 107. L3-Domain Model : One or more domain models that can be executed in parallel. These modules are provided to the unit 100 as encrypted files via Internet download or flash memory. The unit 100 will decrypt and update those modules. The Overlay design / development platform provides domain experts with the ability to define which nodes will be changed (updated / upgraded) and when the changes will be made.
[0262] 108. Random Access Memory (RAM):The main memory of the unit is volatile. In one exemplary embodiment, it supports commercial modules up to 8 GB (provided an appropriate small outline dual in-line memory module (SODIMM) connector is provided). In alternative exemplary embodiments, larger or smaller capacities may be used.
[0263] 109. Encryption / decryption unit : A unit responsible for encrypting and decrypting data exchanged with the outside world or files provided to the upgrade modules 103, 104, 105 and 107. When the system receives a packet / message, the encryption / decryption unit decrypts it using the decryption part of the unit. When the system sends a new data packet / message, the encryption / decryption unit encrypts the data packet / message using the encryption part of the unit. After encryption, the unit sends the message.
[0264] 110. Internal system bus A : A high-speed system bus used by the CPU 101 to send and receive data to modules 103-108. Only the CPU and modules 103-108 can access this bus.
[0265] 111. Internal system bus B : A high-speed bus used by CPU101 to communicate with external world modules 112, 113, 114 and 115.
[0266] 112. Grid Support Unit Connectors : Connectors that will be used to add more units if needed.
[0267] 113. I / O Unit : Connectors that provide analog and digital ports.
[0268] 114. Expansion connector : Connectors for adding commercial extension units or enterprise development units.
[0269] 115. Power Connector: USB connector for charging the unit battery or providing an appropriate power source.
[0270] 116. Power Management Unit : The unit responsible for connecting the system's power supply 115, battery, and CPU 101. The CPU is informed of the charging status and battery level through this unit. In addition, it can implement specific power management strategies based on the available energy of the system. Through these strategies, it can act as a safety mechanism in the event that the battery capacity is unacceptably low, ensuring that the system is shut down in a consistent and safe manner.
[0271] Figure 8 is a block diagram of a grid of domain model computational units. Features of the domain model computational unit include:
[0272] 200. The mesh of the domain model computational cells: A grid of server-side units that function as standalone computers or connected to other computers. It is a single-board grid computer that communicates with external words in a model language. The communication model is the Overlay model. There is a cluster of Overlay communication nodes that define and perform communications to the described grid. It is a multifunctional device that may have more or fewer components than shown in the figure. Devices 200 can be combined into grids of 2, 4 or 8 units, defining homogeneous clusters. Here, the CPU module contains a more powerful component, while the power consumption remains low (especially designed for mobile devices). On the one hand, the grid of domain model computing units is manufactured as a single-chip system.
[0273] 201. Domain Model Computation Unit : Similar to Figure 7 The difference is that module 105 is now more advanced to support distributed model clusters.
[0274] 202. Internal bus : It serves the connection of all modules 201.
[0275] 203. Connector to external computer : The connector enables the unit 200 to communicate with an external computer at high speed. In addition, the unit also provides the ability to communicate wirelessly with similar units.
[0276] 204. Power Connectors : USB connector for charging the unit battery or providing appropriate power supply.
[0277] In one embodiment, the product design includes a computer unit board that is made of the components described herein that are widely available and can be developed as a first version of such a computer. The prototype is developed using discrete components. After stabilizing the microkernel, these components are all assembled into a single chip (in cooperation with the chip manufacturer) and the chip is sold, as well as a printed circuit board with only the chip and some connectors.
[0278] In a second embodiment, an expansion board with this layout can be designed and installed into a computer board, or placed in a separate machine that will be connected to a server computer using high-speed interconnects (including but not limited to optical interconnects). This does not necessarily require a network server, logging and monitoring services or databases, etc. It will exist just as it does now on the main computer. In fact, this new computer will only have the server software installed and provide its content as a service to the main computer.
[0279] The ability to add expansion units containing a single board computer or a network of interconnected single board computers and dedicated microprocessors as described herein helps avoid the complexity of upgrades by upgrading only the microkernel portion and specific portions of the domain overlay model. It also supports the development of a new generation of standalone mobile devices that are very easy to upgrade using cellular or the Internet and are able to link devices to a working environment and share information and resources.
[0280] The main unit is the "Domain Overlay Model Compute Unit". This is a low-power computer unit that is programmed as a domain overlay model and does not use general-purpose programming languages such as C, C++, C#, Python, etc. It uses the overlay model to provide execution programs by organizing the states of node status parameters, the location of organization conversion logic, and the organization / location of data storage. Lower-level languages can be used for conversion logic and commands to the processor.
[0281] It can be used to build enterprise models that are centrally designed, or enterprise models that consist of pre-built components from different designers. It can also be used to build client devices, such as but not limited to robots, drones, medical devices, IoT, etc. Smartphones can also be included and can be connected to the server domain model continuously or intermittently. A feature of this unit is its security, performance, and synchronization of data and system status with the server domain model when it can access the server. It has a connector that provides the ability to connect expansion boards with, for example, but not limited to, wireless networks, biomedical sensors, cameras, keyboards, touch screens, touch screens, etc. Enterprises can connect commercial expansion boards or develop their own expansion boards.
[0282] Again, both exemplary designs are programmed using the Domain Overlay model, have low power components, provide high security and medium to high performance (depending on component 101), and allow independence and interoperability of processing units.
[0283] Overlay provides a new approach to the software development industry. Its main goal is to reduce the complexity of software reasoning, storage, retrieval, dissemination and traceability by adopting a model structure that is closer to the model structure of the execution process and less emphasis is placed on the entities that represent the process. In addition, in order to be able to abstract and compare functions.
[0284] The Overlay ecosystem contains tools and platform models that reduce the time from design to production deployment, but more importantly enable traceability, making maintenance and upgrades easier and more efficient to process.
[0285] Example
[0286] As an exemplary application, a single computing unit (hardware) is based on understanding and running the domain overlay model and providing appropriate infrastructure. The hardware unit introduces a computing grid, which is a single unit grid designed for the distributed domain overlay model, providing appropriate security and performance. The overlay model computing unit is a secure, high-performance, independent unit.
[0287] A grid of overlay computing units is preferred for componentized processing of satellite models because it provides distributed processing that can more easily recover from failures. A distributed model also facilitates decentralized design and upgrades to complete software design and implementation that cannot wait for a central stakeholder, such as an enterprise or several enterprises, by using overlay traceability, data storage flexibility, and other overlay design features to control and synchronize development and implementation.
[0288] The basic hardware unit is the "Domain Overlay Model Compute Unit". This is a low-power compute unit that is programmed to the Domain Overlay Model and does not typically use general-purpose programming languages such as C, C++, C#, Python, etc. It can use some of these or other languages, but does not use them conventionally. It uses the Overlay model to provide execution of programs, as well as organization and storage of node states. Lower-level languages can be used to translate logic and commands to the processor.
[0289] The individual hardware units will be used to form a collection of hardware units installed on the satellite. The hardware unit can be generic in design. A feature of the hardware unit is its security, performance and ability to synchronize with the server domain model in data and overall system status when accessible. It has a connector that can connect expansion boards such as (but not limited to) sensors, cameras, etc.
[0290] Designs programmed using the domain overlay model have low-power components, provide high security and medium-to-high performance, and allow independence and interoperability of processing units. The above grid with more than one computing unit increases redundancy.
[0291] A domain overlay model computation unit typically has four modules, placed as a stack (in order):
[0292] Satellite domain overlay model;
[0293] Platform Overlay Model;
[0294] Overlay core; and
[0295] ·operating system
[0296] The first two layers are likely to be subject to frequent upgrades by the team responsible for creating and maintaining the satellite model. The last two layers are only updated by the system manager and are rarely changed.
[0297] Overlay has the ability to send messages from one unit to another using minimal data packets of:
[0298] Node clusters for domain model updates;
[0299] Updated node cluster source code; or
[0300] Updated compiled code for the node cluster.
[0301] Each data packet is compressed and encrypted. The receiver of the data packets is the satellite unit, which decrypts and decompresses the data packets. Each computing unit can have specific modules for compression / decompression and encryption / decryption. If the recipient is a local station or a terminal mobile device, the unit only delivers those data packets using broadcast or point-to-point communication channels.
[0302] The model can be broken down into smaller models that can communicate discontinuously. Each component of the domain model has its own independent information and passes appropriate changes (not all) to the precise component of the model that will continue the process. Therefore, only small packets of data are passed. If the packet needs to be very large, or it needs to be transferred very quickly to a unit that cannot be accessed locally, the system can use the internet, disk, or any supported medium to transfer it.
[0303] exist Fig. 9 In the illustrated embodiment, the system comprises a central processing unit 101 and a plurality of slave (satellite) units 120, 122, 124, 126, 128, 130, with roles or stakeholders of the process model assigned to each satellite slave unit.
[0304] Some units can communicate with each other and with the central processing unit via a wireless network.
[0305] Each satellite slave unit includes a domain model calculation unit ( Figure 7100) and one or more domain models 107. For illustrative purposes, the different domain models have been designated with letters between A and K. This model of the enterprise is divided between the central processing unit 101 and the slave satellite units 120-130 in a manner that enables the satellite units to work independently when disconnected without coordination by the central processing unit 101. If communication is lost between the central processing unit 101 and the slave satellite units 120-130, the slave satellite units 120-130 will still be useful to the corresponding roles or stakeholders because they will contain enough enterprise models to provide useful information. The ability to split the enterprise model makes the slave / satellite units useful when communication is lost. Otherwise, the slave / satellite units will have very limited functionality.
[0306] The model can be partitioned into a central processing unit 101 and multiple dependent satellite units 120-130, each mounted on a handheld device, at the onset of an emergency event. The assignment of models to different devices during an emergency can be tailored to the skills of stakeholders and assigned according to the roles or stakeholder allocations of nodes and node clusters. Dependent units that can operate independently to achieve limited functionality are tailored to skills and therefore can be tailored according to the roles or equity of available personnel.
[0307] One aspect is that, as dictated by the personnel available in an emergency, the model can be broken down into different smaller units so that the limited functionality when offline is appropriate to the role or stakeholder.
[0308] Reference Fig.10 If a cell is damaged, the domain model on that cell can be reassigned to the remaining undamaged cells. For example, if cell 120 (from Fig. 9 ) is damaged, domain model A can be reassigned to unit 126, and domain model B can be reassigned to the same unit or a different unit. The same enterprise model can be distributed on multiple onboard chips, so that when one onboard chip is damaged, the enterprise model can be reassigned to the remaining onboard chips through upgrading.
[0309] Reference again Fig. 9 In another embodiment, the system may have a backup enterprise model 132 centrally located on one handheld unit 130, while the remaining units 120-128 access the central processing unit 101 via the web and have minimal to no processing when offline. If the central processing unit 101 becomes unavailable, the backup enterprise model 132 may be activated on the handheld device 130, or, if a backup enterprise central model is not preset, the processing model may be installed on another unit via an upgrade. This allows the central processing model to be moved between hardware units in order to overcome the problem of a central processing unit failure.
[0310] Each board component of a multi-board domain model has its own independent information and passes the appropriate changes (not all) to the precise component of the model that will continue the process.
[0311] refer to Fig.11 , emergency response involves unexpected risks, unexpected causes, unexpected remedial measures, unexpected detailed support for users, etc. To accommodate this, the enterprise model allows the central processing unit ( Fig. 9 101 in) insert or remove new enterprise model nodes 128 into cells 126 in a timely manner to take advantage of the change during the current event. It also allows enterprise model nodes to change their inputs from existing reference points to other reference points in a timely manner to take advantage of the change during the current event. Abstraction allows the enterprise model to find alternative data when the data that the system is configured to monitor does not meet the requirements. For example, it may be necessary to process personnel identities in a format different from that expected. In another example, the need to process a special electronic model of a building is possible and relevant if it is available in an emergency. It will be accessed by the same, for example, escape route node, but will reference different terrain data. For example, in an airport emergency, an unexpected hiring process may be required, such as introducing an external subcontractor to use special machinery to remove obstacle debris that has not been safely cleared. This may be similar to the emergency hiring of any other external source of personnel in an emergency. If the system cannot find similarities between all processes that require external personnel and equipment, while taking into account context differences (for example, which part of the airport new personnel and equipment need to enter), the system will not be able to provide correct procedures and response time estimates. This could apply to anything from first aid to prioritization of difficult decisions.
[0312] Regarding the interconnection of software (SW) and hardware (HW) units:
[0313] The design of the HW units is directly coupled to the Overlay model. A HW unit that can meet the runtime requirements and emergency constraints should be able to combine all necessary HW modules to execute its dynamic workload on time according to the requirements of the Overlay model. Therefore, the examples of hardware units shown are customized according to the needs of the Overlay model, because the already available, commercially available HW units cannot guarantee that the runtime requirements will be met.
[0314] The full Overlay model compute unit introduces a novel HW-SW combination that together advances the existing resource management paradigm for related state-of-the-art embedded processing systems. The Overlay model provides a concise way to map processes and interactions in the physical and external worlds into information that can be interpreted semantically and logically by the compute system. In this way, the runtime resource management logic of the Overlay compute unit can make decisions based on the actual state of the physical or external system environment, rather than just pre-coded template situations. For example, in an emergency, it can prioritize the execution of a node state propagation routine that has a high priority for the event, even if it is an unprecedented event. The high priority is driven by the Overlay model from the target proximity of the starting node in the propagation to the higher-level target. In the normal case of prior art application development, such events and related actions will be foreseen and specified by the application designer at design time, and will not be adapted to the current situation by using the target proximity of the node to be processed, which is different in each time instance of the overall state of the enterprise model.
[0315] For example, for a series of low priority nodes in propagation, the runtime engine will run the series of low priority value and state propagation from the start node to the end node. The Overlay model software will dynamically compare the relative importance of the series of low priority nodes to other processes in the current situation using target proximity or similar methods. The software will then signal the processing hardware to run at a speed lower than the maximum speed to save energy / power or postpone the runtime processing of such processing jobs without (actually) affecting normal operations. In another example, the software should consider a significant node reconfiguration (using updating the entire or large part of the Overlay model) and treat it as a "heavy" operation that requires all available processing power. Therefore, the software may signal the hardware to run at full speed and postpone other less important processing.
[0316] In another example, the target proximity of the node propagation increment can be compared with the target proximity in the schedule of processing jobs to be executed by the runtime program and the processor. In this way, jobs with high priority for the current enterprise situation can be provided to the processor, and other low priority jobs measured by the target proximity can be postponed. This helps processor performance management when processor performance is limited. Similarly, when energy / power is limited, target proximity can be used for energy / power management. It is obvious to ordinary technicians in the relevant fields that other combinations and decisions are also possible, such as taking into account the available battery power of the portable processing device, the urgency and / or importance of the operation / event, etc.
[0317] The description of the exemplary embodiments described above is simplified and does not include hardware and software elements used in the embodiments, which are not part of the current innovative solution, are not necessary for understanding the embodiments, and are obvious to ordinary technicians in the relevant fields. In addition, changes in the described techniques, system architectures, and software architectures are possible, where, for example, technical steps and hardware and software elements can be rearranged, omitted, or newly added.
[0318] Various embodiments of the present invention are described in the above detailed description. Although these descriptions directly describe the above embodiments, it should be understood that modifications and / or changes (e.g., additions, deletions, or reordering of process steps and software and hardware modules) to the specific embodiments shown and described herein may be conceived by those skilled in the art. Any such modifications or changes that fall within the scope of this specification will also be included therein. Unless otherwise specified, it is the intention of the inventor to give the words and phrases in the specification and claims the ordinary and customary meanings of those of ordinary skill in the applicable field.
[0319] The foregoing description is intended for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and many modifications and variations are possible in light of the above disclosure. These embodiments are selected and described to enable those skilled in the art to best utilize the invention in various embodiments, and with various modifications to suit the particular use contemplated. Therefore, it is intended that the invention is not limited to the specific embodiments disclosed for carrying out the invention, but that the invention will include all embodiments falling within the scope of the appended claims.
[0320] Those skilled in the art will appreciate that any of a variety of different techniques may be used to represent signals. For example, the data, software, instructions, signals cited in the above description may be represented by voltage, current, electromagnetic waves, magnetic fields or particles, light, or any combination thereof.
[0321] Those skilled in the art will further appreciate that the various illustrative RF or analog circuit blocks described in connection with the disclosure herein may be implemented in a variety of different circuit topologies, separate from logic circuits and systems, or in combination with one or more integrated circuits, while performing the same functions described in the disclosure.
[0322] Those skilled in the art will further appreciate that the various illustrative logic blocks, modules, circuits and algorithmic steps described in conjunction with the disclosure herein can be implemented as electronic hardware, computer software or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits and steps have been described above according to their functional overviews. Whether this functionality is implemented as hardware or software depends on specific applications and the design constraints imposed on the entire system. Those skilled in the art can implement the described functions in different ways for each specific application, but this implementation decision should not be interpreted as causing a departure from the scope of the present disclosure.
[0323] The various illustrative logical blocks, modules, and circuits described in conjunction with the disclosure herein may be implemented or executed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, a combination of one or more microprocessors with a digital signal processor core, or any other such configuration.
[0324] In one or more exemplary embodiments, the functions described may be implemented with hardware, software, firmware, or any combination thereof. If implemented with software, these functions may be stored on a computer-readable medium or transmitted via a computer-readable medium as one or more instructions or codes. Computer-readable media include computer storage media and communication media, and communication media include any media that facilitates the transfer of computer programs from one place to another. Storage media may be any available media that a computer can access. As an example and not limitation, such a computer-readable medium may include RAM, ROM, EEPROM, CD-ROM, or other optical disk storage devices, disk storage devices, or other magnetic storage devices, or any other medium that may be used to carry or store required program codes in the form of instructions or data structures and may be accessed by a computer or any other device or equipment that is run as a computer. Moreover, any connection is appropriately referred to as a computer-readable medium. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology (e.g., infrared, radio, and microwave), coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers.
[0325] Combinations of the above should also be included within the scope of computer-readable media.
[0326] An exemplary storage medium is coupled to a processor so that the processor can read information from the storage medium and write information to the storage medium. Alternatively, the storage medium can be integrated into the processor. The processor and the storage medium can reside in an ASIC. The ASIC can reside in a user terminal. Alternatively, the processor and the storage medium can reside in a user terminal as discrete components.
[0327] The previous description of the disclosed exemplary embodiments is provided to enable those skilled in the art to make or use the invention. Various modifications to these exemplary embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Therefore, the present invention is not intended to be limited to the embodiments shown herein, but is intended to be given the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A computer-implemented method for adapting a computing device to hardware and / or data changes in a distributed computing system, the method comprising: storing instructions at a central processing unit (101) of the computing device, the instructions being embedded in the computing device along with the data; The central processing unit (101) executes the stored instructions to create a single model (107, 200); wherein the single model (107, 200) comprises a number of abstraction layers (210, 220, 230, 240, 260), each abstraction layer comprising a cluster of nodes (10, 15, 215, 225, 235, 238, 245, 255), wherein each node (10, 15, 215) has an associated context (217), a state value and state parameters, each node representing the state and control of a process, wherein the context (217) of each node comprises the relevance and state of each of the nodes to another node; wherein each node (10, 15, 215) is connected to at least one other node (10, 15, 215) located at the same abstraction layer or a different abstraction layer (210, 220, 230, 240, 260) via a link (12, 18), and the central processing unit processes the embedded data of the single model (107, 200) to connect the nodes and transmit new values associated with the connected nodes along a propagation path from a source node (10) to a target node (16) via the link; wherein each node (10, 15, 215) of the single model (107, 200) retrieves a state value of the node directly from a locally stored file without performing a search query in a database system, wherein the location of the state value in the local memory is determined by the single model (107, 200) via the node (10, 15, 215) and a link (12, 18) indicating the relevance of the node (10, 15, 215) and its context to the context of another node; The central processing unit (101) distinguishes the execution priority of the node status propagation routine based on the target proximity between the start node and the high-level target node; The central processing unit (101) uses the propagation paths of changes to adapt the operation of the computing device to changes in the single model (107, 200), wherein the changes are detected by comparing the propagation paths between nodes in different abstraction layers of the single model (107, 200), and wherein the adaptation operation includes using the synchronization model to identify the next execution step during uninterrupted operation of the computing system.
2. The computer-implemented method of claim 1 , further comprising: The central processing unit (101) executes the stored instructions to synchronize the single model (107, 200) with a version of the single model (107, 200) stored at a second computing device; and The central processing unit (101) adjusts the operation of the computing device without the second computing device, or replaces the second computing device with a new computing device when the second computing device loses its operating ability.
3. The computer-implemented method of claim 1 further comprising upgrading data and software instructions of the single model (107, 200) by selectively changing the single model (107, 200) based on which nodes, contexts, and users of the single model (107, 200) are in a propagation path of a change.
4. The computer-implemented method of claim 1, further comprising tracking changes in the single model (107, 200) and the data using a propagation path of the changes.
5. The computer-implemented method of claim 4, wherein: The propagation path of the change is implemented based on context, causal model, propagation logic or propagation model.
6. The computer-implemented method of claim 2, further comprising: Splitting the single model (107, 200) into at least one smaller model; embedding the smaller model into the computing device; and The single model is replaced in the computing device with the smaller model (107, 200).
7. The computer-implemented method of claim 6, wherein the step of adapting the operation of the computing device comprises: redistributing the smaller model and data embedded on the replaced or non-existent second computing device to the computing device using the tracked changes; embedding the redistributed smaller model and data onto the computing device; and The embedded data is processed according to the embedded redistributed smaller model using the central processing unit (101) on the computing device to connect nodes and pass new values along the propagation path of the change.
8. A computing device comprising means for executing the method of any one of claims 1 to 7.
9. A computer program product comprising instructions, which, when a computing device according to claim 8 executes the program, cause the computing device to perform the method according to any one of claims 1 to 7.
10. A computer readable medium having stored thereon the computer program product of claim 9.
11. A system comprising at least two computing devices according to claim 8.
Citation Information
Patent Citations
System and Method for Identifying Relevant Information for an Enterprise
US20140330616A1
System and method for identifying relevant information for an enterprise
US8571910B2
Microkernel gateway server
US9282079B2