Software Agents are Software Components

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Page 1 Copyright © 2010 Data Access Technologies, Inc. Model Driven Solutions May 2009 Cory Casanave Architecture of Services SOA for E-Government Conference.
Design by Contract.
16/11/ IRS-II: A Framework and Infrastructure for Semantic Web Services Motta, Domingue, Cabral, Gaspari Presenter: Emilia Cimpian.
COM vs. CORBA.
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
CORBA - Common Object Request Broker Architecture.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Introduction To System Analysis and Design
CBSD – Component Based Software Development - Introduction -
IS Terms and Introductory Concepts. Contemplative Questions What is an information system? What is an information system? Why do we care about the difference.
Using Architecture Frameworks
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Chapter 10 Class and Method Design
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Reuse Activities Selecting Design Patterns and Components
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Spoken dialog for e-learning supported by domain ontologies Dario Bianchi, Monica Mordonini and Agostino Poggi Dipartimento di Ingegneria dell’Informazione.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 MFI-5: Metamodel for Process models registration HE Keqing, WANG Chong State Key Lab. Of Software Engineering, Wuhan University
Introduction To System Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
Precedence Health Care The MAS – SE Gap: Bridging the Divide Michael Georgeff Precedence Health Care & Monash University Autonomous Agents and Multiagent.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Intelligent Agent Framework1 From Chapter 7 of Constructing Intelligent Agents with Java.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 32. Review Behavioral Patterns – Observer Pattern – Chain of command.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Architecture Interoperability Pasquale Pagano Leonardo Candela CNR-ISTI.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
A service Oriented Architecture & Web Service Technology.
Service-oriented architecture 8 th July What is a Service? A service is a reusable component that can be used as a building block to form larger,
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Chapter 5:Design Patterns
Formalizing the Reusability of Software Agents
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Introduction to Design Patterns
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
Distribution and components
Component Based Software Engineering
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
OOP vs Structured Programming
Component-Based Software Engineering
Software life cycle models
Service Oriented Architecture
Component--based development
DESIGNING YOUR SYSTEM.
Distributed Systems through Web Services
AGENT FRAMEWORK By- Arpan Biswas Rahul Gupta.
Introduction to SOA and Web Services
Human-Machine Reconfigurations
PASSI (Process for Agent Societies Specification and Implementation)
From Use Cases to Implementation
Presentation transcript:

Software Agents are Software Components Federico Bergenti bergenti@ce.unipr.it

Software Reuse In principle, any artifact of the software lifecycle can be reused a piece of specification (e.g., a use case), a piece of design (e.g., design pattern, architecture), a linkable module (e.g., DLL, .NET module), a pieces source code (e.g., STL). We focus on reusing linkable modules what do we need to deliver reusable modules? what is the maximum level of reusability we might expect from a given technology? Reusability is a feature of the technology we use to build and assembly components.

Software Components Reusable (linkable) modules that we assembly to build a complete system. The functionality of the system is developed making components interact. The infrastructure is the glue that enables interactions linker of the operating system, CORBA, Web services, …, tuple spaces, blackboards. The infrastructure comprises a model (with associated semantics) of the interaction, a communication means. Infrastructure

Reusing Software Components The infrastructure plays a central role in (this sort) of reusability it enables interactions, it supports substituibility. Today infrastructures put severe constraints on reusability because they have limited models of interactions (e.g., object-oriented interactions are implemented through method calls only), substituibility (e.g., object-oriented implements substituibility with inheritance, that relies mainly on method signatures).

Agents and Components We ask for less than what is normally required Ascription Hypotesis Given a component, we can ascribe mental qualities, i.e., knowledge and goals, to it. We ask for less than what is normally required components can be irrational, still we can ascribe knowledge and goals to them, we do not need to be able to ascribe a mental state to a component from the outside, components that declare their mental state are sufficient. Components described in terms of their mental qualities are agents.

An Ideal Model of Reusability Need to define what a “perfect” interaction is we concentrate only on problem-independent issues, we move all issues to the infrastructure because agents should take care of the problem only. Informally, an infrastructure enables a “perfect” interaction if it puts no constraints in terms of the different languages that agents use, the need of knowing the peer before interacting, the need of knowing the peer after interacting, …

Semantic Interoperability Normally, it is considered a first step towards semantic composability. Abstracts away communication details from the interaction. Definition of Semantic Interoperability (Client Standpoint) Given two agents C and SacquaintanceC, they are said to be semantically interoperable if and only if g : GCg, GCdone(delegate_to(C, S, g))  KSGCdone(delegate_to(C, S, g)) where delegate_to(C, S, g) is a sort of abstract action of C whose outcome is KCGSg.

Semantic Composability We can abstract away the requirement of agents knowing each other before the interaction, after the purpose of the interaction has been achieved. Definition of Semantic Composability Given a set of n agents MAS={A1, A2, …, An}, they are said to be semantically composable if and only if CMAS, g : GCg, AMAS : solvesA(g), GCdone(delegate(C, g))  !SMAS : solvesS(g), KSGCdone(delegate_to(C, S, g)) where delegate(C, g) is a sort of abstract action of C whose outcome is KC(XMAS : GXg).

Semantic Substituibility Framework reusability requires plugging new agents to customize a complete systems to new requirements. What we want to capture is that, from the point of view of any possible agent interested in the interaction, new and old agents provide the same services. Definition of Semantic Extensibility (Substituibility) Given two agents B and D, we can say that D is a semantic extension of B if and only if g : solvesB(g)  solvesD(g)

Approximating the Ideal Model (1/2) ParADE (BDI) agents BA  KA, we approximate the knowledge of the agent with what the agent beliefs, IA  GA, we approximate the goals of an agent with the intentions that it reasoned from its knowledge of and from its internal rules, capableA  solvesA, we approximate the goals that an agent can solve with the postconditions of its feasible actions.

Approximating the Ideal Model (1/2) Everyday components rely on object-oriented stateA  KA, the knowledge of the component is approximated with the state of the component, postcondition-of-next-callA  GA, the goals of a component are approximated with a singleton set containing the postcondition of the method that the component is about to invoke, postconditionsA  solvesA, the goals a component can solve are approximated with the set of postconditions of its methods. Nothing is said about the state of the environment. Poorer models of components (e.g., Javabeans) support poorer approximations.

Discussion (1/2) The definitions that we provided put some constraints on software infrastructures that wants to support better approximations to (this sort of) ideal reusability. Infrastructures should be a means for transferring knowledge and goals (mainly goals), and not only for moving data, support agents finding each other transparently, i.e., without an explicit request (from the agent or from the programmer), allow agents finding problem solvers and not just task executors, enable choosing a problem solver on the basis of what it can do and not on how it can describe its capabilities.

Discussion (2/2) Some “intelligence” is moved to the infrastructure still, we do not program the infrastructure. Better approximations to the ideal model are obtained with better reasoning capabilities in the agents, in the infrastructure. Reasoning can be only in agents, domain-dependent part in agents together with domain-independent part in the infrastructure.

Thanks… Questions? Comments? Federico Bergenti AOT Lab Parco Area delle Scienze, 181/A 43100 Parma, Italy bergenti@ce.unipr.it http://aot.ce.unipr.it