1) The document discusses an agent-based approach for developing complex software systems. It argues that agent-oriented approaches are well-suited for building distributed systems due to their ability to model complexity, interactions, and organizational relationships.
2) Complex systems inherently exhibit hierarchy, nearly decomposable subsystems, and changing interactions. An agent-based approach models a system as autonomous agents that can achieve objectives through flexible and decentralized interactions.
3) Key advantages of the agent approach include its use of agents, interactions, and organizations as natural abstractions to represent subsystems, components, and relationships in complex systems. It also allows runtime determination of interactions to reduce coupling between components.
Dear Students
Ingenious techno Solution offers an expertise guidance on you Final Year IEEE & Non- IEEE Projects on the following domain
JAVA
.NET
EMBEDDED SYSTEMS
ROBOTICS
MECHANICAL
MATLAB etc
For further details contact us:
enquiry@ingenioustech.in
044-42046028 or 8428302179.
Ingenious Techno Solution
#241/85, 4th floor
Rangarajapuram main road,
Kodambakkam (Power House)
http://www.ingenioustech.in/
XP-Manchester 2013 Software Architecture for Agile Developers IntroChris F Carroll
An introduction to software architecture for agile developers.
The first 28 slides are commented and/or are exercises which can be worked through solo.
Course material from my Object-Oriented Development course.This presentation covers the design phase and focuses on a variety of software design principles.
Dear Students
Ingenious techno Solution offers an expertise guidance on you Final Year IEEE & Non- IEEE Projects on the following domain
JAVA
.NET
EMBEDDED SYSTEMS
ROBOTICS
MECHANICAL
MATLAB etc
For further details contact us:
enquiry@ingenioustech.in
044-42046028 or 8428302179.
Ingenious Techno Solution
#241/85, 4th floor
Rangarajapuram main road,
Kodambakkam (Power House)
http://www.ingenioustech.in/
XP-Manchester 2013 Software Architecture for Agile Developers IntroChris F Carroll
An introduction to software architecture for agile developers.
The first 28 slides are commented and/or are exercises which can be worked through solo.
Course material from my Object-Oriented Development course.This presentation covers the design phase and focuses on a variety of software design principles.
eFrame® for Insurance Solvency II Stress TestingSecondFloor
Today not many insurance can claim their Stress Test report is credible enough to base their management strategy on.
Add to this the governance and workflow for each risk type, ensuring modelling processes and risk calculations are running on time and based on validated data, insurers can feel confident that ongoing compliance and supervisory review will be efficient. Having all this is in one proven solution eases the stress of bringing about the positive change intended by the Solvency regulations.
Business Benefits
eFrame® for Insurance Solvency II Stress Testing enables a centralized approach to stress testing that is operationally efficient, overcoming the cost and resource issues that hinder a Insurance’s ability to drive their investments in a prudent way.
A dedicated framework, and working with assumptions that are in line with the actual stressed situation faced by the organisation and with the models actually used for the production of regulatory submissions, gives confidence in the results and subsequent report. As such, the results of the Stress Test and ad-hoc scenario analyses are respected in the business and action is taken on the reports.
Crucially, re-running stress tests to see whether restructuring in light of previous insights has created greater resilience, helps make and explain executive management decisions.
Software design is a process through which requirements are translated into a ― blueprint for constructing the software.
Initially, the blueprint shows how the software will look and what kind of data or components will be required to in making it.
The software is divided into separately named components, often called ‘MODULES’, that are used to detect problems at ease.
This follows the "DIVIDE AND CONQUER" conclusion. It's easier to solve a complex problem when you break it into manageable pieces.
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...Vincenzo De Florio
Building on top of classic work on the perception of natural systems this paper addresses the role played by such quality in
environments where change is the rule rather than the exception. As in natural systems, perception in software systems takes two
major forms: sensory perception and awareness (also known as apperception). For each of these forms we introduce semi-formal
models that allow us to discuss and characterize perception and apperception failures in software systems evolving in environments
subjected to rapid and sudden changes—such as those typical of ubiquitous and pervasive computing. Our models also provide us
with two partial orders to compare such software systems with one another as well as with reference environments. When those
environments evolve or change, or when the software themselves evolve after their environments, the above partial orders may be
used to compute new environmental fits and different strategic fits and gain insight on the degree of resilience achieved through the
current adaptation steps.
Evidence for my ePortfolio - I designed this 8-hour training to prepare employees for the installation of a new, more automated telephone system.
http://eportfolio4mwalkerwade.wordpress.com
Hierarchical Decomposition Heuristic for Scheduling: Coordinated Reasoning fo...Alkis Vazacopoulos
This paper presents a new technique for decomposing and rationalizing large decision-making problems into a common and consistent framework. We call this the hierarchical decomposition heuristic (HDH) which focuses on obtaining "globally feasible" solutions to the overall problem, i.e., solutions which are feasible for all decision-making elements in a system. The HDH is primarily intended to be applied as a standalone tool for managing a decentralized and distributed system when only globally consistent solutions are necessary or as a lower bound to a maximization problem within a global optimization strategy such as Lagrangean decomposition. An industrial scale scheduling example is presented that demonstrates the abilities of the HDH as an iterative and integrated methodology in addition to three small motivating examples. Also illustrated is the HDH's ability to support several types of coordinated and collaborative interactions.
eFrame® for Insurance Solvency II Stress TestingSecondFloor
Today not many insurance can claim their Stress Test report is credible enough to base their management strategy on.
Add to this the governance and workflow for each risk type, ensuring modelling processes and risk calculations are running on time and based on validated data, insurers can feel confident that ongoing compliance and supervisory review will be efficient. Having all this is in one proven solution eases the stress of bringing about the positive change intended by the Solvency regulations.
Business Benefits
eFrame® for Insurance Solvency II Stress Testing enables a centralized approach to stress testing that is operationally efficient, overcoming the cost and resource issues that hinder a Insurance’s ability to drive their investments in a prudent way.
A dedicated framework, and working with assumptions that are in line with the actual stressed situation faced by the organisation and with the models actually used for the production of regulatory submissions, gives confidence in the results and subsequent report. As such, the results of the Stress Test and ad-hoc scenario analyses are respected in the business and action is taken on the reports.
Crucially, re-running stress tests to see whether restructuring in light of previous insights has created greater resilience, helps make and explain executive management decisions.
Software design is a process through which requirements are translated into a ― blueprint for constructing the software.
Initially, the blueprint shows how the software will look and what kind of data or components will be required to in making it.
The software is divided into separately named components, often called ‘MODULES’, that are used to detect problems at ease.
This follows the "DIVIDE AND CONQUER" conclusion. It's easier to solve a complex problem when you break it into manageable pieces.
This Presentation contains all the topics in design concept of software engineering. This is much more helpful in designing new product. You have to consider some of the design concepts that are given in the ppt
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...Vincenzo De Florio
Building on top of classic work on the perception of natural systems this paper addresses the role played by such quality in
environments where change is the rule rather than the exception. As in natural systems, perception in software systems takes two
major forms: sensory perception and awareness (also known as apperception). For each of these forms we introduce semi-formal
models that allow us to discuss and characterize perception and apperception failures in software systems evolving in environments
subjected to rapid and sudden changes—such as those typical of ubiquitous and pervasive computing. Our models also provide us
with two partial orders to compare such software systems with one another as well as with reference environments. When those
environments evolve or change, or when the software themselves evolve after their environments, the above partial orders may be
used to compute new environmental fits and different strategic fits and gain insight on the degree of resilience achieved through the
current adaptation steps.
Evidence for my ePortfolio - I designed this 8-hour training to prepare employees for the installation of a new, more automated telephone system.
http://eportfolio4mwalkerwade.wordpress.com
Hierarchical Decomposition Heuristic for Scheduling: Coordinated Reasoning fo...Alkis Vazacopoulos
This paper presents a new technique for decomposing and rationalizing large decision-making problems into a common and consistent framework. We call this the hierarchical decomposition heuristic (HDH) which focuses on obtaining "globally feasible" solutions to the overall problem, i.e., solutions which are feasible for all decision-making elements in a system. The HDH is primarily intended to be applied as a standalone tool for managing a decentralized and distributed system when only globally consistent solutions are necessary or as a lower bound to a maximization problem within a global optimization strategy such as Lagrangean decomposition. An industrial scale scheduling example is presented that demonstrates the abilities of the HDH as an iterative and integrated methodology in addition to three small motivating examples. Also illustrated is the HDH's ability to support several types of coordinated and collaborative interactions.
The Role of the Architect in ERP and PDM System DeploymentGlen Alleman
The architect’s role in the development of an ERP or PDM system is to maintain the integrity of the vision statement produced by the owners, users, and funders of the system.
Agent Assisted Methodologies have become an
important subject of research in advance Software Engineering.
Several methodologies have been proposed as, a theoretical
approach, to facilitate and support the development of complex
distributed systems. An important question when facing the
construction of Agent Applications is deciding which
methodology to follow. Trying to answer this question, a
framework with several criteria is applied in this paper for the
comparative analysis of existing multiagent system
methodologies. The results of the comparative over two of them,
conclude that those methodologies have not reached a sufficient
maturity level to be used by the software industry. The
framework has also proved its utility for the evaluation of any
kind of Agent Assisted Software Engineering Methodology.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
PHP Frameworks: I want to break free (IPC Berlin 2024)
An agent based approach for building complex software systems
1. AN AGENT-BASED APPROACH FOR
BUILDING COMPLEX
SOFTWARE SYSTEMS
WHY AGENT-ORIENTED APPROACHES ARE WELL SUITED FOR
DEVELOPING COMPLEX, DISTRIBUTED SYSTEMS.
B
uilding high-quality, industrial- ented techniques, the most compelling argument
strength software is difficult. would be to quantitatively show how their adoption
Indeed, it has been argued that improved the development process in a range of proj-
developing such software in ects. However, such data is simply not available (as it
domains like telecommunications, is not for approaches like patterns, application frame-
industrial control, and business process manage- works, and componentware). Given this situation,
ment represents one of the most complex construc- the best that can be achieved is a qualitative justifica-
tion tasks humans undertake. Against this tion of why agent-oriented approaches are well suited
background, a wide range of software engineering to engineering complex, distributed software systems.
paradigms have been devised.
Each successive development Managing Complexity in
either claims to make the engi- Software Systems
neering process easier or Industrial-strength software is
promises to extend the complex- N ICHOLAS R. J ENNINGS complex: it has a large number of
ity of applications that can feasi- parts that have many interactions
bly be built. Although evidence [9]. Moreover this complexity is
is emerging to support these not accidental [2], it is an innate
claims, researchers continue to property of large systems. Given
strive for more effective techniques. To this end, this this situation, the role of software engineering is to
article will argue that analyzing, designing, and provide structures and techniques that make it eas-
implementing complex software systems as a collec- ier to handle complexity. Fortunately for designers,
tion of interacting, autonomous agents (that is, as a this complexity exhibits a number of important
multiagent system [4]) affords software engineers a regularities [9]:
number of significant advantages over contemporary
methods. This is not to say that agent-oriented soft- • Complexity frequently takes the form of a hierar-
ware engineering represents a silver bullet [2]—there chy. That is, a system composed of interrelated
is no evidence to suggest it will represent an order of subsystems, each of which is in turn hierarchic in
magnitude improvement in productivity. However, structure, until the lowest level of elementary sub-
the increasing number of deployed applications [4, system is reached. The precise nature of these orga-
8] bears testament to the potential advantages that nizational relationships varies between subsystems,
accrue from such an approach. however, some generic forms (such as client/server,
In seeking to demonstrate the efficacy of agent-ori- peer, team, and so forth) can be identified. These
COMMUNICATIONS OF THE ACM April 2001/Vol. 44, No. 4 35
2. relationships are not static: they often vary over of basic components to be grouped together and
time. treated as a higher-level unit of analysis, and pro-
• The choice of which components in the system viding a means of describing the high-level rela-
are primitive is relatively arbitrary and is defined tionships between various units.
by the observer’s aims and objectives.
• Hierarchic systems evolve more quickly than The Case for Agent-Oriented Software
nonhierarchic ones of comparable size (that is, Engineering
complex systems will evolve from simple systems The first step in arguing for an agent-oriented
more rapidly if there are clearly identifiable stable approach to software engineering involves identify-
intermediate forms than if there are not). ing the key concepts of agent-based computing. The
• It is possible to distinguish between the interac- first such concept is that of an agent: an agent is an
tions among subsystems and those within subsys- encapsulated computer system situated in some
tems. The latter are both more frequent (typically at environment and capable of flexible, autonomous
least an order of magnitude more) and more pre-
dictable than the former. This gives rise to the view Figure 1. View of a canonical complex system.
that complex systems are nearly decomposable: sub-
systems can be treated almost as if they are inde-
pendent, but not quite since there are some
interactions between them. Moreover, although
many of these interactions can be predicted at
design time, some cannot.
Drawing these insights together, it is possible to
define a canonical view of a complex system (see Fig- subsystem related to infrequent
ure 1). The system’s hierarchical nature is expressed interaction
subsystem frequent interaction
through the “related to” links, components within a component
subsystem are connected through “frequent interac-
tion” links, and interactions between components are
expressed through “infrequent interaction” links. action in that environment in order to meet its
Given these observations, software engineers have design objectives [10].
devised a number of fundamental tools of the trade There are a number of points about this definition
for helping to manage complexity [1]: that require elaboration. Agents are: clearly identifi-
able problem-solving entities with well-defined
Decomposition: The most basic technique for boundaries and interfaces; situated (embedded) in a
tackling large problems is to divide them into particular environment over which they have partial
smaller, more manageable chunks, each of which control and observability—they receive inputs related
can then be dealt with in relative isolation (note to the state of their environment through sensors and
the nearly decomposable subsystems in Figure 1). they act on the environment through effectors;
Decomposition helps tackle complexity because it designed to fulfill a specific role—they have particular
limits the designer’s scope. objectives to achieve; autonomous—they have con-
Abstraction: The process of defining a simplified trol both over their internal state and over their own
model of the system that emphasizes some of the behavior; capable of exhibiting flexible problem-solv-
details or properties, while suppressing others. ing behavior in pursuit of their design objectives—
Again, this works because it limits the designer’s being both reactive (able to respond in a timely
scope of interest at a given time. fashion to changes that occur in their environment)
Organization1: The process of defining and man- and proactive (able to opportunistically adopt goals
aging the interrelationships between the various and take the initiative) [11].
problem-solving components (note the subsystem When adopting an agent-oriented view, it soon
and interaction links of Figure 1). The ability to becomes apparent that most problems require or
specify and enact organizational relationships helps involve multiple agents: to represent the decentralized
designers tackle complexity by: enabling a number nature of the problem, the multiple loci of control,
the multiple perspectives or the competing interests.
1
Booch actually uses the term “hierarchy” [1]; however, this invariably gives the con-
Moreover, the agents will need to interact with one
notation of control. Hence the more neutral term “organization” is used here. another: either to achieve their individual objectives
36 April 2001/Vol. 44, No. 4 COMMUNICATIONS OF THE ACM
3. or to manage the dependencies that ensue from being agents may form a team to deliver a service that no
situated in a common environment. These interac- one individual can offer). The temporal extent of
tions can vary from simple semantic interoperation, these relationships can also vary enormously, ranging
through traditional client/server-type interactions, to from providing a service as a one-off option to a per-
rich social interactions (the ability to cooperate, coor- manent bond. To cope with this variety and dynam-
dinate, and negotiate about a course of action). ics, agent researchers have devised protocols that
Whatever the nature of the social process, how- enable organizational groupings to be formed and dis-
ever, there are two points that qualitatively differenti- banded, specified mechanisms to ensure groupings act
ate agent interactions from those that occur in other together in a coherent fashion, and developed struc-
software engineering paradigms. First, agent-oriented tures to characterize the macro behavior of collectives
interactions generally occur through a high-level [4, 11].
(declarative) agent communication language (often Drawing these points together (see Figure 2), it can
based on speech act theory [6]). Consequently, inter- be seen that adopting an agent-oriented approach to
software engineering means decomposing the prob-
Figure 2. Canonical view of a multiagent system. lem into multiple, autonomous components that can
act and interact in flexible ways to achieve their set
agent
objectives. The key abstraction models that define the
interaction
organizational agent-oriented mindset are agents, interactions, and
relationship
organizations. Finally, explicit structures and mecha-
nisms are often used to describe and manage the com-
plex and changing web of organizational relationships
that exist between the agents.
The argument in favor of an agent-oriented
Sphere of approach to software engineering includes:
visibility
and
influence • Show that agent-oriented decompositions are an
Environment
effective way of partititioning the problem space of
a complex system;
actions are conducted at the knowledge level [5]: in • Show that the key abstractions of the agent-ori-
terms of which goals should be followed, at what ented mindset are a natural means of modeling
time and by whom (compare this with method invo- complex systems; and
cation or function calls that operate at a purely syn- • Show that the agent-oriented philosophy for
tactic level). Secondly, as agents are flexible modeling and managing organizational relation-
problem-solvers, operating in an environment in ships is appropriate for dealing with the dependen-
which they have only partial control and observabil- cies and interactions that exist in complex systems.
ity, interactions need to be handled in a similarly flex-
ible manner. Thus, agents need the computational The Merits of Agent-Oriented
apparatus to make context-dependent decisions Decompositions
about the nature and scope of their interactions and Complex systems consist of a number of related sub-
to initiate (and respond to) interactions that were not systems organized in a hierarchical fashion (see Fig-
foreseen at design time. ure 1). At any given level, subsystems work together
Since agents act either on behalf of individuals or to achieve the functionality of their parent system.
companies or as part of some wider initiative, there is Moreover, within a subsystem, the constituent com-
typically some underpinning organizational context ponents work together to deliver the overall func-
to agents’ interactions. This context defines the nature tionality. Thus, the same basic model of interacting
of the relationship between the agents. For example, components, working together to achieve particular
they may be peers working together in a team or one objectives occurs throughout the system. Given this
may be the manager of the others. To capture such fact, it is entirely natural to modularize the compo-
links, agent systems have explicit constructs for mod- nents in terms of the objectives they achieve.2 In
eling organizational relationships (manager, team other words, each component can be thought of as
member). In many cases, these relationships are sub- achieving one or more objectives. A second impor-
ject to ongoing change: social interaction means exist- 2
The view that decompositions based upon functions/actions/processes are more intu-
ing relationships evolve (a team of peers may elect a itive and easier to produce than those based upon data/objects is even acknowledged
leader) and new relations are created (a number of within the object-oriented community (see [7]).
COMMUNICATIONS OF THE ACM April 2001/Vol. 44, No. 4 37
4. tant observation is that complex systems have mul- eral, there will be multiple candidates and the dif-
tiple loci of control: “real systems have no top” [7]. ficult task is picking the most appropriate one.
Applying this philosophy to objective-achieving When designing software, the most powerful
decompositions means the individual components abstractions are those that minimize the semantic
should localize and encapsulate their own control. gap between the units of analysis that are intu-
Thus, entities should have their own thread of con- itively used to conceptualize the problem and the
trol (that is, they should be active) and they should constructs present in the solution paradigm. In the
have control over their own actions (that is, they case of complex systems, the problem to be charac-
should be autonomous). terized consists of subsystems, subsystem compo-
For the active and autonomous components to ful- nents, interactions and organizational
fill both their individual and collective objectives, they relationships. Taking each in turn:
need to interact (recall complex systems are only nearly
decomposable). However the system’s inherent com- • Subsystems naturally correspond to agent organi-
plexity means it is impossible to a priori know about all zations. They involve a number of constituent
potential links: interactions will occur at unpredictable components that act and interact according to their
times, for unpredictable reasons, between unpre- role within the larger enterprise.
dictable components. For this reason, it is futile to try • The case for viewing subsystem components as
and predict or analyze all the possibilities at design agents has been made previously.
time. It is more realistic to endow the components with
the ability to make decisions about the nature and The interplay between the subsystems and
scope of their interactions at runtime. From this, it fol- between their constituent components is most natu-
lows that components need the ability to initiate (and rally viewed in terms of high-level social interactions:
respond to) interactions in a flexible manner. “in a complex system…at any given level of abstrac-
The policy of deferring to runtime decisions about tion, we find meaningful collections of objects that
component interactions facilitates the engineering of collaborate to achieve some higher-level view” [1].
complex systems in two ways. First, problems associ- This view accords precisely with the knowledge-level
ated with the coupling of components are signifi- treatment of interaction afforded by the agent-
cantly reduced (by dealing with them in a flexible and oriented approach. Agent systems are invariably
declarative manner). Components are specifically described in terms of “cooperating to achieve com-
designed to deal with unanticipated requests and can mon objectives,” “coordinating their actions” or
spontaneously generate requests for assistance if they “negotiating to resolve conflicts.”
find themselves in difficulty. Moreover because these Complex systems involve changing webs of rela-
interactions are enacted through a high-level agent tionships between their various components. They
communication language, coupling becomes a also require collections of components to be treated as
knowledge-level issue. At a stroke this removes syn- a single conceptual unit when viewed from a different
tactic concerns from the types of errors caused by level of abstraction. Here again the agent-oriented
unexpected interactions. Secondly, the problem of mindset provides suitable abstractions. A rich set of
managing control relationships between the software structures are available for explicitly representing
components (a task that bedevils traditional objec- organizational relationships. Interaction protocols
tive-based decompositions) is significantly reduced. exist for forming new groupings and disbanding
All agents are continuously active and any coordina- unwanted ones. Finally, structures are available for
tion or synchronization that is required is handled modeling collectives. The latter point is especially
bottom-up through interagent interaction. useful in relation to representing subsystems since
From this discussion, it is apparent that the natural they are nothing more than a team of components
way to modularize a complex system is in terms of working together to achieve a collective goal.
multiple autonomous components that can act and
interact in flexible ways in order to achieve their set
The Need for Flexible Management of
objectives. Given this, the agent-oriented approach is
Changing Organizational Structures
simply the best fit to this ideal. Organizational constructs are first-class entities in
agent systems—explicit representations are made of
The Suitability of Agent-Oriented organizational relationships and structures. More-
Abstractions over, agent-oriented systems have the concomitant
A significant part of the design process is finding computational mechanisms for flexibly forming,
the right models for viewing the problem. In gen- maintaining, and disbanding organizations. This
38 April 2001/Vol. 44, No. 4 COMMUNICATIONS OF THE ACM
5. representational power enables agent systems to way of characterizing many types of problems. Just as
exploit two facets of the nature of complex systems. the real-world is populated with objects that have
First, the notion of a primitive component can be operations performed on them, so it is equally full of
varied according to the needs of the observer. Thus active, purposeful agents that interact to achieve their
at one level, entire subsystems can be viewed as sin- objectives (see the sidebar for more detailed compari-
gletons, alternatively teams or collections of agents son). Indeed, many object-oriented analyses start from
can be viewed as primitive components, and so on precisely this perspective: “we view the world as a set of
until the system eventually bottoms out. Secondly, autonomous agents that collaborate to perform some
such structures provide the stable intermediate forms higher level function” [1].
that are essential for the rapid development of com- The basic building blocks of the programming
plex systems. Their availability means that individ- models exhibit increasing degrees of localization and
ual agents or organizational groupings can be encapsulation [8], and agents follow this trend by
developed in relative isolation and then added into localizing purpose inside each agent, by giving each
the system in an incremental manner. This, in turn, agent its own thread of control, and by encapsulating
ensures there is a smooth growth in functionality. action selection. Additionally, ever-richer mechanisms
for promoting reuse are being provided. Here, the
Will Agent-Oriented Techniques Be agent view also reaches new heights. Rather than
Widely Adopted? stopping at reuse of subsystem components (design
There are two key pragmatic issues that will deter- patterns and componentware) and rigidly preor-
mine whether agent-oriented approaches catch on as dained interactions (application frameworks), agents
a software engineering paradigm: the degree to enable whole subsystems and flexible interactions to
which agents represent a radical departure from be reused. In the former case, agent designs and
current software engineering thinking and the implementations are reused within and between
degree to which existing software can be integrated applications. Consider, for example, the class of agent
with agents. architectures that have beliefs (what the agent knows),
A number of trends become evident when examin- desires (what the agent wants) and intentions (what
ing the evolution of programming models. There has the agent is doing) at its core. Such architectures have
been an inexorable move from languages that have been used in a wide variety of applications including
their conceptual basis determined by the underlying air traffic control, process control, fault diagnosis and
machine architecture, to languages that have their key transportation [4, 8]. In the latter case, flexible pat-
abstractions rooted in the problem domain. Here the terns of interaction such as the Contract Net Proto-
agent-oriented world view is perhaps the most natural col (an agent with a task to complete advertises this
Comparing Object- and Agent-based Approaches
A lthough there are certain sim-
ilarities between object- and
agent-oriented approaches (both
object. Once the method is
invoked, the corresponding actions
are performed. Additionally,
abstraction mechanisms such as
design patterns, application frame-
works, and componentware.
adhere to the principle of informa- object-orientation fails to provide Although these are undoubtedly a
tion hiding and recognize the an adequate set of concepts and step forward, they fall short of the
importance of interactions), there mechanisms for modeling complex desired characteristics for complex
are also a number of important systems: for such systems “we find system development. By their very
differences [10]. First, objects are that objects, classes, and modules nature, they focus on generic sys-
generally passive in nature: they provide an essential yet insuffi- tem functions and the mandated
need to be sent a message before cient means of abstraction” [1]. patterns of interaction are rigid and
they become active. Secondly, Individual objects represent too predetermined. Finally, object-ori-
although objects encapsulate fine a granularity of behavior and ented approaches provide only min-
state and behavior realization, method invocation is too primitive a imal support for specifying and
they do not encapsulate behavior mechanism for describing the types managing organizational relation-
activation (action choice). Thus, of interactions that take place. ships (basically relationships are
any object can invoke any publicly Recognition of these facts led to defined by static inheritance
accessible method on any other the development of more powerful hierarchies). c
COMMUNICATIONS OF THE ACM April 2001/Vol. 44, No. 4 39
6. fact to others who it believes are capable of perform- Case Study: Provisioning a Virtual
ing it, these agents may submit a bid to perform the Private Network
task if they are interested, and the originator then As an exemplar of a complex, distributed system
delegates the task to the agent that makes the best consider the task of dynamically provisioning a
bid) and various forms of resource-allocation auction public communication network (such as the Inter-
(for example, English, Dutch, Vickrey) have been net) as a virtual private network for end users. To be
reused in significant numbers of applications. In more definitive, let the task in question be setting
short, agent-oriented techniques represent a natural up a videoconferencing meeting [3]. This applica-
progression of current software engineering thinking tion involves a variety of different individuals and
and, for this reason, the main concepts and tenets of organizations (see Figure 3). There are the end users
the approach should be readily acceptable to software that are each represented by their personal commu-
engineering practitioners. nication agent (PCA). The providers of services on
the network (such as setting up a
Figure 3. Dynamic provisioning of virtual videoconference, for example) are
private networks by end users. each represented by a service
provider agent (SPA). Finally,
Group that Agree time End Users there are the agents that represent
wants to PCA PCA
make call negotiation the network provider on whose
Locate videoconference provider negotiation telecommunications infrastruc-
ture the services will actually be
SPA SPA SPA Service delivered (each represented by a
Providers network provider agent (NPA)).
In setting up a videoconference
Select network provider negotiation call, the various PCAs negotiate,
on behalf of their particular users,
NPA NPA NPA NPA Network with one another in order to find
Providers a suitable time for the call. When
they come to an agreement, one
of the PCAs then contacts, and
subsequently negotiates with, the various SPAs that
The second factor in favor of a widespread incor- offer the videoconference service (not all SPAs will
poration of agents is that their adoption does not do this). This negotiation revolves around the cost
require a revolution in terms of an organization’s soft- of the conference call and the quality of service that
ware capabilities. Agent-oriented systems are evolu- is desired. The SPA that wins the contract then
tionary and incremental as legacy (non-agent) negotiates with the various NPAs to determine
software can be incorporated in a relatively straight- which of them can deliver the desired quality and
forward manner. The technique used is to place wrap- bandwidth at the best price.
ping software around the legacy code. The wrapper This application highlights many of the benefits
presents an agent interface to the other software com- that are have been claimed for an agent-oriented
ponents. Thus from the outside it looks like any other approach to software engineering. Autonomous
agent. On the inside, the wrapper performs a two-way agents are the most natural means of representing the
translation function: taking external requests from distinct individuals and organizations that are present
other agents and mapping them into calls in the in the application. Each such entity is an active prob-
legacy code, and taking the legacy code’s external lem-solver that has its own objectives to achieve and
requests and mapping them into the appropriate set has control over the actions it chooses and the
of agent communication commands. This ability to resources that it expends. The agents need to be
wrap legacy systems means agents may initially be responsive to changes in their environment (for exam-
used as an integration technology. However, as new ple, a NPA may need to arrange additional network
requirements are placed on the system, agents may be capacity from another NPA in order to maintain its
developed and added. This feature enables a complex agreed upon quality of service if part of its network
system to grow in an evolutionary fashion (based on fails) and they need to be able to opportunistically
stable intermediate forms), while adhering to the adopt new goals as they present themselves (for exam-
important principle that there should always be a ple, two SPAs may discover they have complementary
working version of the system available. service capabilities and may decide to act together in
40 April 2001/Vol. 44, No. 4 COMMUNICATIONS OF THE ACM