Formalizing the Reusability of Software Agents

Slides:



Advertisements
Similar presentations
EDUC4417 Senior Computers Dr. Mumbi Kariuki January 28, 2004 Object-Orientation David Cuillerier.
Advertisements

ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
16/11/ IRS-II: A Framework and Infrastructure for Semantic Web Services Motta, Domingue, Cabral, Gaspari Presenter: Emilia Cimpian.
COM vs. CORBA.
Component Oriented Programming 1 Chapter 2 Theory of Components.
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
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
Page 1 Building Reliable Component-based Systems Chapter 2 -Specification of Software Components Chapter 2 Specification of Software Components.
Object-Oriented Thinking Chapter 1, Object-Oriented Programming in Java, Timothy Budd, 1998 ICS102 Semester
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Chapter 10 Class and Method Design
Kmi.open.ac.uk Semantic Execution Environments Service Engineering and Execution Barry Norton and Mick Kerrigan.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
1 Objective of today’s lesson S oftware engineering occurs as a consequence of a process called system engineering. Instead of concentrating solely on.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Architecture, Implementation, and Testing Architecture and Implementation Prescriptive architecture vs. descriptive architecture Prescriptive architecture:
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.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Introduction to Object-oriented programming and software development Lecture 1.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
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.
Introduction To System Analysis and Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
Chapter 8 Object Design Reuse and Patterns. Object Design Object design is the process of adding details to the requirements analysis and making implementation.
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.
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.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object-Oriented Design Concepts University of Sunderland.
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
Architecture Interoperability Pasquale Pagano Leonardo Candela CNR-ISTI.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
A service Oriented Architecture & Web Service Technology.
Programming paradigms
Software Agents are Software Components
Chapter 5:Design Patterns
Object-Oriented Software Engineering Using UML, Patterns, and Java,
APPLICATION OF DESIGN PATTERNS FOR HARDWARE DESIGN
CMPE 135: Object-Oriented Analysis and Design October 24 Class Meeting
Distribution and components
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Lecture 22 Inheritance Richard Gesick.
Component-Based Software Engineering
Object-Oriented Design
Chapter 20 Object-Oriented Analysis and Design
Distributed Systems through Web Services
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
AGENT FRAMEWORK By- Arpan Biswas Rahul Gupta.
Dept. of Computation, UMIST
PASSI (Process for Agent Societies Specification and Implementation)
Executable Specifications
From Use Cases to Implementation
Presentation transcript:

Formalizing the Reusability of Software Agents Federico Bergenti AOT Lab FRAMeTech S.R.L. Parco Area delle Scienze, 181/A Via San Leonardo, 1 43100 Parma, Italy bergenti@ce.unipr.it bergenti@frame-tech.it http://aot.ce.unipr.it http://www.frame-tech.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? ESAW 2003 - London

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 ESAW 2003 - London

Substituibility Two possibilities of reuse reusing readymade components (component reuse), reusing a complete system that is customized by using new components instead of old components (framework reuse). Historically, only the first was understood object-oriented inheritance as a means to reuse the code of base classes in derived classes. Today, the second in largely preferred frameworks have been replacing libraries for a decade. Both are enabled by substituibility we substitute a component with another equivalent (from our point of view), yet different, component. ESAW 2003 - London

Reusing Software Components The infrastructure plays a central role in (this sort) of reusability it enables interactions, it supports substituibility. This is not strange, reusability is a feature of the technology we use to build and assembly components. 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). ESAW 2003 - London

An Ideal Model of Reusability (1/3) In order to define an ideal model of (this sort) of reusability, we need a “perfect” infrastructure “perfect” interaction, “perfect” substituibility. In the ideal world, interaction is solely driven by the solution we are designing for the problem and no other constraints are imposed, substituibility depends only on what a component is used for and not on how it is used. Informal concepts describing this ideal model are available. We can formalize them using the ascription hypothesis. ESAW 2003 - London

An Ideal Model of Reusability (2/3) Ascription Hypotesis Given a component, we can ascribe mental qualities, i.e., knowledge and goals, to it. We require 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. ESAW 2003 - London

An Ideal Model of Reusability (3/3) Need to define what a “perfect” interaction is we concentrate only on problem-independent issues, we move all such issues to the infrastructure because agents should 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, … ESAW 2003 - London

Semantic Interoperability (1/2) 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(C, S, g))  KSGCdone(delegate(C, S, g)) where delegate(C, S, g) is a sort of abstract action of C whose outcome is KCGSg. ESAW 2003 - London

Semantic Interoperability (2/2) The definition states that if (and only if) C has a goal and GCg C wants some S to bring about this goal GCdone(delegate(C, S, g)) then, S knows of this wish  KSGCdone(delegate(C, S, g)) If we assume a common (limited) model of the world and a common language, then semantic interoperability is practical (even if not ideal). Today, the work directed towards semantic interoperability (e.g., DAML-S) is limited by the use of task delegation instead of goal delegation. ESAW 2003 - London

Semantic Composability (1/2) Starting from semantic interoperability, 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, SMAS : solvesS(g)  KSGCdone(delegate(C, S, g)) where solvesA are the goals that A can solve. ESAW 2003 - London

Semantic Composability (2/2) The definition states that the agents in a MAS are semantically composable if (and only if) C lives in the MAS CMAS and C has a goal g : GCg if there is an S in the MAS capable of solving it SMAS : solvesS(g) then, C can delegate the goal to S  KSGCdone(delegate(C, S, g)) This is compatible with the common approach of explicitly choosing the agent to interact with if C wants S to achieve goal j for it, then the goal g of C would be g=KSGCGSj. ESAW 2003 - London

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) ESAW 2003 - London

Approximating the Ideal Model (1/4) Everyday components rely on object-oriented infrastructures to approximate ideal reusability 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. ESAW 2003 - London

Approximating the Ideal Model (2/4) The infrastructure provides only a message delivery service. Only tasks can be delegated g=done(execute-the-body-of-a-method) Need for an explicit knowledge of components before and after the interaction. Substituibility is implemented with inheritance static (design-time), semantics embedded in methods signatures. ESAW 2003 - London

Approximating the Ideal Model (3/4) 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. ParADE infrastructure provides a transparent matchmaking service. ESAW 2003 - London

Approximating the Ideal Model (4/4) The matchmaking service guarantees that agents do not need to know each other nor before nor after the interaction, interaction is mainly driven by goal delegation. Goal-driven, declarative behavior is embedded in an imperative Java code. The matchmaker implements substituibility because it reasons on published capabilities. ESAW 2003 - London

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. ESAW 2003 - London

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. ESAW 2003 - London

Thanks… Questions? AOT Lab FRAMeTech S.R.L. Parco Area delle Scienze, 181/A Via San Leonardo, 1 43100 Parma, Italy bergenti@ce.unipr.it bergenti@frame-tech.it http://aot.ce.unipr.it http://www.frame-tech.it ESAW 2003 - London