Mike Graves Summer 2005 University of Texas at Dallas Implicit Invocation: The Task Control Architecture Mike Graves CS6362 Term Paper Dr. Lawrence Chung.

Slides:



Advertisements
Similar presentations
Agents & Mobile Agents.
Advertisements

Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
COM vs. CORBA.
A component- and message-based architectural style for GUI software
Architecture Representation
Remote Procedure Call Design issues Implementation RPC programming
Sensor Network Platforms and Tools
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Concurrency: Mutual Exclusion and Synchronization Why we need Mutual Exclusion? Classical examples: Bank Transactions:Read Account (A); Compute A = A +
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
CS 582 / CMPE 481 Distributed Systems Fault Tolerance.
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
Brent Dingle Marco A. Morales Texas A&M University, Spring 2002
Software Architecture Design Instructor: Dr. Jerry Gao.
Business Process Orchestration
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Establishing the overall structure of a software system
Managing Agent Platforms with the Simple Network Management Protocol Brian Remick Thesis Defense June 26, 2015.
Case Study: The E1 Distributed Operating System Chris Krentz 3/20/2007.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
.NET Mobile Application Development Remote Procedure Call.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
What is it? A mobile robotics system controls a manned or partially manned vehicle-car, submarine, space vehicle | Website for Students.
Benefits of PL/SQL. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –List and explain the benefits of PL/SQL –List.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CS451 Lecture 13: Architectural Design Chapter 10
Architectural Design. Recap Introduction to design Design models Characteristics of good design Design Concepts.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
An Introduction to Software Architecture
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture for Autonomous Assembly 1 Reid Simmons Robotics Institute Carnegie Mellon University.
A Language for Task-Level Executives Reid Simmons David Apfelbaum Carnegie Mellon University.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
A Summary of the Distributed System Concepts and Architectures Gayathri V.R. Kunapuli
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
Structured Control for Autonomous Robots Reid G. Simmons Carnegie Mellon University Uday Rajanna.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Shuman Guo CSc 8320 Advanced Operating Systems
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Robotica Lecture Review Reactive control Complete control space Action selection The subsumption architecture –Vertical vs. horizontal decomposition.
CSC480 Software Engineering Lecture 10 September 25, 2002.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
Autonomy for General Assembly Reid Simmons Research Professor Robotics Institute Carnegie Mellon University.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Self Healing and Dynamic Construction Framework:
CHAPTER 3 Architectures for Distributed Systems
Chapter 4: Threads.
Software models - Software Architecture Design Patterns
Chapter 4: Threads.
Presented By: Darlene Banta
Presentation transcript:

Mike Graves Summer 2005 University of Texas at Dallas Implicit Invocation: The Task Control Architecture Mike Graves CS6362 Term Paper Dr. Lawrence Chung

Mike Graves Summer 2005 University of Texas at Dallas Implicit Invocation + Supports Extensibility: additional modules can be easily attached + Supports Reusability: implicitly invoked modules rely only on triggered events - Complexity: difficult to control the processing order of implicitly invoked modules. How would this be done? Note: This illustration is from Dr L. Chung’s CS6362 Lecture Notes at

Mike Graves Summer 2005 University of Texas at Dallas Task Control Architecture (TCA) History –Developed by Reid Simmons at Robotics Institute of CMU ( ) –Funded by NASA to support the Ambler six-legged walker –Used in over a dozen autonomous systems Provides a general framework for controlling distributed modules Consists of distributed modules that communicate via message passing through a central server (a.k.a. central control module ) Uses Implicit Invocation of modules –Modules do not communicate directly –Central server multicasts messages to modules that register for them –Modules may also use execution monitors that register condition- action pairs with server TCA acts like OS: Supports distributed communication, task decomposition, task sequencing and synchronization, and resource management

Mike Graves Summer 2005 University of Texas at Dallas TCA – Component Interaction Central Control Module Module 1Module 2Module N Task-specific modules communicate through API library that accesses a general-purpose reusable central control module. Control is centralized but data and problem solving is distributed.

Mike Graves Summer 2005 University of Texas at Dallas TCA – Deliberative vs. Reactive Behavior TCA allows the programmer to easily specify and integrate deliberative and reactive behavior using the TCA API Deliberative Behavior (i.e., open loop) –Modules construct hierarchical plans of action using goal and command messages. The Central Control Module maintains plans in task trees dynamically and coordinates the tasks. –Modules send constrain messages and control parameters with other messages to control the order of task execution. These temporal constraints can be relaxed to allow selective concurrency. Reactive Behavior (i.e., closed loop) –Modules send monitor messages that contain a condition-action pair. Central control tests for a condition and takes action if the condition holds. The action alters deliberative plans through the task tree. –Modules send exception messages and Central Control invokes an exception handler that may alter plans through the task tree. –Modules may set up a wiretap message to receive a copy of messages sent to another module. This improves module extensibility.

Mike Graves Summer 2005 University of Texas at Dallas Task Tree for Procedure Calls main{ task-1( ); task-2( ); task-3( ); } task1( ) { subtask-a( ); subtask-b( ); } task2( ) { subtask-c( ); subtask-d( ); subtask-e( ); } subtask-e( ) { sub-subtask-x( ); sub-subtask-y( ); } task3(){ subtask-f( ); subtask-g( ); } Note: This figure is from TCA Programmers Guide version 8.0

Mike Graves Summer 2005 University of Texas at Dallas Task Tree for Asynchronous Invocation main{ send trigger 1 send trigger 2 send trigger 3 } handler1( ) { send trigger a send trigger b } (etc.) Note: This figure is from TCA Programmers Guide version 8.0

Mike Graves Summer 2005 University of Texas at Dallas TCA Task Trees allow Selective Concurrency Note: This figure is from TCA Programmers Guide version 8.0

Mike Graves Summer 2005 University of Texas at Dallas TCA Exception Handling Separates error recovery algorithms from “normal” behavior –Since it is impossible to predict all failure modes, exception handling often needs to be added after the primary algorithms have been developed. –TCA exception handling allows error recovery algorithms to be added without modifying/complicating the original algorithms (i.e., provides program extensibility through incremental, modular adjustments) Each module registers Exception Handlers and Exception Messages with the Central Module Each module attaches Exception Handlers to task nodes in the Central Module’s task tree Modules raise an exception by notifying the Central Module –The Central Module implicitly invokes the associated Exception Handler’s recovery procedure. This procedure may modify the planned behavior by modifying the task tree.

Mike Graves Summer 2005 University of Texas at Dallas TCA Exception Handling Note: This figure is from TCA Programmers Guide version 8.0

Mike Graves Summer 2005 University of Texas at Dallas Ambler Walking Robot Uses TCA for robot control through efficient interaction of various on-board systems Designed for planetary exploration (i.e., deep crevices, large boulders, steep slopes, etc..) Utilizes scanning laser rangefinder for accurate perception of terrain Remote human operators tell Ambler where to go, not how to get there. Autonomously builds terrain maps, plans sequence and location of steps, and controls movement, balance, and stability. The Gait Planner module plans a limited number of steps based on terrain and walking capabilities The Footfall Planner module determines which steps have best foothold based on previous learning through a neural network. The Leg Recovery Planner module finally determines how to move each leg without colliding.

Mike Graves Summer 2005 University of Texas at Dallas Ambler Component Interaction Note: This figure is from IEEE Control Systems

Mike Graves Summer 2005 University of Texas at Dallas Ambler Task Tree Note: This figure is from IEEE Control Systems

Mike Graves Summer 2005 University of Texas at Dallas Summary TCA provides many commonly needed control constructs for a complex system that uses the implicit invocation style –Task Decomposition –Task Coordination and Synchronization –Execution Monitoring –Exception Handling TCA facilitates incremental development –Adding new tasks –Adding new reactive behaviors –Adding new exceptions TCA software system is no longer maintained at CMU –Programmers not familiar with TCA API –Task Definition Language (TDL) is new research area for Simmons. It is a superset of C++ that includes explicit syntax for task-level control capabilities.

Mike Graves Summer 2005 University of Texas at Dallas References Software Architecture; Perspectives on An Emerging Discipline, M. Shaw, D. Garlan, Prentice Hall, Concurrent Planning and Execution for Autonomous Robots, R. Simmons, IEEE Control Systems, 12:1, pp , February 1992 ( 2.cs.cmu.edu/~reids/papers/tca-ambler.pdf). 2.cs.cmu.edu/~reids/papers/tca-ambler.pdf Task Control Architecture Programmer's Guide to Version 8.0, R. Simmons, R. Goodwin, C. Fedor, J. Basista, Robotics Institute, Carnegie Mellon University, May 1997 ( dresden.de/Teaching/MobileRoboticsLab/Download/TCA-Manual.pdf ). dresden.de/Teaching/MobileRoboticsLab/Download/TCA-Manual.pdf