Component-Based Agent Frameworks And SoccerBeans

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Copyright © 2001 Qusay H. Mahmoud JavaBeans An introduction to component-based development in general Introduction to JavaBeans – Java components – client-side.
When you see a soccer ball, jump and hit it in the air with your head.
Chapter 1 Object-Oriented System Development
RoboCup: The Robot World Cup Initiative Based on Wikipedia and presentations by Mariya Miteva, Kevin Lam, Paul Marlow.
Task decomposition, dynamic role assignment and low-bandwidth communication for real-time strategic teamwork Peter Stone, Manuela Veloso Presented by Radu.
Introducing JavaBeans Lesson 2A / Slide 1 of 30 JDBC and JavaBeans Pre-assessment Questions 1.Which of the given symbols is used as a placeholder for PreparedStatement.
Introducing JavaBeans Identify the features of a JavaBean Create and add a bean to an application Manipulate bean properties using accessor and mutator.
Chapter 7: The Object-Oriented Approach to Requirements
UNIT-V The MVC architecture and Struts Framework.
Table-Driven Acceptance Testing Mario Aquino Principal Software Engineer Object Computing, Inc.
Java Beans.
CSE 303 – Software Design and Architecture
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Soccer Springboro Junior High School. The Field SIDELINE ENDLINEENDLINE When the ball goes out of bounds at the sideline, the other team performs a THROW.
By : Allison and Avery  How to kick the soccer ball  Calls in Fifa (the cards)  Positions LET’S GET STARTED!!!!!!!!!!!
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
Software Architecture & Component Orientation Jose Donate CS 6362.
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.
Systems Analysis and Design in a Changing World, Fourth Edition
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
RoboCup: The Robot World Cup Initiative
Systems Analysis and Design in a Changing World, Fourth Edition
Software Design Refinement Using Design Patterns
Structure of a web application
UML Diagrams By Daniel Damaris Novarianto S..
The Movement To Objects
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Chapter 2 Database System Concepts and Architecture
COMPONENT & DEPLOYMENT DIAGRAMS
Object-Oriented Analysis and Design
Introduction to Advanced Java Programming
Play Framework: Introduction
Java Beans Sagun Dhakhwa.
Soccer.
UML Diagrams Jung Woo.
Advanced Integration and Deployment Techniques
CORBA Within the OS & Its Implementation
#01 Client/Server Computing
UML dynamic Modeling (Behavior Diagram)
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 10: Process Implementation with Executable Models
Design and Maintenance of Web Applications in J2EE
Teaching with Instructional Software
Soccer Notes.
Software Connectors – A Taxonomy Approach
Speed-a-way April Poole HPE 324.
More Model Elements.
Mobile Agents M. L. Liu.
Field Diagram: Sideline
Review: Design Pattern Structure
An Introduction to Software Architecture
How to play indoor soccer
Enterprise Integration
Basic OOP Concepts and Terms
Enterprise Java Beans.
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Agenda Software development (SD) & Software development methodologies (SDM) Orthogonal views of the software OOSD Methodology Why an Object Orientation?
SharePoint 2010 Wizardry with Silverlight
Software Development Process Using UML Recap
Football. Goal Center Circle SIDELINE HALF LINE Corner Kick Mark Penalty Box Goal Box THE FIELD ENDLINE.
#01 Client/Server Computing
Presentation transcript:

Component-Based Agent Frameworks And SoccerBeans 12/4/2018 Component-Based Agent Frameworks And SoccerBeans Hrishikesh J. Goradia CSCE 782 Fall 2003 University of South Carolina December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Component-Based Agent Framework Component-Based Software Engineering Techniques Current Agent Framework Development Techniques Component-Based Agent Framework December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Component-Based Agent Framework Applications Domain specific Agent Framework Development Environment Component Based Agent Framework CBAF specifications December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Component-Based Agent Framework Applications Domain specific Agent Framework Development Environment Component Based Agent Framework CBAF specifications Components encapsulate the underlying complexities of the framework Designing MAS using CBAF is simple CBAF is domain-specific December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans CBAF Specifications Agent framework must be designed as a set of independent, self-contained, highly specialized components. Commonalities of various applications in a domain must be discovered and developed as domain-specific components in the framework. A component must be interface-centric and architecture-centric. Components must be designed such that each performs a unique, singular function. Conversely, every function to be performed by an agent in a domain application must be defined as a component in the framework. December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans CBAF Specifications Framework designers must strive for the development of “context-free” components. The agent framework must provide a look-up service for the agents. Message transport must be facilitated through event triggering. The framework must facilitate the integration of its components to create different agent plans (also called as activities). It must also provide a way to compose these activities with the individual agents. Agent framework must include the following types of components: Agent component(s) Activity component(s) Decision components Behavior components December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Sample CBAF Implementation (RoboCup domain) Behavior Components kick catch dash move Decision Components spatial AND location OR Activity 1 Activity 2 Activity n . . . Pool of Activities 1 n Agent component Activity component Individual Agent December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Sample CBAF Implementation (RoboCup domain) Behavior Components kick catch dash move Decision Components spatial AND location OR Activity 1 Activity 2 Activity n . . . Pool of Activities 1 n Agent component Activity component Individual Agent Behavior components A behavior component must represent an agent’s action Each rule set in a plan must be mapped to a behavior component The framework must provide every possible atomic action for an agent in the particular domain as a behavior component December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Sample CBAF Implementation (RoboCup domain) Behavior Components kick catch dash move Decision Components spatial AND location OR Activity 1 Activity 2 Activity n . . . Pool of Activities 1 n Agent component Activity component Individual Agent Decision components Represents a rule used during plan generation for an agent The framework must facilitate the combining of various decision components to define new rules The framework must include all the decision components to accommodate the creation of any rule for a plan December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Sample CBAF Implementation (RoboCup domain) Behavior Components kick catch dash move Decision Components spatial AND location OR Activity 1 Activity 2 Activity n . . . Pool of Activities 1 n Agent component Activity component Individual Agent Activity component(s) Agent plans are generated as a concatenation of rules rooted by an Activity component Interface between an agent component and it’s plans Fully support the agent component capabilities. December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Sample CBAF Implementation (RoboCup domain) Behavior Components kick catch dash move Decision Components spatial AND location OR Activity 1 Activity 2 Activity n . . . Pool of Activities 1 n Agent component Activity component Individual Agent Agent component(s) Represents an individual agent in the MAS Knows how to locate and communicate with other agents in the system. Defines the scheduling mechanism for handling its plans. A user has to associate the agent component with plans to complete the agent design Different agent architectures are represented as separate agent components in the framework December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Challenges for CBAF Design Which components should we develop in the agent framework for a given domain? The components have to be functionally independent, but they also rely on each other for accomplishing their tasks and hence should be interactive and cohesive. How do we achieve that? How do we achieve component integration to create new components? How do we deploy the whole system with multiple agents? December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans RoboCup Domain Simulated soccer Based on a client/server architecture Provides an environment that is Complex Distributed Real-time Collaborative Adversarial December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Domain Analysis for CBAF Design (SoccerBeans) Which components should we develop in the agent framework for a given domain? All agents created as beans, have a scheduling mechanism that supports both BDI and Subsumption architectures Agent component: PlayerFoundation bean Only one architecture to be supported Activity component: Activity bean Decision criteria in different agent plans for various soccer teams Decision components: DBallDistance, DSelfPosition, DClosePlayers, etc. All agent actions Behavior components: BDash, BDribble, BShoot, BMove, BTurn, etc. December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Domain Analysis for CBAF Design (SoccerBeans) The components have to be functionally independent, but they also rely on each other for accomplishing their tasks and hence should be interactive and cohesive. How do we achieve that? Java’s Delegation Event Model for event handling Communication between adjacent components only ActivityEvent event Agent – Activity component communication FunctionalityEvent event Activity – Decision component communication Activity – Behavior component communication Decision – Behavior component communication December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Domain Analysis for CBAF Design (SoccerBeans) How do we achieve component integration to create new components? December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Domain Analysis for CBAF Design (SoccerBeans) How do we deploy the whole system with multiple agents? Sun’s Bean Development Kit (BDK) provides a runtime environment for deploying live beans Distributed programming issues handled by UDP sockets One JVM per agent December 4, 2018 CSCE 782 – CBAF & SoccerBeans

SoccerBeans – CBAF Implementation for RoboCup Domain Uses the Sun’s JavaBeans technology Agent component supports decision-making based on BDI and Subsumption architectures SoccerBeans components - Agent component PlayerFoundation bean Activity component Activity bean Decision components DBallDistance, DBallPosition, DPlayerPosition, etc. Behavior components BDash, BKick, BTurn, BMove, etc. December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Agent and Activity Components for SoccerBeans December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Decision Components for SoccerBeans December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Decision Components for SoccerBeans December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Behavior Components for SoccerBeans December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Behavior Components for SoccerBeans December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans A Sample Team December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Common Activities All 11 players share the Observe and StartPlay activities Observe incorporates the new sensory information from the server into the player’s world model StartPlay is for relocating the player to its starting position before kickoff and after a goal December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Goalie Goalie activities Observe (5) StartPlay (8) Catch (10) Pass (11) GoalKick (5) GotoPosition (9) Used 50 components to create the goalie December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Goalie Activities Catch activity for allowing the goalie to catch the ball Pass allows the goalie to move to a corner on the penalty box after catching the ball, or kick the ball away December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Goalie Activities GoalKick handles the “goal_kick_*” play mode GotoPosition positions the goalie to the most appropriate position, based on the ball’s current position December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Defenders Defender activities Observe (5) StartPlay (8) Pass (8) GotoPosition (25) Used 47 components to create each defender December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Defender Activities Defenders simply shoot the ball away towards the opponent’s half whenever possible through the Pass activity GotoPosition activity December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Defensive Midfielders Defensive midfielder activities Observe (5) StartPlay (8) Dribble (6) Pass (9) GotoPosition (21) Used 50 components to create each defensive midfielder December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Defensive Midfielder Activities Midfielders dribble the ball whenever possible Pass the ball if dribble is inappropriate December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Defensive Midfielder Activities GotoPosition activity December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Offensive Players Offensive player activities Observe (5) StartPlay (8) Dribble (7) Pass (8) GotoPosition (13,13,11,15,15) Used an average of 42 components to create each offensive player December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Offensive Player Activities Dribble activity Pass activity December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Offensive Midfielder Activities GotoPosition activity for offensive midfielders December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Offensive Central Midfielder Activities GotoPosition activity for offensive midfielders December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Forwards’ Activities GotoPosition activity for forwards December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Testing and Results Gamecocks beat Chikomalos 18-0! December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Improving SoccerBeans SoccerBeans has a lot of scope for improvement Decision beans concerning locations of other agents on the field Inter-agent communication – “say” messages Better dashing – use of “turn_neck” instead of “turn” wherever possible Better kicking – tighter dribbling, better computation of “kick_power” December 4, 2018 CSCE 782 – CBAF & SoccerBeans

CSCE 782 – CBAF & SoccerBeans Developing New Beans Beans are just special Java classes! Implement Serializable class Define get/set accessor methods for its properties All decision and behavior beans have similar structures Differ only in their instance variables and implementations of decide() or behave() methods Online references: http://java.sun.com/docs/books/tutorial/javabeans/index.html http://developer.java.sun.com/developer/onlineTraining/Beans/ December 4, 2018 CSCE 782 – CBAF & SoccerBeans

Developing New Beans in SoccerBeans Write the bean code MyBean.java and MyBeanBeanInfo.java files Save these files in the $PACKAGE_HOME/soccerbeans folder, $PACKAGE_HOME is where the soccerbeans package is extracted Compile the complete package with the bean From $PACKAGE_HOME, say javac soccerbeans/*.java regexp/*.java Update the manifest file Add the following to the soccerbeans.mft file Name: MyBean.class Java-Bean: True Update the soccerbeans package jar cfm soccerbeans.jar soccerbeans.mft soccerbeans/*.class regexp/*.class December 4, 2018 CSCE 782 – CBAF & SoccerBeans