US20170366443A1 - Meta-agent based adaptation in multi-agent systems for soa system evaluation - Google Patents

Meta-agent based adaptation in multi-agent systems for soa system evaluation Download PDF

Info

Publication number
US20170366443A1
US20170366443A1 US15/625,136 US201715625136A US2017366443A1 US 20170366443 A1 US20170366443 A1 US 20170366443A1 US 201715625136 A US201715625136 A US 201715625136A US 2017366443 A1 US2017366443 A1 US 2017366443A1
Authority
US
United States
Prior art keywords
meta
agents
agent
nodes
systems
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/625,136
Inventor
Hesham Fouad
Stephen Russell
Antonio Gilliam
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
US Department of Navy
Original Assignee
US Department of Navy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by US Department of Navy filed Critical US Department of Navy
Priority to US15/625,136 priority Critical patent/US20170366443A1/en
Assigned to THE GOVERNMENT OF THE UNITED STATES OF AMERICA, AS REPRESENTED BY THE SECRETARY OF THE NAVY reassignment THE GOVERNMENT OF THE UNITED STATES OF AMERICA, AS REPRESENTED BY THE SECRETARY OF THE NAVY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: RUSSELL, STEPHEN, FOUAD, HESHAM, GILLIAM JR., ANTONIO
Publication of US20170366443A1 publication Critical patent/US20170366443A1/en
Priority to US17/541,203 priority patent/US20220239580A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Definitions

  • This disclosure relates to computer systems, including service oriented architecture systems.
  • Service-oriented architectures can be used to separate application functions into discrete services that can be accessed and used by different applications via a network.
  • SOAs Service-oriented architectures
  • evaluating the network can become an increasingly complex task.
  • the difficulty of automating the evaluation of SOAs is rooted in the need to effectively test an entire system-of-systems, as well as each of the system's discrete components.
  • SOA systems comprise loosely coupled computing components that may include hardware services (virtualization), system services (infrastructure as a service), and web/software services (software as a service).
  • a key to SOA systems' enhanced capabilities is their ability to integrate informational and computational resources, and thus, effective testing of SOA systems should evaluate both.
  • the stability of an SOA system depends not only on the correct operation of each component system, but also on the state of the communication channels connecting them, as well as synchronization and timing of operations carried out by the system components.
  • SOA systems exhibit a high degree of dynamism. Service components are dynamically added, updated, and retired while the system remains operational and on-line. In the traditional software cycle, testing is an activity performed during the software development phase, before software is released for distribution. However, given the dynamism exhibited by SOA systems, this model is no longer appropriate. While testing individual software components can ensure their stability as standalone components, this does not predict their effect on the stability of an SOA system as a whole. Ensuring the ongoing stability of SOA systems requires a capability that can continuously evaluate the stability of the system, and take corrective actions when faults are detected. Current automation technology cannot address the complexity inherent in SOA systems.
  • FIG. 1 is a diagram illustrating an exemplary SOA that can be used with embodiments of the present disclosure
  • FIG. 2 is a diagram of an exemplary dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure
  • FIG. 3 is a flowchart of a method for evaluating an SOA using agents in accordance with an embodiment of the present disclosure
  • FIG. 4 is a flowchart of a method for evaluating an SOA using meta-agents in accordance with an embodiment of the present disclosure.
  • FIG. 5 is a diagram of an embodiment of an exemplary meta-agent system used to control a plurality of devices in accordance with an embodiment of the present disclosure.
  • references in the specification to “one embodiment,” “an embodiment,” “an exemplary embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • Embodiments of the present disclosure provide systems and methods that address the complexity inherent in evaluating Service Oriented Architecture (SOA) systems by using meta-agent based adaptation in multi-agent systems.
  • SOA Service Oriented Architecture
  • agent-based systems are by nature, distributed, autonomous, software components that can act in tandem by inter-agent communication and synchronization. This makes agent based systems much more appropriate for the automated evaluation of SOA systems.
  • Embodiments of the present disclosure provide systems and methods for dynamically configuring meta-agents, enabling multi-agent based automated evaluation capability for distributed, SOA systems.
  • the dynamically configured meta-agents in accordance with embodiments of the present disclosure can dynamically adapt to the non-deterministic nature of SOA systems to enable a continuous monitoring capability for detecting and circumventing operational errors as they arise.
  • Embodiments of the present disclosure can be configured to effectively automate the evaluation (testing) of SOA systems by using meta-agent based adaptation in multi-agent systems.
  • agents can be generically defined in terms of their state-space (belief), and the behaviors they can activate.
  • state-space contains information about the agent's environment, world, or domain that is relevant to the agent and can be in the form of name-value tuples.
  • behaviors are actions that an agent can perform either reactively, in response to an incoming message, or proactively on a continuous or one-time basis.
  • agent designers can construct agents by defining the state information they hold and by implementing their behavior set. For example, implementing a behavior can comprise writing software code that implements one or more actions for that behavior.
  • common actions can be built in to an agent's capabilities to simplify the process of behavior development. In conventional agent-based systems, however, agent behaviors and state are predetermined for an agent at development time.
  • Some alternative approaches to using statically constructed agents include machine learning, automated agent selection, and dynamic agent configuration approaches.
  • machine learning approaches machine-learning techniques can be utilized to enable agents to adapt to, or learn about their environment. This approach enables agents to incrementally modify their behavior in response to input stimuli (e.g. changes in the environment).
  • automated agent selection approaches given a repository of agents with known capabilities as well as information regarding the anticipated function of an agent, an automated selection method can choose the most appropriate agent to fulfill the specified functions.
  • a dynamic agent configuration approach can include a request based agent configuration approach where behaviors are dynamically reconfigured in an existing agent based on a transactional model (i.e., a user sends new actions to an agent and the agent replies with an acknowledgement).
  • Agents that have behavior that is determined at development time. For example, in traditional agent-based systems, agent capabilities are fixed so agents are limited to a static set of capabilities. Embodiments of the present disclosure use agents with adaptive capabilities that are not limited to static, preconfigured behaviors. Embodiments of the present disclosure use a multi-agent framework that adapts dynamically through the creation of specialized agents.
  • agents are created and populated with behaviors at runtime.
  • the agents have the capability to create, configure, and remove other agents (e.g., at or after runtime). These capabilities enable the creation of meta-agents that can reason about the environment and create new agents automatically.
  • SOAs Service-oriented architectures
  • SOA systems are currently being developed and deployed on the tactical edge to provide warfighters with a common operating picture by integrating data from both new and legacy software systems into a coherent framework.
  • the operational stability of these systems in what is often a highly dynamic, compromised environment will increasingly become critical to mission success.
  • FIG. 1 is a diagram illustrating an exemplary SOA that can be used with embodiments of the present disclosure, the Tactical Service Oriented Architecture (TSOA).
  • TSOA is a collection of software components that comply with the Marine Air-Ground Task Force (MAGTF) Command and Control (C2) software architecture.
  • MAGTF Marine Air-Ground Task Force
  • C2 Marine Air-Ground Task Force
  • TSOA software components include Commercial Off-The-Shelf (COTS) software, Government Off-the-Shelf (GOTS) software, and the Service Oriented Infrastructure (SOI) software developed specifically for the operating forces using Open Architecture principles as defined in the TSOA Software Architecture Description Document (SADD).
  • SOI acts as a data broker that allows legacy, stove piped applications to publish their services and subscribe to other applications' services.
  • FIG. 1 illustrates exemplary components of the TSOA system, including a SOI virtual machine (VM) 102 , an external connector VM 104 , a feature package VM 106 , a map server VM 110 , a SOI admin portal client 108 , and applications 112 .
  • the applications 112 are able, through SOI (e.g., through SOA VM 102 and/or external connector VM 104 and feature package VM 106 ), to provide services to one another.
  • SOI e.g., through SOA VM 102 and/or external connector VM 104 and feature package VM 106
  • the IOSv1 application 112 d can publish enemy locations to SOI (e.g., via the IOSv1 connector of external connector VM 104 ).
  • the AFATDS application 112 b can subscribe to the SOI data feed (e.g., via the AFATDS connector of SOI VM 102 ) and can use the published enemy locations for fire support.
  • the Google Earth application 112 h can also subscribe to the SOI data feed (e.g., via feature package VM 106 ) and can display enemy positions overlaid on terrain.
  • TSOA is shown above as an example, it should be understood that embodiments of the present disclosure are not limited to working with the TSOA.
  • embodiments of the present disclosure can be used with any SOA and/or any other architecture that can be evaluated with agents.
  • Embodiments of the present disclosure include systems that introduce the idea of a dynamic meta-agent configuration capability through adaptation.
  • this capability serves as an enabler for reasoning in changing contexts, flexible configurations, and near real-time responsiveness and aims to address one of the biggest challenges faced by current multi-agent system development, which is agent awareness.
  • Embodiments of the present disclosure support SOA test automation for regression (static) testing as well as a continuous, adaptive monitoring capability after deployment.
  • meta-agents extend agent dynamism by introducing controller entities in the form of agents. This enables agents to create and populate other agents with behaviors based on current operational needs, thus mitigating the need for manual intervention or priori knowledge.
  • Embodiments of the present disclosure include approaches that address the problems associated with automatic and dynamic evaluation of SOA systems.
  • FIG. 2 is a diagram of an exemplary dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure.
  • the dynamic meta-agent configuration system of FIG. 2 includes a controller 202 (e.g., a controller device and/or a controller application), a server 204 (e.g., a server device and/or a server application), and a plurality of nodes 206 that can be used to evaluate a system under test 218 .
  • system under test 218 is the SOA shown in FIG. 1 (e.g., in an embodiment the TSOA).
  • controller 202 includes client interface 208
  • server 204 includes a repository of agent behaviors 210 and server threads 212 .
  • each of nodes 206 can include a plurality of agents 214
  • each of agents 214 can include a behavior interface 216 .
  • node 206 a includes agent 214 a and behavior interface 216 .
  • controller 202 , server 204 , and/or nodes 206 can be implemented using hardware, software, and/or a combination of hardware or software. Further, each of controller 202 , server 204 , and/or nodes 206 can be implemented on the same device or on separate devices. Additionally, the devices used to implement controller 202 , server 2014 , and/or nodes 206 can be general purpose devices (e.g., one or more computers) and/or special purpose devices. For example, in an embodiment, controller 202 , server 204 , and nodes 206 can be implemented as a single special purpose device for dynamic meta-agent configuration (e.g., in an embodiment, implemented using a single chip).
  • server 204 is a special purpose meta-agent device (e.g., a device that can create and/or manage meta-agents) and/or a special purpose agent device (e.g., a device that can create and/or manage agents).
  • a special purpose meta-agent device e.g., a device that can create and/or manage meta-agents
  • a special purpose agent device e.g., a device that can create and/or manage agents
  • server 204 can contain a processor and a memory storing instructions that, if executed, enables server 204 to perform operations (e.g., instructions for creating agents based on a specification sent by controller 202 ).
  • controller 202 can also contain a processor and a memory storing instructions that, if executed, enables controller 202 to perform operations (e.g., instructions for sending a stored specification for creating agents and/or meta-agents to server 204 and for receiving results from server 204 ).
  • controller 202 , server 204 , and nodes 206 are implemented using software programs that can be installed on a plurality of different devices.
  • an instance of a runtime of a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure comprises one instance of server 204 (e.g., implemented using a special purpose device or a general purpose computer) and one or more instances of nodes 206 , each running on either the server device 204 or on remote devices (e.g., on remote computers) with network connectivity to the server device 204 .
  • a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure can be a multi-agent based framework written in a programming language, such as C++, Java, Python, JavaScript, etc., and can be both language and operating system agnostic.
  • a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure can permit easy language agnostic extensibility and enhancement to support the introduction of new systems and ad hoc test tools.
  • controller 202 creates and configures agents 214 (e.g., at runtime) and interfaces with server 204 via client interface 208 .
  • server 204 provides a repository of agent behaviors 210 that can be used to create and configure new agents 214 (e.g., at runtime).
  • nodes 206 are containers for agents 214 , and agents 214 residing at each node 206 have the ability to dynamically create and destroy other agents 214 . Exemplary functionality of controller 202 , server 204 , nodes 206 , agents 214 , behaviors 210 , and meta-agents will now be described in greater detail.
  • server 204 manages the communication between agents 214 and provides an interface for external devices and/or applications (e.g., controller 202 ) to control the runtime of the dynamic meta-agent configuration system.
  • server 204 does this through a language agnostic application programming interface (API) that allows applications (e.g., controller 202 ) to interface with a server instance either locally by running server 204 within the application's process, or remotely by connecting to server 204 running on the same computer or on a remote computer with network connectivity to the computer that server 204 is running on.
  • API application programming interface
  • client interface 208 gives controller 202 (e.g., in an embodiment, a control application) full control of an instance of the dynamic meta-agent configuration system.
  • Controller 202 can create and destroy agents 214 , manage agent behaviors 210 , activate and deactivate agents 214 , send messages to agents 214 , retrieve behavior execution results and synchronize their execution with behaviors 210 , and manage behavior delivery (e.g., based on the container target platform).
  • Server 204 can maintain a repository of behaviors 210 that can be used to populate agents 214 at runtime.
  • controller 202 can further control synchronization of the dynamic meta-agent configuration system (e.g., between controller 202 , server 204 , and nodes 206 ).
  • nodes 206 have unique names and act as containers for agents 214 .
  • agent names only have to be unique within the node (e.g., node 206 a ) that contains them.
  • addressing an agent in a runtime of a dynamic meta-agent configuration system requires both the node name as well as the agent name.
  • a node fulfills a number of functions including, but not limited to, handling incoming requests from other agents 214 for message delivery, agent creation and deletion, agent behavior management, agent activation and deactivation, file download and upload, scheduling the execution of agent behaviors 210 , communicating with the sever 204 to deliver requests to remote agents, reporting the results of behavior execution back to the server 204 , and implementing synchronization between agents 214 .
  • agents 214 are autonomous, active objects.
  • agents 214 contain a state space that comprises name-value tuples and a set of named behaviors.
  • Agents in a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure can be constructed dynamically at runtime through requests from the server 204 or from other agents 214 . This capability enables agents 214 to create and configure other agents 214 at runtime.
  • behaviors 210 are stored in a central repository on the server 204 .
  • a Behavior when a Behavior is added to an agent (e.g., agent 214 a ), its executable module is sent to the node (e.g., node 206 a ) containing the agent so that the node can schedule it for execution.
  • agent e.g., agent 214 a
  • its executable module is sent to the node (e.g., node 206 a ) containing the agent so that the node can schedule it for execution.
  • behaviors 210 are units of execution that agents 214 can perform either reactively in response to an incoming message, or proactively on a continuous or one time basis.
  • behavior objects contain four methods for execution: setup, action, message, and teardown. However, it should be understood that any number of methods can be used with behavior objects and/or behaviors in accordance with embodiments of the present disclosure.
  • the setUp method is called when a behavior is instantiated and is expected to perform initialization activities.
  • the action method implements the proactive execution of a behavior based on the execution mode specified.
  • the message method is called when an agent receives a message.
  • behaviors 210 can specify a topic filter comprising a list of topics that the behavior is interested in.
  • incoming messages that do not specify one of those topics in the topic filter are not propagated to the behavior.
  • the tearDown method is called on each behavior when an agent is deactivated. It can perform any de-initialization activities necessary to bring the system to a known state.
  • proactive execution of a behavior can occur in a number of ways.
  • OneShot execution can be used to activate the action method once when the agent is activated.
  • Periodic execution activates the action method continuously.
  • TimedPeriodic execution can activate the action method every n milliseconds
  • OnMessage execution can activate the action method upon the receipt of a specific message.
  • a delay value can be specified for proactive behaviors that delays their initial execution by a specified number of milliseconds.
  • the setup method, the action method, the message method, and the teardown method can generate a result object that includes the result of the execution as well as a log of the activities performed during the execution. Result objects can be passed back to server 204 for logging and reporting (e.g., to controller 202 ).
  • meta-agents are agents that analyze the current state of an SOA system to detect trigger events that inject new requirements into the current agent framework. For example, one example of such an event is the addition of a new component to an online SOA system. Based on this analysis, meta-agents can automatically create and configure new agents 214 that address those new requirements. For example, meta-agents can dynamically perform an interoperability evaluation of a new component to ensure that its operation does not have detrimental effects on the SOA system. Alternatively, they can remove and destroy existing agents 214 that are no longer relevant.
  • This capability enables a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure to evolve with the system under test 218 and is rooted in agents' ability to create and populate new agents with behaviors 210 from the server's 204 behavior repository. While meta-agents have been discussed herein with reference to SOA systems, embodiments of the present disclosure are applicable to a wide range of problems, and meta-agents in accordance with embodiments of the present disclosure can be used in conjunction with a variety of agent-based systems.
  • FIG. 3 is a flowchart of a method for evaluating an SOA using agents in accordance with an embodiment of the present disclosure.
  • a controller instructs a server to create a plurality of agents based on a specification.
  • controller 202 is a control application (e.g., executing on a general purpose computer or a special purpose device) that contains a specification of an agent network needed for executing a static test on system under test 218 (i.e., the SOA shown in FIG. 1 ).
  • the specification can identify locations (e.g., nodes at target devices and/or nodes at specific target applications executing on specific target devices) for agents to be created.
  • the specification can further include additional or modified behaviors for agents to use.
  • the specification can contain instructions for removing and/or existing agents.
  • a default set of instructions can be used for creating an agent (e.g., with default behaviors) if information for creating one or more specific agents isn't specified in the specification.
  • a server creates the agents at nodes identified in the specification and populates them with behaviors.
  • server 204 receives the specification from controller 202 and, based on information in the specification, creates agents 214 at nodes 206 on each target application machine of system under test 218 .
  • the target machine applications comprise AFATDS 112 b, IOSv1 112 d, and Google Earth 112 h.
  • agents 206 are populated with behaviors 210 that interact with applications to carry out static test automation.
  • agents send results back to the controller.
  • agents 214 can generate results that can be passed back to the server 204 and/or the controller 202 .
  • the specification sent by controller 202 may include behaviors that instruct created agents to report information back to controller 202 once a certain event has occurred.
  • FIG. 4 is a flowchart of a method for evaluating an SOA using meta-agents in accordance with an embodiment of the present disclosure.
  • a controller instructs a server to create a plurality of meta-agents based on a specification.
  • controller 202 contains a specification of a meta-agent network needed for executing a static test on system under test 218 (i.e., the SOA shown in FIG. 1 ).
  • the specification can identify locations e.g., nodes at target devices and/or nodes at specific target applications executing on specific target devices) for meta-agents to be created.
  • the specification can further include additional or modified behaviors for meta-agents and/or agents created by the meta-agents to use. Further, in an embodiment, the specification can contain instructions for removing and/or modifying existing agents (and/or meta-agents). In an embodiment, a default set of instructions can be used for creating a meta-agent or agent with default behaviors) if information for creating one or more specific meta-agents or agents isn't specified in the specification.
  • a server creates the meta-agents at nodes identified in the specification and populates them with behaviors.
  • server 204 receives the specification from controller 202 and, based on information in the specification, creates meta-agents at nodes 206 on each target application machine of system under test 218 .
  • the meta-agents can have a similar structure as agents 214 (and meta-agents can also create, modify, and/or destroy other agents 214 ).
  • meta-agents are created at nodes 206 on all target machine applications (e.g., applications 112 a - 112 h ) for the SOA (e.g., the TSOA of FIG. 1 ) by default.
  • the meta-agents are populated with behaviors 210 that interact with applications at the target applications (e.g., applications 112 a - 112 h ).
  • the meta-agents monitor system behavior and create, configure, and/or destroy agents in response to detecting a trigger event.
  • the meta-agents at applications 112 a - 112 h monitor system behavior and create and configure specialized agents 214 to periodically test and remediate or report problems in response to detecting trigger events (e.g., trigger events either specifically identified in the specification sent by controller 202 or default trigger events specified by server 204 based on information in behavior repository 210 ).
  • agents and/or meta-agents send results back to the controller.
  • the agents and/or meta-agents can generate results that can be passed back to the server 204 and/or the controller 202 .
  • Embodiments of the present disclosure can be applicable to systems of networked devices, such as Internet of Things (IoT) systems.
  • IoT nodes are usually implemented as a System-on-a-Chip (SoC) and can act autonomously.
  • SoC System-on-a-Chip
  • a meta-agent capability in accordance with an embodiment of the present disclosure can enable IoT nodes to dynamically adapt their operations based on changes in the environment or operational needs.
  • FIG. 5 is a diagram of an embodiment of an exemplary meta-agent system used to control a plurality of devices in accordance with an embodiment of the present disclosure.
  • a meta-agent server 502 can control a plurality of networked devices 504 using meta-agents in accordance with an embodiment of the present disclosure.
  • Devices 504 can include any series of devices configured to communicate with each other over a network in accordance with embodiments of the present disclosure.
  • devices 504 are a plurality of devices that can wirelessly communicate with each other in a home network.
  • devices 504 are a plurality of devices in separate locations connected to each other over the internet.
  • devices 504 do not communicate directly with each other but rather communicate through meta-agent server 502 .
  • meta-agent server 502 can be a single device that combines the capabilities of controller 202 and server 204 .
  • meta-agent server 502 can be implemented as a special purpose device for controlling devices in a network.
  • meta-agent server 502 can be implemented using a general purpose computer implementing meta-agent server software for controlling devices in a network.
  • meta-agent server 502 can be implemented on a device in the network of devices, such as device 504 a, rather than on a separate device.
  • device 504 a can act as a “master” device for other devices in the network (e.g., devices 504 b and 504 c ).
  • meta-agent server 502 rather than implementing meta-agent server 502 as a separate device, all devices in the network (e.g., devices 504 a, 504 b, and 504 c ) can implement the functionality of meta-agent server 502 a.
  • devices 504 a, 504 h, and 504 c can be designated as the current master for the purposes of creating, destroying, and/or modifying meta-agents.
  • devices 504 are devices in a home network
  • meta-agent server 502 is a special-purpose device managing devices 504 .
  • Meta-agent server 502 can create (e.g., with or without a specification) meta-agents at each of devices 504 and populate them with behaviors.
  • the meta-agents at devices 504 can monitor the behavior of devices 504 and can optionally interact with applications executing at each of devices 504 (and/or logic or circuitry at each of devices 504 ).
  • the meta-agents can create, configure, and/or destroy specialized agents to perform operations at devices 504 and/or report problems to meta-agent server 502 .
  • Embodiments of the present disclosure provide systems and methods for dynamically configuring meta-agents to evaluate SOA systems that enable a high degree of adaptability and require no human intervention.
  • systems and methods in accordance with embodiments of the present disclosure result in an approximately 75% reduction in labor effort required for testing when compared to current systems and methods for SOA evaluation that use manual testing.
  • Meta-agents in accordance with an embodiment of the present disclosure can reason about current needs and create specialized agents to address those needs. Further, embodiments of the present disclosure provide a high degree of adaptability required for ensuring stability of tactical SOA systems. For example, embodiments of the present disclosure enable meta-agents to create, destroy, and modify agents so that the agents that are created can adapt they system as changes occur without human intervention. This adaptability enabled by embodiments of the present disclosure greatly improves the efficiency, responsiveness, and stability of agent systems when compared to prior manually managed systems.
  • Embodiments of the present disclosure applicable to many SOA applications (e.g., banking) and can be extended to support the introduction of new SOA components without disrupting the operation of the system.
  • SOA applications e.g., banking
  • Any representative signal processing functions described herein can be implemented using computer processors, computer logic, application specific integrated circuits (ASIC), digital signal processors, etc., as will be understood by those skilled in the art based on the discussion given herein. Accordingly, any processor that performs the signal processing functions described herein is within the scope and spirit of the present disclosure.
  • ASIC application specific integrated circuits
  • the above systems and methods may be implemented as a computer program executing on a machine, as a computer program product, or as a tangible and/or non-transitory computer-readable medium having stored instructions.
  • the functions described herein could be embodied by computer program instructions that are executed by a computer processor or any one of the hardware devices listed above.
  • the computer program instructions cause the processor to perform the signal processing functions described herein.
  • the computer program instructions e.g., software
  • Such media include a memory device such as a RAM or ROM, or other type of computer storage medium such as a computer disk or CD ROM. Accordingly, any tangible non-transitory computer storage medium having computer program code that cause a processor to perform the signal processing functions described herein are within the scope and spirit of the present disclosure.

Abstract

Systems and methods are provided for addressing the complexity inherent in evaluating Service Oriented Architecture (SOA) systems by using meta-agent based adaptation in multi-agent systems. Embodiments of the present disclosure provide a multi-agent based automated evaluation capability for distributed, SOA systems that can dynamically adapt to the non-deterministic nature of such systems to enable a continuous monitoring capability for detecting and circumventing operational errors as they arise.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Patent Application No. 62/351,084, filed on Jun. 16, 2016, which is incorporated by reference herein in its entirety.
  • FIELD OF THE DISCLOSURE
  • This disclosure relates to computer systems, including service oriented architecture systems.
  • BACKGROUND
  • Service-oriented architectures (SOAs) can be used to separate application functions into discrete services that can be accessed and used by different applications via a network. As the network grows to include additional services, evaluating the network can become an increasingly complex task. For example, the difficulty of automating the evaluation of SOAs is rooted in the need to effectively test an entire system-of-systems, as well as each of the system's discrete components. SOA systems comprise loosely coupled computing components that may include hardware services (virtualization), system services (infrastructure as a service), and web/software services (software as a service). Beyond loose coupling, a key to SOA systems' enhanced capabilities is their ability to integrate informational and computational resources, and thus, effective testing of SOA systems should evaluate both. Finally, the stability of an SOA system depends not only on the correct operation of each component system, but also on the state of the communication channels connecting them, as well as synchronization and timing of operations carried out by the system components.
  • The above considerations introduce a high degree of complexity for automating the evaluation of these systems. The nature of this complexity manifests in testing with respect to fault slippage, test turn-around time, repeatability, and test maintainability. SOA systems exhibit a high degree of dynamism. Service components are dynamically added, updated, and retired while the system remains operational and on-line. In the traditional software cycle, testing is an activity performed during the software development phase, before software is released for distribution. However, given the dynamism exhibited by SOA systems, this model is no longer appropriate. While testing individual software components can ensure their stability as standalone components, this does not predict their effect on the stability of an SOA system as a whole. Ensuring the ongoing stability of SOA systems requires a capability that can continuously evaluate the stability of the system, and take corrective actions when faults are detected. Current automation technology cannot address the complexity inherent in SOA systems.
  • BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
  • The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate embodiments of the disclosure and, together with the general description given above and the detailed descriptions of embodiments given below, serve to explain the principles of the present disclosure. In the drawings:
  • FIG. 1 is a diagram illustrating an exemplary SOA that can be used with embodiments of the present disclosure;
  • FIG. 2 is a diagram of an exemplary dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure;
  • FIG. 3 is a flowchart of a method for evaluating an SOA using agents in accordance with an embodiment of the present disclosure;
  • FIG. 4 is a flowchart of a method for evaluating an SOA using meta-agents in accordance with an embodiment of the present disclosure; and
  • FIG. 5 is a diagram of an embodiment of an exemplary meta-agent system used to control a plurality of devices in accordance with an embodiment of the present disclosure.
  • Features and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
  • DETAILED DESCRIPTION
  • In the following description, numerous specific details are set forth to provide a thorough understanding of the disclosure. However, it will be apparent to those skilled in the art that the disclosure, including structures, systems, and methods, may be practiced without these specific details. The description and representation herein are the common means used by those experienced or skilled in the art to most effectively convey the substance of their work to others skilled in the art. In other instances, well-known methods, procedures, components, and circuitry have not been described in detail to avoid unnecessarily obscuring aspects of the disclosure.
  • References in the specification to “one embodiment,” “an embodiment,” “an exemplary embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
  • 1. Overview
  • Embodiments of the present disclosure provide systems and methods that address the complexity inherent in evaluating Service Oriented Architecture (SOA) systems by using meta-agent based adaptation in multi-agent systems. For example, agent-based systems are by nature, distributed, autonomous, software components that can act in tandem by inter-agent communication and synchronization. This makes agent based systems much more appropriate for the automated evaluation of SOA systems. Embodiments of the present disclosure provide systems and methods for dynamically configuring meta-agents, enabling multi-agent based automated evaluation capability for distributed, SOA systems. The dynamically configured meta-agents in accordance with embodiments of the present disclosure can dynamically adapt to the non-deterministic nature of SOA systems to enable a continuous monitoring capability for detecting and circumventing operational errors as they arise.
  • 2. Agent-Based Systems
  • Embodiments of the present disclosure can be configured to effectively automate the evaluation (testing) of SOA systems by using meta-agent based adaptation in multi-agent systems. For example, in agent-based systems, agents can be generically defined in terms of their state-space (belief), and the behaviors they can activate. In an embodiment, state-space contains information about the agent's environment, world, or domain that is relevant to the agent and can be in the form of name-value tuples.
  • In an embodiment, behaviors are actions that an agent can perform either reactively, in response to an incoming message, or proactively on a continuous or one-time basis. In an embodiment, agent designers can construct agents by defining the state information they hold and by implementing their behavior set. For example, implementing a behavior can comprise writing software code that implements one or more actions for that behavior. In some agent based software frameworks, common actions can be built in to an agent's capabilities to simplify the process of behavior development. In conventional agent-based systems, however, agent behaviors and state are predetermined for an agent at development time.
  • Some alternative approaches to using statically constructed agents include machine learning, automated agent selection, and dynamic agent configuration approaches. For example, regarding machine learning approaches, machine-learning techniques can be utilized to enable agents to adapt to, or learn about their environment. This approach enables agents to incrementally modify their behavior in response to input stimuli (e.g. changes in the environment). Regarding automated agent selection approaches, given a repository of agents with known capabilities as well as information regarding the anticipated function of an agent, an automated selection method can choose the most appropriate agent to fulfill the specified functions. A dynamic agent configuration approach can include a request based agent configuration approach where behaviors are dynamically reconfigured in an existing agent based on a transactional model (i.e., a user sends new actions to an agent and the agent replies with an acknowledgement).
  • While the above approaches can ameliorate the problems of dealing with dynamism in agent-based systems, none of them are ideal for dealing with the ongoing automated evaluation of SOA systems. Machine learning approaches can cause existing agents to adapt. However, this is not ideal for SOAs, as they introduce complete new (unlearned) functionality at test time. Machine learning alone is not ideal to deal with automated SOA evaluation that require completely novel agent structures to deal with new components added to the system. Similarly, while automated agent selection could potentially be used when knowledge of all of the requisite agent types is known a priori, in SOA environments it is not always possible to deterministically know all the required agents and/or behaviors necessary to execute or evaluate dynamically composed functionality. Finally, dynamic agent configuration requires user intervention to manually reconfigure agents to fulfill the requirements of evaluating a dynamic SOA system. Given the potential complexity and rapid evolution possible in SOA systems, a manual approach would be very labor intensive, making it impractical.
  • Traditional multi-agent based systems use agents that have behavior that is determined at development time. For example, in traditional agent-based systems, agent capabilities are fixed so agents are limited to a static set of capabilities. Embodiments of the present disclosure use agents with adaptive capabilities that are not limited to static, preconfigured behaviors. Embodiments of the present disclosure use a multi-agent framework that adapts dynamically through the creation of specialized agents.
  • In embodiments of the present disclosure, agents are created and populated with behaviors at runtime. The agents have the capability to create, configure, and remove other agents (e.g., at or after runtime). These capabilities enable the creation of meta-agents that can reason about the environment and create new agents automatically.
  • 3. Exemplary SOA
  • Service-oriented architectures (SOAs) can be used to separate application functions into discrete services that can be accessed and used by different applications via a network. For example, SOA systems are currently being developed and deployed on the tactical edge to provide warfighters with a common operating picture by integrating data from both new and legacy software systems into a coherent framework. The operational stability of these systems in what is often a highly dynamic, compromised environment will increasingly become critical to mission success.
  • FIG. 1 is a diagram illustrating an exemplary SOA that can be used with embodiments of the present disclosure, the Tactical Service Oriented Architecture (TSOA). In an embodiment, TSOA is a collection of software components that comply with the Marine Air-Ground Task Force (MAGTF) Command and Control (C2) software architecture. TSOA software components include Commercial Off-The-Shelf (COTS) software, Government Off-the-Shelf (GOTS) software, and the Service Oriented Infrastructure (SOI) software developed specifically for the operating forces using Open Architecture principles as defined in the TSOA Software Architecture Description Document (SADD). In an embodiment, SOI acts as a data broker that allows legacy, stove piped applications to publish their services and subscribe to other applications' services.
  • FIG. 1 illustrates exemplary components of the TSOA system, including a SOI virtual machine (VM) 102, an external connector VM 104, a feature package VM 106, a map server VM 110, a SOI admin portal client 108, and applications 112. In an embodiment, the applications 112 are able, through SOI (e.g., through SOA VM 102 and/or external connector VM 104 and feature package VM 106), to provide services to one another. For example, in a use case for a publish/subscribe service, the IOSv1 application 112 d can publish enemy locations to SOI (e.g., via the IOSv1 connector of external connector VM 104). The AFATDS application 112 b can subscribe to the SOI data feed (e.g., via the AFATDS connector of SOI VM 102) and can use the published enemy locations for fire support. The Google Earth application 112 h can also subscribe to the SOI data feed (e.g., via feature package VM 106) and can display enemy positions overlaid on terrain.
  • While the TSOA is shown above as an example, it should be understood that embodiments of the present disclosure are not limited to working with the TSOA. For example, embodiments of the present disclosure can be used with any SOA and/or any other architecture that can be evaluated with agents.
  • 4. Dynamic Meta-Agent Configuration
  • Embodiments of the present disclosure include systems that introduce the idea of a dynamic meta-agent configuration capability through adaptation. In an embodiment, this capability serves as an enabler for reasoning in changing contexts, flexible configurations, and near real-time responsiveness and aims to address one of the biggest challenges faced by current multi-agent system development, which is agent awareness. Embodiments of the present disclosure support SOA test automation for regression (static) testing as well as a continuous, adaptive monitoring capability after deployment.
  • In embodiments of the present disclosure, meta-agents extend agent dynamism by introducing controller entities in the form of agents. This enables agents to create and populate other agents with behaviors based on current operational needs, thus mitigating the need for manual intervention or priori knowledge. Embodiments of the present disclosure include approaches that address the problems associated with automatic and dynamic evaluation of SOA systems.
  • FIG. 2 is a diagram of an exemplary dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure. The dynamic meta-agent configuration system of FIG. 2 includes a controller 202 (e.g., a controller device and/or a controller application), a server 204 (e.g., a server device and/or a server application), and a plurality of nodes 206 that can be used to evaluate a system under test 218. In an embodiment, system under test 218 is the SOA shown in FIG. 1 (e.g., in an embodiment the TSOA). In an embodiment, controller 202 includes client interface 208, and server 204 includes a repository of agent behaviors 210 and server threads 212. In an embodiment, each of nodes 206 can include a plurality of agents 214, and each of agents 214 can include a behavior interface 216. For example, node 206 a includes agent 214 a and behavior interface 216.
  • Each of controller 202, server 204, and/or nodes 206 can be implemented using hardware, software, and/or a combination of hardware or software. Further, each of controller 202, server 204, and/or nodes 206 can be implemented on the same device or on separate devices. Additionally, the devices used to implement controller 202, server 2014, and/or nodes 206 can be general purpose devices (e.g., one or more computers) and/or special purpose devices. For example, in an embodiment, controller 202, server 204, and nodes 206 can be implemented as a single special purpose device for dynamic meta-agent configuration (e.g., in an embodiment, implemented using a single chip). In an embodiment, server 204 is a special purpose meta-agent device (e.g., a device that can create and/or manage meta-agents) and/or a special purpose agent device (e.g., a device that can create and/or manage agents).
  • In an embodiment, server 204 can contain a processor and a memory storing instructions that, if executed, enables server 204 to perform operations (e.g., instructions for creating agents based on a specification sent by controller 202). In an embodiment where controller 202 is also a device, controller 202 can also contain a processor and a memory storing instructions that, if executed, enables controller 202 to perform operations (e.g., instructions for sending a stored specification for creating agents and/or meta-agents to server 204 and for receiving results from server 204).
  • In an embodiment, controller 202, server 204, and nodes 206 are implemented using software programs that can be installed on a plurality of different devices. For example, in an embodiment, an instance of a runtime of a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure comprises one instance of server 204 (e.g., implemented using a special purpose device or a general purpose computer) and one or more instances of nodes 206, each running on either the server device 204 or on remote devices (e.g., on remote computers) with network connectivity to the server device 204.
  • A dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure can be a multi-agent based framework written in a programming language, such as C++, Java, Python, JavaScript, etc., and can be both language and operating system agnostic. A dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure can permit easy language agnostic extensibility and enhancement to support the introduction of new systems and ad hoc test tools.
  • In an embodiment, controller 202 creates and configures agents 214 (e.g., at runtime) and interfaces with server 204 via client interface 208. In an embodiment, server 204 provides a repository of agent behaviors 210 that can be used to create and configure new agents 214 (e.g., at runtime). In an embodiment, nodes 206 are containers for agents 214, and agents 214 residing at each node 206 have the ability to dynamically create and destroy other agents 214. Exemplary functionality of controller 202, server 204, nodes 206, agents 214, behaviors 210, and meta-agents will now be described in greater detail.
  • 4.1 Controller and Server
  • In an embodiment, server 204 manages the communication between agents 214 and provides an interface for external devices and/or applications (e.g., controller 202) to control the runtime of the dynamic meta-agent configuration system. In an embodiment, server 204 does this through a language agnostic application programming interface (API) that allows applications (e.g., controller 202) to interface with a server instance either locally by running server 204 within the application's process, or remotely by connecting to server 204 running on the same computer or on a remote computer with network connectivity to the computer that server 204 is running on.
  • In an embodiment, client interface 208 gives controller 202 (e.g., in an embodiment, a control application) full control of an instance of the dynamic meta-agent configuration system. Controller 202 can create and destroy agents 214, manage agent behaviors 210, activate and deactivate agents 214, send messages to agents 214, retrieve behavior execution results and synchronize their execution with behaviors 210, and manage behavior delivery (e.g., based on the container target platform). Server 204 can maintain a repository of behaviors 210 that can be used to populate agents 214 at runtime. In an embodiment, controller 202 can further control synchronization of the dynamic meta-agent configuration system (e.g., between controller 202, server 204, and nodes 206).
  • 4.2 Nodes
  • In an embodiment, nodes 206 have unique names and act as containers for agents 214. In an embodiment, while nodes 206 have globally unique names, agent names only have to be unique within the node (e.g., node 206 a) that contains them. In an embodiment, addressing an agent in a runtime of a dynamic meta-agent configuration system requires both the node name as well as the agent name. In an embodiment, a node fulfills a number of functions including, but not limited to, handling incoming requests from other agents 214 for message delivery, agent creation and deletion, agent behavior management, agent activation and deactivation, file download and upload, scheduling the execution of agent behaviors 210, communicating with the sever 204 to deliver requests to remote agents, reporting the results of behavior execution back to the server 204, and implementing synchronization between agents 214.
  • 4.3 Agents
  • In an embodiment, agents 214 are autonomous, active objects. In an embodiments, agents 214 contain a state space that comprises name-value tuples and a set of named behaviors. Agents in a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure can be constructed dynamically at runtime through requests from the server 204 or from other agents 214. This capability enables agents 214 to create and configure other agents 214 at runtime. In an embodiment, behaviors 210 are stored in a central repository on the server 204. In an embodiment, when a Behavior is added to an agent (e.g., agent 214 a), its executable module is sent to the node (e.g., node 206 a) containing the agent so that the node can schedule it for execution.
  • 4.4 Behaviors
  • In an embodiment, behaviors 210 are units of execution that agents 214 can perform either reactively in response to an incoming message, or proactively on a continuous or one time basis. In an embodiment, behavior objects contain four methods for execution: setup, action, message, and teardown. However, it should be understood that any number of methods can be used with behavior objects and/or behaviors in accordance with embodiments of the present disclosure.
  • In an embodiment, the setUp method is called when a behavior is instantiated and is expected to perform initialization activities. In an embodiment, the action method implements the proactive execution of a behavior based on the execution mode specified. In an embodiment, the message method is called when an agent receives a message. For example, behaviors 210 can specify a topic filter comprising a list of topics that the behavior is interested in. In an embodiment, incoming messages that do not specify one of those topics in the topic filter are not propagated to the behavior. In an embodiment, the tearDown method is called on each behavior when an agent is deactivated. It can perform any de-initialization activities necessary to bring the system to a known state.
  • In an embodiment, proactive execution of a behavior can occur in a number of ways. For example, in an embodiment, OneShot execution can be used to activate the action method once when the agent is activated. In an embodiment, Periodic execution activates the action method continuously. TimedPeriodic execution can activate the action method every n milliseconds, and OnMessage execution can activate the action method upon the receipt of a specific message. In an embodiment, a delay value can be specified for proactive behaviors that delays their initial execution by a specified number of milliseconds. In an embodiment, the setup method, the action method, the message method, and the teardown method can generate a result object that includes the result of the execution as well as a log of the activities performed during the execution. Result objects can be passed back to server 204 for logging and reporting (e.g., to controller 202).
  • 4.5 Meta-Agents
  • Embodiments of the present disclosure introduce the idea of using meta-agents to evaluate SOA systems (e.g., the SOA system of FIG. 1). In an embodiment, meta-agents are agents that analyze the current state of an SOA system to detect trigger events that inject new requirements into the current agent framework. For example, one example of such an event is the addition of a new component to an online SOA system. Based on this analysis, meta-agents can automatically create and configure new agents 214 that address those new requirements. For example, meta-agents can dynamically perform an interoperability evaluation of a new component to ensure that its operation does not have detrimental effects on the SOA system. Alternatively, they can remove and destroy existing agents 214 that are no longer relevant. This capability enables a dynamic meta-agent configuration system in accordance with an embodiment of the present disclosure to evolve with the system under test 218 and is rooted in agents' ability to create and populate new agents with behaviors 210 from the server's 204 behavior repository. While meta-agents have been discussed herein with reference to SOA systems, embodiments of the present disclosure are applicable to a wide range of problems, and meta-agents in accordance with embodiments of the present disclosure can be used in conjunction with a variety of agent-based systems.
  • 5. Exemplary Methods
  • FIG. 3 is a flowchart of a method for evaluating an SOA using agents in accordance with an embodiment of the present disclosure. In step 302, a controller instructs a server to create a plurality of agents based on a specification. For example, in an embodiment, controller 202 is a control application (e.g., executing on a general purpose computer or a special purpose device) that contains a specification of an agent network needed for executing a static test on system under test 218 (i.e., the SOA shown in FIG. 1). In an embodiment, the specification can identify locations (e.g., nodes at target devices and/or nodes at specific target applications executing on specific target devices) for agents to be created. In an embodiment, the specification can further include additional or modified behaviors for agents to use. Further, in an embodiment, the specification can contain instructions for removing and/or existing agents. In an embodiment, a default set of instructions can be used for creating an agent (e.g., with default behaviors) if information for creating one or more specific agents isn't specified in the specification.
  • In step 304, a server creates the agents at nodes identified in the specification and populates them with behaviors. For example, in an embodiment, server 204 receives the specification from controller 202 and, based on information in the specification, creates agents 214 at nodes 206 on each target application machine of system under test 218. For example, in an embodiment, the target machine applications comprise AFATDS 112 b, IOSv1 112 d, and Google Earth 112 h. In an embodiment, based on information in the specification, agents 206 are populated with behaviors 210 that interact with applications to carry out static test automation.
  • In step 306, agents send results back to the controller. For example, in an embodiment, agents 214 can generate results that can be passed back to the server 204 and/or the controller 202. For example, the specification sent by controller 202 may include behaviors that instruct created agents to report information back to controller 202 once a certain event has occurred.
  • FIG. 4 is a flowchart of a method for evaluating an SOA using meta-agents in accordance with an embodiment of the present disclosure. In step 402, a controller instructs a server to create a plurality of meta-agents based on a specification. For example, in an embodiment, controller 202 contains a specification of a meta-agent network needed for executing a static test on system under test 218 (i.e., the SOA shown in FIG. 1). In an embodiment, the specification can identify locations e.g., nodes at target devices and/or nodes at specific target applications executing on specific target devices) for meta-agents to be created. In an embodiment, the specification can further include additional or modified behaviors for meta-agents and/or agents created by the meta-agents to use. Further, in an embodiment, the specification can contain instructions for removing and/or modifying existing agents (and/or meta-agents). In an embodiment, a default set of instructions can be used for creating a meta-agent or agent with default behaviors) if information for creating one or more specific meta-agents or agents isn't specified in the specification.
  • In step 404, a server creates the meta-agents at nodes identified in the specification and populates them with behaviors. For example, in an embodiment, server 204 receives the specification from controller 202 and, based on information in the specification, creates meta-agents at nodes 206 on each target application machine of system under test 218. In an embodiment, the meta-agents can have a similar structure as agents 214 (and meta-agents can also create, modify, and/or destroy other agents 214). In an embodiment, meta-agents are created at nodes 206 on all target machine applications (e.g., applications 112 a-112 h) for the SOA (e.g., the TSOA of FIG. 1) by default. In an embodiment, based on information in the specification, the meta-agents are populated with behaviors 210 that interact with applications at the target applications (e.g., applications 112 a-112 h).
  • In step 406, the meta-agents monitor system behavior and create, configure, and/or destroy agents in response to detecting a trigger event. For example, in an embodiment, the meta-agents at applications 112 a-112 h monitor system behavior and create and configure specialized agents 214 to periodically test and remediate or report problems in response to detecting trigger events (e.g., trigger events either specifically identified in the specification sent by controller 202 or default trigger events specified by server 204 based on information in behavior repository 210).
  • In step 408, agents and/or meta-agents send results back to the controller. For example, in an embodiment, the agents and/or meta-agents can generate results that can be passed back to the server 204 and/or the controller 202.
  • 6. Exemplary Meta-Agent System Used to Control a Plurality of Devices
  • Embodiments of the present disclosure can be applicable to systems of networked devices, such as Internet of Things (IoT) systems. For example, IoT nodes are usually implemented as a System-on-a-Chip (SoC) and can act autonomously. A meta-agent capability in accordance with an embodiment of the present disclosure can enable IoT nodes to dynamically adapt their operations based on changes in the environment or operational needs.
  • FIG. 5 is a diagram of an embodiment of an exemplary meta-agent system used to control a plurality of devices in accordance with an embodiment of the present disclosure. In FIG. 5, a meta-agent server 502 can control a plurality of networked devices 504 using meta-agents in accordance with an embodiment of the present disclosure.
  • Devices 504 can include any series of devices configured to communicate with each other over a network in accordance with embodiments of the present disclosure. For example, in an exemplary IoT embodiment, devices 504 are a plurality of devices that can wirelessly communicate with each other in a home network. In an embodiment, devices 504 are a plurality of devices in separate locations connected to each other over the internet. In an embodiment, devices 504 do not communicate directly with each other but rather communicate through meta-agent server 502.
  • In an embodiment, meta-agent server 502 can be a single device that combines the capabilities of controller 202 and server 204. In an embodiment, meta-agent server 502 can be implemented as a special purpose device for controlling devices in a network. In an embodiment, meta-agent server 502 can be implemented using a general purpose computer implementing meta-agent server software for controlling devices in a network. Additionally, in an embodiment, meta-agent server 502 can be implemented on a device in the network of devices, such as device 504 a, rather than on a separate device. For example, device 504 a can act as a “master” device for other devices in the network (e.g., devices 504 b and 504 c). In an embodiment, rather than implementing meta-agent server 502 as a separate device, all devices in the network (e.g., devices 504 a, 504 b, and 504 c) can implement the functionality of meta-agent server 502 a. For example, at any one time, one of devices 504 a, 504 h, and 504 c can be designated as the current master for the purposes of creating, destroying, and/or modifying meta-agents.
  • An example of home network IoT embodiment will now be discussed with reference to FIG. 5. In an embodiment, devices 504 are devices in a home network, and meta-agent server 502 is a special-purpose device managing devices 504. Meta-agent server 502 can create (e.g., with or without a specification) meta-agents at each of devices 504 and populate them with behaviors. The meta-agents at devices 504 can monitor the behavior of devices 504 and can optionally interact with applications executing at each of devices 504 (and/or logic or circuitry at each of devices 504). If the meta-agents detect a triggering event (e.g., specified in their behaviors), the meta-agents can create, configure, and/or destroy specialized agents to perform operations at devices 504 and/or report problems to meta-agent server 502.
  • 7. Exemplary Advantages
  • Embodiments of the present disclosure provide systems and methods for dynamically configuring meta-agents to evaluate SOA systems that enable a high degree of adaptability and require no human intervention. In an embodiment, systems and methods in accordance with embodiments of the present disclosure result in an approximately 75% reduction in labor effort required for testing when compared to current systems and methods for SOA evaluation that use manual testing.
  • Meta-agents in accordance with an embodiment of the present disclosure can reason about current needs and create specialized agents to address those needs. Further, embodiments of the present disclosure provide a high degree of adaptability required for ensuring stability of tactical SOA systems. For example, embodiments of the present disclosure enable meta-agents to create, destroy, and modify agents so that the agents that are created can adapt they system as changes occur without human intervention. This adaptability enabled by embodiments of the present disclosure greatly improves the efficiency, responsiveness, and stability of agent systems when compared to prior manually managed systems.
  • Embodiments of the present disclosure applicable to many SOA applications (e.g., banking) and can be extended to support the introduction of new SOA components without disrupting the operation of the system.
  • 8. CONCLUSION
  • It is to be appreciated that the Detailed Description, and not the Abstract, is intended to be used to interpret the claims. The Abstract may set forth one or more but not all exemplary embodiments of the present disclosure as contemplated by the inventor(s), and thus, is not intended to limit the present disclosure and the appended claims in any way.
  • The present disclosure has been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
  • The foregoing description of the specific embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.
  • Any representative signal processing functions described herein can be implemented using computer processors, computer logic, application specific integrated circuits (ASIC), digital signal processors, etc., as will be understood by those skilled in the art based on the discussion given herein. Accordingly, any processor that performs the signal processing functions described herein is within the scope and spirit of the present disclosure.
  • The above systems and methods may be implemented as a computer program executing on a machine, as a computer program product, or as a tangible and/or non-transitory computer-readable medium having stored instructions. For example, the functions described herein could be embodied by computer program instructions that are executed by a computer processor or any one of the hardware devices listed above. The computer program instructions cause the processor to perform the signal processing functions described herein. The computer program instructions (e.g., software) can be stored in a tangible non-transitory computer usable medium, computer program medium, or any storage medium that can be accessed by a computer or processor. Such media include a memory device such as a RAM or ROM, or other type of computer storage medium such as a computer disk or CD ROM. Accordingly, any tangible non-transitory computer storage medium having computer program code that cause a processor to perform the signal processing functions described herein are within the scope and spirit of the present disclosure.
  • While various embodiments of the present disclosure have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the disclosure. Thus, the breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments.

Claims (20)

What is claimed is:
1. A system, comprising:
a controller device configured to send a specification containing instructions for creating a plurality of meta-agents; and
a server device in communication with the controller device, configured to:
receive the specification from the controller, and
create the plurality of meta-agents at respective nodes in a plurality of nodes, wherein each meta-agent in the plurality of meta-agents is configured to create an additional agent in response to detecting a trigger event.
2. The system of claim 1, wherein the server device and the controller device are implemented within a host device.
3. The system of claim 1, wherein the specification identifies the respective nodes in the plurality of nodes for creating the meta-agents.
4. The system of claim 1, wherein the plurality of meta-agents are configured to monitor respective target applications at the respective nodes in the plurality of nodes.
5. The system of claim 4, wherein the specification identifies the respective target applications for the meta-agents to monitor.
6. The system of claim 1, wherein the plurality of meta-agents are configured to monitor respective target devices at the respective nodes in the plurality of nodes.
7. The system of claim 6, wherein the respective target devices are configured to communicate with each other in an Internet of Things (IoT) system.
8. The system of claim 6, wherein the specification identifies the respective target devices for the meta-agents to monitor.
9. The system of claim 1, wherein each meta-agent in the plurality of meta-agents is configured to modify an existing agent in response to detecting the trigger event.
10. The system of claim 1, wherein each meta-agent in the plurality of meta-agents is configured to delete an existing agent in response to detecting the trigger event.
11. The system of claim 1 wherein the specification identifies a plurality of trigger events including the trigger event.
12. The system of claim 1, wherein the plurality of meta-agents are configured to send information to the controller device.
13. The system of claim 1, wherein the server device is configured to populate the meta-agents with a plurality of behaviors based on information in the specification.
14. The system of claim 1, wherein the server device is configured to populate the meta-agents with a plurality of behaviors based on information stored at the server device.
15. A system, comprising:
a controller device configured to send a specification containing instructions for creating a plurality of meta-agents, wherein the specification identifies:
a plurality of target applications executing at a plurality of nodes on a plurality of target devices, and
a plurality of behaviors for the plurality of meta-agents, wherein the behaviors include behaviors for monitoring the plurality of target applications for one or more trigger events and behaviors for creating one or more additional agents in response to detecting a specific trigger event in the plurality of trigger events; and
a server device in communication with the controller device, configured to:
receive the specification from the controller,
create the plurality of meta-agents at the nodes,
populate the plurality of meta-agents with behaviors based on information stored at the server device,
receive result information from a meta-agent in the plurality of meta-agents, and
send the result information to the controller device.
16. A method, comprising:
receiving, at a meta-agent device, a specification containing instructions for creating a plurality of meta-agents; and
creating, at the meta-agent device, the plurality of meta-agents at respective nodes in a plurality of nodes, wherein each meta-agent in the plurality of meta-agents creates an additional agent in response to detecting a trigger event.
17. The method of claim 1, wherein the specification identifies the respective nodes in the plurality of nodes for creating the meta-agents.
18. The method of claim 1, wherein the plurality of meta-agents monitor respective target applications at the respective nodes in the plurality of nodes.
19. The method of claim 18, wherein the specification identities the respective target applications for the meta-agents to monitor.
20. The method of claim 1, further comprising:
populating the meta-agents with a plurality of behaviors based on information in the specification.
US15/625,136 2016-06-16 2017-06-16 Meta-agent based adaptation in multi-agent systems for soa system evaluation Abandoned US20170366443A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/625,136 US20170366443A1 (en) 2016-06-16 2017-06-16 Meta-agent based adaptation in multi-agent systems for soa system evaluation
US17/541,203 US20220239580A1 (en) 2016-06-16 2021-12-02 Meta-Agent Based Adaptation in Multi-Agent Systems for SOA System Evaluation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662351084P 2016-06-16 2016-06-16
US15/625,136 US20170366443A1 (en) 2016-06-16 2017-06-16 Meta-agent based adaptation in multi-agent systems for soa system evaluation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/541,203 Continuation US20220239580A1 (en) 2016-06-16 2021-12-02 Meta-Agent Based Adaptation in Multi-Agent Systems for SOA System Evaluation

Publications (1)

Publication Number Publication Date
US20170366443A1 true US20170366443A1 (en) 2017-12-21

Family

ID=60659837

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/625,136 Abandoned US20170366443A1 (en) 2016-06-16 2017-06-16 Meta-agent based adaptation in multi-agent systems for soa system evaluation
US17/541,203 Abandoned US20220239580A1 (en) 2016-06-16 2021-12-02 Meta-Agent Based Adaptation in Multi-Agent Systems for SOA System Evaluation

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/541,203 Abandoned US20220239580A1 (en) 2016-06-16 2021-12-02 Meta-Agent Based Adaptation in Multi-Agent Systems for SOA System Evaluation

Country Status (1)

Country Link
US (2) US20170366443A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210377240A1 (en) * 2020-06-02 2021-12-02 FLEX Integration LLC System and methods for tokenized hierarchical secured asset distribution
CN114296342A (en) * 2021-11-11 2022-04-08 电子科技大学 Consistency control method for distributed dynamic event-triggered multi-agent system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078382A1 (en) * 2000-11-29 2002-06-20 Ali Sheikh Scalable system for monitoring network system and components and methodology therefore
US6823382B2 (en) * 2001-08-20 2004-11-23 Altaworks Corporation Monitoring and control engine for multi-tiered service-level management of distributed web-application servers
US7272614B2 (en) * 2003-08-01 2007-09-18 Sap Aktiengesellschaft Computer-implemented method and system to support in developing a process specification for a collaborative process
US20070008890A1 (en) * 2005-07-11 2007-01-11 Tseitlin Eugene R Method and apparatus for non-stop multi-node system synchronization
US7516112B1 (en) * 2006-03-24 2009-04-07 Sandia Corporation Flexible, secure agent development framework
US7870242B2 (en) * 2008-10-01 2011-01-11 Man Nguyen Flexible compliance agent with integrated remediation
CA2726729C (en) * 2008-10-03 2017-01-24 Benefitfocus.Com, Inc. Systems and methods for automatic creation of agent-based systems
US9258206B2 (en) * 2012-03-14 2016-02-09 Panorama9, Inc. System administration
WO2016025380A1 (en) * 2014-08-11 2016-02-18 Weft, Inc. Systems and methods for providing logistics data
US20160117594A1 (en) * 2014-10-22 2016-04-28 Yandy Perez Ramos Method and system for developing a virtual sensor for determining a parameter in a distributed network
US10938909B2 (en) * 2015-12-26 2021-03-02 Intel Corporation Reusable device management in machine-to-machine systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210377240A1 (en) * 2020-06-02 2021-12-02 FLEX Integration LLC System and methods for tokenized hierarchical secured asset distribution
CN114296342A (en) * 2021-11-11 2022-04-08 电子科技大学 Consistency control method for distributed dynamic event-triggered multi-agent system

Also Published As

Publication number Publication date
US20220239580A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
US11487536B2 (en) System for automating user-defined actions for applications executed using virtual machines in a guest system
US20220239580A1 (en) Meta-Agent Based Adaptation in Multi-Agent Systems for SOA System Evaluation
US10275258B2 (en) Systems and methods for enhancing the availability of multi-tier applications on cloud computing platforms
US20180088935A1 (en) Microservices application configuration based on runtime environment
US10241775B2 (en) Dynamic release baselines in a continuous delivery environment
WO2016048732A1 (en) Cloud-based parallel computation using actor modules
US10776254B1 (en) Executing integration scenario regression tests in customer landscapes
US20210288885A1 (en) Simulation and testing of infrastucture as a service scale using a container orchestration engine
CN113867600A (en) Development method and device for processing streaming data and computer equipment
US10789145B2 (en) System and method for implementing a server configuration drift monitoring tool
CN110569113A (en) Method and system for scheduling distributed tasks and computer readable storage medium
US9106676B1 (en) Grid-based server messaging infrastructure
CN110083366B (en) Application running environment generation method and device, computing equipment and storage medium
Krainyk et al. Internet-of-Things Device Set Configuration for Connection to Wireless Local Area Network.
US11329930B2 (en) Generating scenarios for automated execution of resources in a cloud computing environment
US11381665B2 (en) Tracking client sessions in publish and subscribe systems using a shared repository
US20230135884A1 (en) Propagating application properties to multiple instances
CN110609680A (en) Parameter transmission method and device based on Spring interceptor, storage medium and equipment
US20200073727A1 (en) Scheduling software jobs having dependencies
US11809276B2 (en) Container-based stateful application resilience to node failure
US11467912B2 (en) Feature toggle management with application behavior point-in-time restoration using event sourcing
Wolf et al. Supporting component-based failover units in middleware for distributed real-time and embedded systems
CN105530140A (en) Cloud scheduling system, method and device for removing tight coupling of use case and environment
Telschig et al. Towards safe dynamic updates of distributed embedded applications in factory automation
US10990458B2 (en) Event communication between applications

Legal Events

Date Code Title Description
AS Assignment

Owner name: THE GOVERNMENT OF THE UNITED STATES OF AMERICA, AS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FOUAD, HESHAM;RUSSELL, STEPHEN;GILLIAM JR., ANTONIO;SIGNING DATES FROM 20170614 TO 20170615;REEL/FRAME:042748/0493

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION